日期:2014-05-16  浏览次数:20527 次

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 了,所有的管理