oracle数据备份与还原

oracle数据备份与还原

备份

exp命令用于把数据从远程数据库服务器导出至本地,生成dmp文件;
imp命令用于把本地的数据库dmp文件从本地导入到远程的Oracle数据库中。

1.数据库完全导出:

exp 'system/"123456"@127.0.0.1/orcl' full=y file=C:/dbbak_full.dmp log=C:/dbbak_full.log

full=y:代表的是完全导出。

file:是指定dmp文件的生成位置和文件名。

log:是将导出时的日志写入到指定文件当中。

2.指定用户数据导出

exp 'system/"123456"@192.168.68.196/orcl' owner=(system,tlzb_ysbz) file=C:/dbbak_onwer.dmp log=C:/dbbak_onwer.log

owner:可以选择多个表用户数据导出,用户名之间用逗号进行分隔

3.指定表数据导出

exp 'tlzb_ysbz/"123456"@127.0.0.1/orcl' tables=(BUDGET_INCOME,BUDGET_DATA_INODE) file=C:/dbbak_tables.dmp log=C:/dbbak_tables.log

tables:选择多个表进行导出,注意这时的用户名要改成有对应表的用户名,否则无法导出。

通过query参数可以写sql查询条件进yibu筛选导出的表数据

exp 'tlzb_ysbz/"123456"@127.0.0.1/orcl' tables=(BUDGET_INCOME,BUDGET_DATA_INODE) file=C:/dbbak_tables.dmp log=C:/dbbak_tables.log  query=\"where CREATE_TIME>to_date('2021-11-15','yyyy-MM-dd')\"

如果想对dmp文件进行压缩,可以在上面命令后面 加上 compress=y 来实现。

还原

1.数据库完整导入

imp 'system/"123456"@192.168.68.95/orcl' full=y file=C:/dbbak_full.dmp log=C:/dbbak_full.log ignore=y

full=y:代表将dmp文件中的所有数据都进行导入;

ignore=y:默认为n,当不加这个参数时,导入的表或视图如果在原有表中本来就存在就无法导入这些数据,加上以后就会直接覆盖这些数据

2.单表导入

imp 'tlzb_ysbz/"123456"@192.168.68.196/orcl'  tables=(BUDGET_INCOME,BUDGET_DATA_INODE) ignore=y file=C:/dbbak_tables.dmp log=C:/dbbak_tables.log

注意这种写法会将表导入到默认连接用户下

如何dmp里是多个用户的数据则需要指定导入的表和用户

imp 'tlzb_ysbz/"123456"@192.168.68.196/orcl' fromuser=tlzb_ysbz  tables=(BUDGET_INCOME,BUDGET_DATA_INODE) ignore=y file=C:/dbbak_tables.dmp log=C:/dbbak_tables.log

3.不同用户数据导入

imp 'system/"password"@127.0.0.1/orcl' fromuser=username1 touser=username2 file=expfile.dmp

fromuser:把当前的dmp文件中的指定用户下的数据取出。
touser:把取出的数据指定一个用户进行输入。

fromuser和touse也可以使用括号来选择多个用户进行导出导入

你可能感兴趣的:(oracle,oracle,数据库,database)