数据库导出(expdp)
使用sys或system账号登录oracle
通过"Window + R" 打开dos命令行界面,使用sys或system登录oracle。格式:sqlplus sys/密码@数据库实例名 as sysdba
2、创建逻辑目录 : create or replace directory data_dir as 'E:\orcl\data';
data_dir为路径名称,可自命名,E:\orcl\data为数据库导出文件存放路径(路径必须存在);
创建备份逻辑目录,此目录不是真实的目录,此目录需要手动在数据库服务端创建。
通过 select from dba_directories 可以查看所有的目录
3、为用户授予访问数据目录的权限,输入命令:Grant read,write on directory data_dir to dbuser;
dbuser为数据库用户名(与第4步中相同)
4、导入导出 *** 作授权,输入命令:grant exp_full_database,imp_full_database to dbuser;
5、退出,输入命令:exit;
6、数据导出,执行命令:
expdp dbuser/123456@orcl schemas=dbuser dumpfile=expdpdmp directory=data_dir logfile=expdplog
注意:命令结束不需要加“;”
expdp [为用户名]/[密码]@[服务名]
schemas=[为用户名]
dumpfile=[导出数据库文件(可自命名)]
directory=[目录名]
logfile=[日志文件文件名(可自命名)]
数据库还原前准备
1、创建表空间
复制代码
create tablespace tbs_dbsunny datafile
'D:\app\Sunny\oradata\TableSpace\tbs_dbsunnyDBF' size 1G
autoextend on next 100M maxsize unlimited logging
extent management local autoallocate
segment space management auto;
复制代码
2、创建临时表空间
create temporary tablespace tbs_dnsunny_temp tempfile 'D:\app\Sunny\oradata\TableSpace\tbs_dnsunny_tempDBF' size 1000M autoextend on next 100M maxsize unlimited ;
3、创建用户
create user sunny identified by sunny123 DEFAULT TABLESPACE tbs_dbsunny TEMPORARY TABLESPACE tbs_dnsunny_temp;
4、授权
复制代码
alter user sunny temporary tablespace tbs_dnsunny_temp;
ALTER USER sunny QUOTA UNLIMITED ON TBS_DBSUNNY
grant connect to sunny;
grant resource to sunny;
grant dba to sunny;
grant create trigger to sunny;
grant create session to sunny;
grant create sequence to sunny;
grant create synonym to sunny;
grant create table to sunny;
grant create view to sunny;
grant create procedure to sunny;
grant alter session to sunny;
grant execute on ctxsysctx_ddl to sunny;
grant create job to sunny;
grant sysdba to sunny;
alter user sunny default role all;
-- 删除这个用户以及这个用户下的所有对象
DROP USER sunny CASCADE;
复制代码
数据库导入(impdp)
1、使用sys或system 登录
通过"Window + R" 打开dos命令行界面,使用sys或system登录oracle。格式:sqlplus sys/密码@数据库实例名 as sysdba
sqlplus sys/12345@dborcl as sysdba
2、创建逻辑目录,并手动创建真实目录,并将备份文件DMP,放进此目录下
sqlplus create or replace directory data_dir as 'E:\orcl\data';
3、给目标用户授权
sqlplus grant read,write on directory data_dir to sunny;
4、导入:在dos命令行,执行
注意 : impdp 语句 后面 不要加 " ; "
impdp sunny/sunny123@DBSUNNY directory=data_dir dumpfile=EXPDPBUDGETDMP logfile=impbudgettlog remap_schema =budgett:sunny remap_tablespace=PIMS:TBS_DBSUNNY
注:remap_schema=olduser:newuser 表示把左边的olduser用户的数据,导入到右边的newuser 用户里面
remap_tablespace=old_tbs:new_tbs 表示把将要导入的备份库的表空间old_tbs,导入到新库替换为 new_tbs
expdp导出数据
语法: expdp 用户名/密码@ip地址/实例 ip地址不写默认就是本地
复制代码
属性说明:
userid=test/test --导出的用户,本地用户!!
directory=dmpfile --导出的逻辑目录,一定要在oracle中创建完成的,并且给用户授权读写权限
dumpfile=xxdmp --导出的数据文件的名称,如果想在指定的位置的话可以写成dumpfile=/home/oracle/userxxdmp
logfile=xxlog --日志文件,如果不写这个参数的话默认名称就是exportlog,可以在本地的文件夹中找到
schemas=userxx --使用dblink导出的用户不是本地的用户,需要加上schema来确定导出的用户,类似于exp中的owner,但还有一定的区别
EXCLUDE=TABLE:"IN('T1','T2','T3')" --exclude 可以指定不导出的东西,table,index等,后面加上不想导出的表名
network_link=db_local --这个参数是使用的dblink来远程导出,需要指定dblink的名称
复制代码
列出一些场景:
复制代码
1)导出用户及其对象
expdp scott/tiger@orcl schemas=scott dumpfile=expdpdmp directory=dump_dir logfile=expdplog;
2)导出指定表
expdp scott/tiger@orcl tables=emp,dept dumpfile=expdpdmp directory=dump_dir logfile=expdplog;
3)按查询条件导
expdp scott/tiger@orcl directory=dump_dir dumpfile=expdpdmp tables=empquery='where deptno=20' logfile=expdplog;
4)按表空间导
expdp system/manager@orcl directory=dump_dir dumpfile=tablespacedmp tablespaces=temp,example logfile=expdplog;
5)导整个数据库
expdp scott/123@127001/orcl directory=dump_dir dumpfile=lydmp full=y logfile=expdplog;
复制代码
一般用的都是导出整个数据库,本人使用的代码:
//包含所有用户的表、视图、索引等
expdp JCPT/123@127001/orcl directory=mydata dumpfile=lydmp full=y logfile=expdplog;
//指定用户的表、视图、索引等
expdp JCPT/123@127001/orcl directory=mydata schemas=jcpt dumpfile=lydmp logfile=expdplog;
impdp 导入
列出一些场景:
复制代码
1)导入用户(从用户scott导入到用户scott)
impdp scott/tiger@orcl directory=dump_dir dumpfile=expdpdmp schemas=scott logfile=impdplog;
2)导入表(从scott用户中把表dept和emp导入到system用户中)
impdp system/manager@orcl directory=dump_dir dumpfile=expdpdmp tables=scottdept,scottemp remap_schema=scott:system logfile=impdplog table_exists_action=replace (表空间已存在则替换);
3)导入表空间
impdp system/manager@orcl directory=dump_dir dumpfile=tablespacedmp tablespaces=example logfile=impdplog;
4)导入整个数据库
impdb system/manager@orcl directory=dump_dir dumpfile=fulldmp full=y logfile=impdplog;
5)追加数据
impdp system/manager@orcl directory=dump_dir dumpfile=expdpdmp schemas=systemtable_exists_action logfile=impdplog;
复制代码
日常使用的:
//把用户jcpt中所有的表导入到lyxt用户下
impdp lyxt/lyxt123@127001/orcl directory=mydata dumpfile=LYDMP remap_schema=jcpt:lyxt logfile=ims20171122log table_exists_action=replace
按表名导出:expdp
用户名/密码@数据库名称
TABLES=表名1,表名2
dumpfile=导出文件名dmp
DIRECTORY=文件夹名称;
导入指定表空间:impdp
用户名/密码
DIRECTORY=文件夹名称
DUMPFILE=待导入文件名dmp
TABLESPACES=表空间名;
>
以上就是关于oracle下db_user是全部的内容,包括:oracle下db_user是、oracle数据库中如何查询关联数据并导出指定数据、如何获取db2数据库名称等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)