导入数据到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
[email protected] 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
[email protected] 密码: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 了,所有的管理工作都通过 sqlplus 来完成
启动数据库步骤如下:
注:$ORACLE_HOME为oracle的安装路径
1,以oracle用户登录
su oracle
2,启动TNS监听器
$ORACLE_HOME/bin/lsnrctl start
3,用sqlplus启动数据库
$ORACLE_HOME/bin/sqlplus /nolog
SQL> connect system/change_on_install as sysdba
SQL> startup
-------------------------------------------------------------------------------
查看本机linux主机是不是在vmare下:
ifconfig -a | grep -i -e "00-05-69" -e "00-0C-29" -e "00-50-56" ; dmesg | grep -i vmware
如果有输出,呵呵,是vmare无疑,白忙活了。
----------------------------------------------------------------------------------------
直接在X环境下停掉GDM服务:
sudo update-rc.d -f gdm remove
重新启动(进入文字命令行模式):
sudo reboot -n
如果想在命令行模式直接进入X环境的话,则需输入:
startx
如果想改回开机启动回到X环境的话,则需开启GDM服务即可:
sudo update-rc.d gdm defaults
以上操作都在ubuntu 8.04中测试,均可行!!!
根本就不需要去删除什么rc2.d等等的复杂操作..
----------------------------------------------------------------------------------------
查看ORACLE表空间:
SELECT TABLESPACE_NAME,SUM(BYTES) / 1024 / 1024 MB FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME;