1)ORACLE:使用sysdba登录,执行以下命令备份数据库到数据库安装用户的目录下,通常数据库安装用户是dbserv30这样的用户:
-------------- 登录后查询到所有的数据库用户 --------------
%sqlplus / as sysdba
SQL> select username from all_users where username like '%30';
SQL> exit;
%exp sysdbname/passwd owner=sysdbname rows=y compress=n buffer=65536 feedback=100000 volsize=0 file=exp_sysdb.dmp
2)注意事项:SCP数据库被命名为OPS$SCP30这样的名称,密码不确定是什么,因此可以在备份SCP数据库时按如下步骤操作:
%sqlplus / as sysdba
SQL> alter user OPS$SCP30 identified by scp30;
SQL> exit;
%exp
3)还原操作:需要先删除数据库用户,然后再创建数据库用户,并赋权限后再执行导入即可;
SQL> drop user sysdb30 cascade;
SQL> create user sysdb30 identified by sysdb30 default tablespace CBS_DEFAULT_DAT temporary tablespace "TEMP";
grant dba,connect,resource to sysdb30;
grant select any dictionary to sysdb30;
grant create any sequence to sysdb30;
grant create any table to sysdb30;
grant create any procedure to sysdb30;
grant create any trigger to sysdb30;
grant create session to sysdb30;
grant create sequence to sysdb30;
grant create table to sysdb30;
grant create procedure to sysdb30;
grant create trigger to sysdb30;
%imp sysdb30/sysdb30@oracle fromuser=sysdb30 touser=sysdb30 rows=y commit=y buffer=65536 feedback=100000 ignore=y volsize=0 file=sysdb30.dmp;
注意(以下操作都是用dba用户执行,即用sqlplus / as sysdba登录):
A)上面的create user操作中默认表空间名应当在数据库中查找到实际用的表空间名,查询语句如下:
SQL> select username, default_tablespace from dba_users where username like '%30';
B)上面操作中执行drop user时如果不成功,则需要确保没有人使用PL/SQL工具或sqlplus连接到此数据库,如是确认没有连接仍然删除不成功,则可以使用以下方法解决:
SQL> select SID,USERNAME,PROCESS,serial# from v$session where USERNAME like '%30';
SQL> alter system kill session '<SID>,<serial#>' immediate;
ORACLE备份与恢复
最新推荐文章于 2024-09-02 14:30:57 发布