1.登陆数据库服务器,切换至oracle用户下 su - oracle,输入用户名密码登陆成功
2.先建立一个目录,存放备份出来的文件: mkdir /home/sbm/bak_dir
3.赋权:chmod 777 bak_dir
4.使用sys用户登录数据库,sys是oracle数据库的超级用户,拥有最高权限
sqlplus / as sysdba
- 指定备份的路径
create or replace directory bak_dir as '/home/sbm/bak_dir'
6.将该目录读写权限赋予给打算导出的用户
grant read,write on directory bak_dir to sbm;
7.退出oracle数据库:quit
8.导出数据库:
expdp sbm/sbm@159.1.45.206/smdb directory=bak_dir dumpfile=databas_bak.dmp logfile=databaselog full=y
导出成功后会在/home/sbm/bak_dir下看到dmp文件和log日志文件
常见的一些问题
1.启动oracle服务: sqlplus / as sysdba登陆进来后 >startup 开启oracle服务 停服务命令:shutdown immediate
2.查看监听:lsnrctl status
启动监听:lsnrctl start
停止监听:lsnrctl stop
3.expdp报错ORA-31631、ORA-39161 权限不足
ORA-31631: privileges are required
ORA-39161: Full database jobs require privileges
赋予权限:
grant exp_full_database to sbm;
导入时报错
ORA-31631: privileges are required
ORA-39122: Unprivileged users may not perform REMAP_SCHEMA remappings.
同样处理方法,授权imp_full_database
grant imp_full_database to sbm;
4.查看oracle日志:
在Oracle安装目录下,这里的orcl是我服务器的SID,需要修改一下,找到对应实例名的trace目录
~/app/diag/rdbms/orcl/orcl/trace