oracle使用expdp/impdp命令导入导出数据
导出数据库
1.使用cmd登陆数据库
sqlplus/ as sysdba 直接回车不用输入密码
2.创建存放数据库的地址(导入导出都需要创建)
create or replace directory databak as 'D:\temp;----路径必须存在
3.赋予用户读写权限
grant read,write on directory databak to pacs; --pacs为用户名
4.执行导出或者导入数据之前需要先退出数据库
输入 quit 回车退出数据库
5.用户全数据导出,导出地方就是创建的路径下面
expdp pacs/pacs@orcl directory=databak dumpfile=pacs.dmp
logfile=pacs.log schemas=pacs
6.如果已经创建好表空间就可以直接导入
impdp 用户名/密码@orcl directory=databak dumpfile=pacs.dmp logfile=pacs.log schemas=pacs
导入数据库
1.使用cmd登陆数据库
sqlplus/ as sysdba 直接回车不用输入密码
2.创建对应的表空间
create tablespace pacs(表空间的名字)
datafile ‘D:\app\xxxx\oradata\orcl\pacs.dbf’ (此路径为oracle的某个路径下)
size 50m (初始大小)
autoextend on;(自动扩展)
3.创建一个自己的用户,创建格式如下:
CREATE USER username (用户名)
IDENTIFIED BY password(密码)
DEFAULT TABLESPACE pacs(上面创建的表空间)
TEMPORARY TABLESPACE temp;(临时表空间就写temp即可)
4.用户赋予权限来管理自己的表空间
GRANT CONNECT TO pacs;
GRANT RESOURCE TO pacs;
GRANT dba TO pacs;–dba为最高级权限,可以创建数据库,表等。
5.创建需要导入数据库存放地址
create or replace directory databak as ‘D:\bak\pacs’;
6.导入数据库
impdp username/password directory=databak dumpfile=xx.DMP remap_schema=pacs:pacs REMAP_TABLESPACE=pacs:pacs logfile=xx.log;
–密码永不过期
–1、查看用户的proifle,一般是default
select username,profile from dba_users;
–2、查看概要文件(default)的密码有效期设置
select * from dba_profiles where profile=‘DEFAULT’ and resource_name=‘PASSWORD_LIFE_TIME’;
–3、将密码有效期由默认的180天修改成 UNLIMITED ‘无限制’
alter profile default limit password_life_time unlimited;
–注意:修改之后不需要重启动数据库,会立即生效
oracle数据库死锁解决
死锁查询
SELECT SESS.SID,
SESS.SERIAL#,
LO.ORACLE_USERNAME,
LO.OS_USER_NAME,
AO.OBJECT_NAME,
LO.LOCKED_MODE,
SESS.MACHINE
FROM V$LOCKED_OBJECT LO,
DBA_OBJECTS AO,
V$SESSION SESS
WHERE AO.OBJECT_ID = LO.OBJECT_ID AND LO.SESSION_ID = SESS.SID;
解决
ALTER SYSTEM KILL SESSION '对应SID,对应SERIAL';