数据库操作

1、备份数据库

exp bapp/bapp@172.16.0.93/bapp file=d:\bapp.dmp

2、还原数据库

imp crmtest/crmtest@crm full=y file=d:\crm.dmp

3、只还原数据

imp crmtest/crmtest@crm full=y file=d:\crm.dmp ignore=y

表空间操作

1、删除表空间

DROP TABLESPACE 表空间名称 INCLUDING CONTENTS CASCADE CONSTRAINTS;

2、创建表空间

--BIGFILE创建大文件使用

CREATE BIGFILE TABLESPACE 表空间名称

// TODO

DATAFILE '盘符路径\xxx.ORA' SIZE 409800M

EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;

16、创建表空间

CREATE TABLESPACE BAPP

DATAFILE 'F:\app\Administrator\oradata\BAPP\BAPP.DBF'

SIZE 5120M AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED -- 300M/20M(生产)

LOGGING

ONLINE

PERMANENT

EXTENT MANAGEMENT LOCAL AUTOALLOCATE

BLOCKSIZE 8K

SEGMENT SPACE MANAGEMENT AUTO

FLASHBACK ON;

表用户操作

1、创建表用户

create user CRMTEST identified by CRMTEST --用户名 密码

default tablespace 表空间名 --表空间

temporary tablespace temp;

GRANT create session,create trigger,create procedure, create sequence, create table, create view, create public synonym, drop public synonym TO CRMTEST;

ALTER USER CRMTEST QUOTA UNLIMITED ON CRM;

2、授权dba权限

grant dba to crmtest;

dblink

6、创建dblink

create database link LINK7021 --连接名称

connect to UPRR --连接用户名

IDENTIFIED BY UPRR --连接密码

using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 7.0.2.1)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = UPRR)))'

7、查询所有表空间及路径

select t.name as tablespace,d.name as datafile from v$datafile d,v$tablespace t

where d.ts# = t.ts#

8、查询表空间使用情况

SELECT UPPER(F.TABLESPACE_NAME) "表空间名",

D.TOT_GROOTTE_MB "表空间大小(M)",

D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",

TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,

2),

'990.99') || '%' "使用比",

F.TOTAL_BYTES "空闲空间(M)",

F.MAX_BYTES "最大块(M)"FROM (SELECT TABLESPACE_NAME,

ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,

ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES

FROM SYS.DBA_FREE_SPACE GROUP BY TABLESPACE_NAME) F,

(SELECT DD.TABLESPACE_NAME,

ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB

FROM SYS.DBA_DATA_FILES DD

GROUP BY DD.TABLESPACE_NAME) D WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME ORDER BY 1;

9、为这个表空间增加一个数据文件

alter tablespace 表空间名 add datafile '/u1/oradata/userdata_002.ora' size 50m;  --Unix中

alter tablespace 表空间名 add datafile 'c:\oradata\userdata_002.ora' size 50m;   --Windows NT中

10、重新调整数据文件的大小

alter database datafile '/u1/oradata/userdata_001.ora' resize 50M;  --Unix中

alter database datafile 'c:\oradata\userdata_002.ora' resize 50M;  --Windows NT中

11.检查数据库中配置的允许打开游标的最大数量。

show parameter open_cursor;

12.调整最大游标数量,至少大于1000,最多3000,并不是越大越好!

alter system set open_cursors=1000 scope=both;

13.查询是否锁表 –查询锁的那张表 select b.owner,b.object_name,a.session_id,a.locked_mode from vKaTeX parse error: Expected 'EOF', got '#' at position 106: …,b.sid,b.serial#̲,logon_time fro…locked_object a,v$session b where a.session_id = b.sid order by b.logon_time; –杀掉进程 1025为sid,41为serial#. alter system kill session’1025,41’; 14导出表为0的数据库 –导出表为0的数据库 select ‘alter table ‘||table_name||’ allocate extent;’ from user_tables where num_rows=0

15、数据泵 create directory dump_dir as ‘f:\backup’–创建路径(dmp文件所在路径) SELECT * FROM dba_directories 查询是否创建成功 GRANT READ,WRITE ON DIRECTORY DUMP_DIR to bapp; 给bapp付权,用system登录 expdp bapp/bapp@bapp directory=dump_dir dumpfile=bapp20141120.dmp full=y 导出数据 impdp FSI/FSI@CREDIT directory=dump_dir dumpfile=FSIFORTEST.DMP full=y 导入数据 table_exists_action=replace 替换数据

QUERY参数后面跟的是where条件,值得注意的是,整个where子句需要使用""括起来,where子句的写法和SELECT中相同;

如果是UNIX平台所有"和'都需要使用\u26469屏蔽它们的特殊含义:

exp test/test file=1.dmp log=1.log tables=testtable query="where c1=20 and c2=test"

注意:>,<,单引号等特殊字符需要转译

exp test/test file=1.dmp log=1.log tables=testtable query="where c1\>20 and c2=to_date\(\'20090506\',\'yyyymmdd\'\)"

如果是windows平台,则使用下面的格式: exp c/c@ncn file=c.dmp log=c.log tables=t query="""where id=1 and name='gototop'"""(使用unix下格式也是可以的,具体情况测试一下即可)

--服务器A上的数据库(用户名:USER1)导入到服务器B上的数据库(用户名:USER1)

GRANT READ,WRITE ON DIRECTORY dump_dir TO system;

GRANT EXECUTE ON SYS.UTL_FILE TO system;

17、把用户usera的对象导到用户userb,用法区别在于fromuser=usera touser=userb ,remap_schema=‘usera’:‘usera’ 。例如

imp system/passwd fromuser=usera touser=userb file=/oracle/exp.dmp log=/oracle/exp.log;

impdp system/passwd directory=expdp dumpfile=expdp.dmp remap_schema=‘usera’:‘userb’ logfile=/oracle/exp.log (SCHEMAS = user1,user2,user3 …) ;

18 select * from dba_directories(DIRECTORY的存放目录,需要DBA权限) expdp scott/orcl@orcl dumpfile=emp.dmp DIRECTORY=DATA_PUMP_DIR full=y(整个数据库) 后面可选:schemas=bapp(用户导出) tablespaces=tbs_01(表空间) tables=emp(表导出) query=‘where …’(条件) table_exists_action=replace(替换数据)

19 例子:

expdp wxlun/wxlun123 tables=wxlun.WXLUN_TAB01,wxlun.WXLUN_TAB02 directory=expdp dumpfile=wxlun1212.dmp logfile=wxlun1212.log version=10.2.0.4.0

impdp scott/tiger directory=expdp dumpfile=wxlun1212.dmp logfile=wxlun1212.log remap_schema=wxlun:scott REMAP_TABLESPACE=wxlun:USERS

推荐链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: