Oracle的一些知识
导入数据到oracle
首先询问对方数据库的表空间名称和大小,然后在你的oracle中建立相应表空间,最后使用imp命令导入数据:
第一,启动sql*puls
第二,以system/manager登陆
第三,create user 你的用户名子 IDENTIFIED BY 你的密码
第四, GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY
VIEW ,DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,
DBA,CONNECT,RESOURCE,CREATE SESSION TO 你的用户名子
-----------
grant create user,drop user,alter user,create any view,drop any view,exp_full_database,imp_full_database,dba,connect,resource,create session to d4;
-----------
第五,import你的dmp
imp username/password@SID file=XXX.dmp fromuser=XXX touser=XXX tables=(XXX,XXX)
其中,fromuser若为多个表空间的话,使用()将其括起来:fromuser=(a,b);
touser参数仿fromuser参数;
若只导入一部分表,使用tables参数,用()括起要导入的表;如果想全部导入,不需要指定tables参数
1.要新建一个数据库;
2.若你的oracle安装在Unix/Linux上,直接在shell中使用imp;如果你的oracle安装在Windows上,随便在哪里开启一个CMD窗口就可以执行imp;
3.username/password指的是你的数据库的登录用户名和密码;
4.fromuser指对方数据库用户名,touser指你的数据库的用户名;
5.使用oracle的管理端在“表空间”中即可创建;
6.要导入所有的表最方便,不用写tables参数就成,不需要知道对方的表名。
grant select on v_$session to ds;
exp: imp zhs/zhs@porsche file=d:\database\porschetest20080825_1545.dmp fromuser=porschetest touser=zhs IGNORE='Y'
imp ds/ds@porsche file=d:\database\porschetest20080825_1545.dmp fromuser=porschetest touser=ds IGNORE='Y' statistics=none
imp ds/ds@porsche full=y file=xxx
----------------------------------------------------
用sys登陆:
1. 先 ssh root@127.0.0.1 pw:123
2. TEST2A:~ # sqlplus
3. Enter user-name: sys as sysdba
Enter password: 12345
在图形化sqlplus下:
User Name: sys
Password: 12345
==,
Host String: dmbservice as sysdba
----------------------------------------------------
重启oracle:
1. 停应用层的各种程序
2. 停Oralce的监听进程
$ lsnrctl stop
3. 在独占的系统用户下,备份控制文件:
$ sqlplus "/as sysdba"
SQL> alter database backup controlfile to trace;
4. 在独占的系统用户下,手工切换重作日志文件,确保当前已修改过的数据存入文件:
SQL> alter system switch logfile;
5. 在独占的系统用户下,运行下面SQL语句,生成杀数据库用户连接的kill_all_session.sql文件:
SQL> set head off;
SQL> set feedback off;
SQL> set newpage none;
SQL> spool ./kill_session.sql
SQL> select 'alter system kill session '''||sid||','||serial#||''';' from v$session where username is not null;
SQL> spool off;
6. 在独占的系统用户下,执行杀数据库用户连接的kill_session.sql文件
SQL> @./kill_session.sql
7. 在独占的系统用户下,用immediate方式关闭数据库:
SQL> shutdown immediate;
或者
SVRMGRL> shutdown immediate;
8. 启动oralce的监听进程
$ lsnrctl start
9. 进入独占的系统用户下,启动Oralce数据库
$ sqlplus /nolog
SQL> connect / as sysdba
SQL> startup;
或者
$ svrmgrl
SVRMGRL> connect internal;
SVRMGRL> startup;
10.启动应用层的各种程序
////////////// 用oracle用户登陆: ssh oracle@192.168.0.137 密码:123456 再运行restart_oracle.sh。
如果"lsnrctl start"出现如下错误:
NL-00278: cannot open log file
SNL-00016: snlfohd: error opening file
Linux Error: 13: Permission denied
解决办法:
Hello, it's a permission problem. You just have to give more permission to you're directory, go to you're
directory /oracle/app/oracle/product/8.0.4/network/log
and apply that UNIX command => chmod a+x+w listener.log.
So, you're listener.log file will have the permission in execution, and everything should be fine.
-----------------------------------------
linux下的oracle从10g以后其启动与关闭与以前版本有所不同
9i 之后已经没有 svrmgrl 了,所有的管理