侧边栏壁纸
博主头像
小麦味气泡水博主等级

Be a gentle and powerful person.

  • 累计撰写 26 篇文章
  • 累计创建 27 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux下Oracle数据库如何备份还原?

小麦味气泡水
2023-10-26 / 0 评论 / 4 点赞 / 99 阅读 / 4284 字

#注意:为确保数据一致,建议停止应用服务(例如泛微Ecology9)
cd /usr/weaver/Resin4/bin --切换到应用服务器路径
./stopresin.sh  --停止Resin服务--
./startresin.sh --启动Resin服务--

一、Oracle数据库备份

1、在数据库服务器上操作登录Oracle用户

su - oracle  登录Oracle用户

2、找到空间比较大的目录,比如/home/oracle

1、登录数据库
sqlplus / as sysdba
2、创建directory 
create directory mydata as '/home/oracle';
3、给directory 赋权 读写权限
grant read,write on directory mydata to public;
4、如果创建directory提示ORA-00955: name is already used by an existing object(名称已由现有对象使用)执行5
5、删除directory后重新创建执行2、3
drop directory  mydata;

3、Oracle备份命令

1、先退出<SQL> exit
2、expdp 用户名/密码 directory=mydata dumpfile=ecology.dmp logfile=ecology-expdp.log

二、Oracle数据库还原

1、备份文件迁移准备

把ecology.dmp放到要还原的环境上(比如放在/home/oracle)

方法一:服务器直传

##跨服务器如果网络通的情况下  参考样例
1、将某个本地文件复制到指定的远程主机的指定目录中: 
[root@linuxcool ~]# scp File.cfg 192.168.10.10:/Dir/
2、将指定远程主机中的某个文件复制到本地家目录中: 
[root@linuxcool ~]# scp 192.168.10.10:/Dir/File.cfg /root 
3、将某个本地目录复制到指定的远程主机的指定目录中: 
[root@linuxcool ~]# scp -r Dir 192.168.10.10:/Dir 
4、将指定远程主机中的某个目录复制到本地家目录中: 
[root@linuxcool ~]# scp -r 192.168.10.10:/Dir /root
5、将指定远程主机中的某个目录复制到本地家目录中:
[root@linuxcool ~]# scp -r 192.168.10.10:/Dir /root

方法二:传统方式 通过Xshell、Xftp下载、上传

在数据库服务器上操作

2、登录Oracle用户

su - oracle  登录Oracle用户

3、登录数据库操作

1、登录数据库
sqlplus / as sysdba
2、删除用户 user
drop user 用户名 cascade;
3、创建用户 user
create user 用户名 identified by 密码 default tablespace ecology;
4、用户赋权
grant connect,resource to ecology;
grant create view to ecology;
grant DATAPUMP_EXP_FULL_DATABASE ,DATAPUMP_IMP_FULL_DATABASE to ecology;
5、创建directory
create directory mydata as '/home/oracle';
6、给directory 赋权 读写权限
grant read,write on directory mydata to public;

4、Oracle还原命令

1、先退出<SQL> exit
2、impdp 用户名/密码 directory=mydata dumpfile=ecology.dmp logfile=ecology-impdp.log

三、Oracle数据库备份还原常见问题

1、表空间不存在(tablespace )

ORA-00959:表空间不存在

1、查询表空间
select   name   from   v$tablespace;
2、查询表数据路径
select  name from  v$datafile; 
3、根据查询路径创建表空间
create tablespace ecology datafile '/home/oracle/oradata/orcl/ecology.dbf' size 2000M AutoExtend On Next 10M segment space management auto; 

2、directory 已存在(名称已由现有对象使用)

ORA-00955: name is already used by an existing ()

1、删除directory后重新创建
drop directory  mydata;
2、创建directory
create directory mydata as '/home/oracle';
3、给directory 赋权 读写权限
grant read,write on directory mydata to public;

4

评论区