oracle expdp / impdp

expdp 导出

expdp TQBAY/TQBAY schemas=TQBAY dumpfile=TQBAY_20170519.dmp;

删除用户

-- 删除用户
drop user BOSYUNTEST cascade;
-- 删除用户时若报错:ORA-01940: cannot drop a user that is currently connected,则先查会话id
SELECT SID,SERIAL# FROM V$SESSION WHERE USERNAME='TQBAY';
-- 再一个个kill掉该用户的会话再执行drop user
ALTER SYSTEM KILL SESSION '24,25341';

查询表空间路径

select * from dba_data_files;

删除表空间和文件

-- 删除临时表空间和文件
drop tablespace BOSYUN_TEST_TEMP including contents and datafiles;
-- 删除数据表空间和文件
drop tablespace BOSYUN_TEST_DATA including contents and datafiles;
drop tablespace BOSYUN_TEST_DATA including contents and datafiles;

创建表空间

-- 创建临时表空间
CREATE SMALLFILE TEMPORARY TABLESPACE BOSYUN_TEST_TEMP TEMPFILE '/u01/app/oracle/oradata/XE/BOSYUN_TEST_TEMP' SIZE 2048M AUTOEXTEND ON NEXT 512M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;
-- 创建数据表空间
CREATE SMALLFILE TABLESPACE BOSYUN_TEST_DATA DATAFILE '/u01/app/oracle/oradata/XE/BOSYUN_TEST_DATA' SIZE 2048M AUTOEXTEND ON NEXT 512M MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
-- 创建用户
CREATE USER BOSYUNTEST PROFILE "DEFAULT" IDENTIFIED BY BOSYUNTEST DEFAULT TABLESPACE BOSYUN_TEST_DATA TEMPORARY TABLESPACE BOSYUN_TEST_TEMP ACCOUNT UNLOCK;
-- 用户授权
GRANT CONNECT TO BOSYUNTEST WITH ADMIN OPTION;
GRANT DBA TO BOSYUNTEST;
GRANT RESOURCE TO BOSYUNTEST;

可通过以下命令查看数据库已有的目录

# 查询 DATA_PUMP_DIR
select * from DBA_DIRECTORIES;
 /home/oracle/oradata/bosyun/dpdump/        DATA_PUMP_DIR

-- 创建 DATA_PUMP_DIR目录
create or replace directory DATA_PUMP_DIR as 'D:\app\Administrator\admin\orcl\dpdump';
1.修改/data/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora 
2.把dmp文件放到DATA_PUMP_DIR目录下 (预先将dmp文件放置到指定的directory目录下,

-- DATA_PUMP_DIR 需要预先将目录权限赋予该用户。
grant read,write on directory DATA_PUMP_DIR to TQBAY_TEST;

数据的导入

impdp TQBAY_TEST/TQBAY_TEST@bosyun directory=DATA_PUMP_DIR dumpfile=TQBAY_20170519.dump REMAP_SCHEMA=TQBAY:TQBAY_TEST;

# 上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。  在后面加上 ignore=y 就可以了。
# 基本上上面的导入导出够用了。不少情况要先是将表彻底删除,然后导入。

杂项

select * from DBA_DIRECTORIES; --查询表 DATA_PUMP_DIR
select * from product_component_version;  --查询oracle版本

 --------oracle 解锁用户-------
su - oracle
sqlplus / as sysdba  --执行
sql : alter user QICOLOR account unlock; --QICOLOR 用户解锁
alter user QICOLOR_FORMAL account unlock;

select userenv('language') from dual;-- 字符集
------------------------------

数据库重启

#关闭数据库存
$export ORACLE_SID=QICOLOR
$su - oracle
$sqlplus / as sysdba
$shutdown immediate
$lsnrctl stop

$export ORACLE_SID=TQBAY
$su - oracle
$sqlplus / as sysdba
$shutdown immediate
$lsnrctl stop

#启动数据库
$su - oracle
$sqlplus / as sysdba
$startup
$lsnrctl start

oracle 管理员不用密码登录

(1) 以oracle身份登录数据库,命令:su - oracle
(2) 进入Sqlplus控制台,命令:sqlplus /nolog
(3) 以系统管理员登录,命令:connect / as sysdba