十二.手工建库脚本
CREATE DATABASE wxzb USER SYS IDENTIFIED BY oracle USER SYSTEM IDENTIFIED BY oracle LOGFILE GROUP 1 ('/dev/rdatavg_1_076') SIZE 1022M, GROUP 2 ('/dev/rdatavg_1_077') SIZE 1022M, GROUP 3 ('/dev/rdatavg_1_078') SIZE 1022M MAXLOGFILES 10 MAXLOGMEMBERS 5 MAXLOGHISTORY 1 MAXDATAFILES 100 MAXINSTANCES 1 CHARACTER SET ZHS16GBK NATIONAL CHARACTER SET UTF8 DATAFILE '/dev/rdatavg_2_sys' SIZE 2046M REUSE EXTENT MANAGEMENT LOCAL DEFAULT TEMPORARY TABLESPACE temp1 TEMPFILE '/dev/rdatavg_2_tmp1' SIZE 2046M REUSE UNDO TABLESPACE UNDOTBS1 DATAFILE '/dev/rdatavg_2_udo1' SIZE 2046M REUSE AUTOEXTEND off;
|
十三. .profile文件内容
_=/usr/bin/env TMPDIR=/oracle/temp LANG=en_US LOGIN=oracle PGSD_SUBSYS=grpsvcs PATH=/oracle/app/oracle/bin:/home/watch/bin:/usr/local/bin:/usr/ccs/bin:/oracle/app/oracle/bin:/usr/bin:/etc:/usr/sbin:/usr/ucb:/oracle/bin:/usr/bin/X11:/sbin:.:/oracle/OPatch NLS_LANG=american_america.zhs16gbk ORACLE_BASE=/oracle LC__FASTMSG=true CLASSPATH=/oracle/app/oracle/JRE/lib:/oracle/app/oracle/JRE/lib/rt.jar:/oracle/app/oracle/jlib LOGNAME=oracle TMP=/oracle/temp MAIL=/usr/spool/mail/oracle ORACLE_SID=bossbil1_i1 LOCPATH=/usr/lib/nls/loc PS1=oracle@wxkhp630:$PWD> USER=oracle NLS_DATE_FORMAT=YYYYMMDDHH24MISS AUTHSTATE=compat DISPLAY=10.238.2.223:0.0 SHELL=/usr/bin/ksh ODMDIR=/etc/objrepos ORA_NLS33=/oracle/app/oracle/ocommon/nls/admin/data HOME=/oracle TERM=vt100 MAILMSG=[YOU HAVE NEW MAIL] ORACLE_HOME=/oracle/app/oracle PWD=/ TZ=BEIST-8 AIXTHREAD_SCOPE=S A__z=! LOGNAME NLSPATH=/usr/lib/nls/msg/%L/%N:/usr/lib/nls/msg/%L/%N.cat LIBPATH=/oracle/app/oracle/lib:/oracle/app/oracle/ctx/lib LD_LIBRARY_PATH=/oracle/app/oracle/lib:/usr/lib
|
十四.做定时JOB
1.创建存储过程,为此存储过程作定时JOB
1.创建一张表,用户存放定时信息 create table test_time (test date)
2. 制定定时执行的存储过程 create or replace procedure inserttest as begin insert into test_time values (sysdate); end; /
3. 创建JOB,即创建待执行的定时任务过程 variable job1 number; begin dbms_job.submit(:job1,'inserttest;',sysdate,'sysdate+1/1440'); end;
4.启动JOB 启动并运行定时任务的过程 begin dbms_job.run(:job1); end; /
5.查看结果 select to_char(test,'yyyy/mm/dd hh24:mi:ss') from test_time
|
2.定时JOB 的 参数说明
DBMS_JOB.SUBMIT(:jobno,//job号 'your_procedure;',//要执行的过程 trunc(sysdate)+1/24,//下次执行时间 'trunc(sysdate)+1/24+1'//每次间隔时间 ); 删除job:dbms_job.remove(jobno); 修改要执行的操作:job:dbms_job.what(jobno,what); 修改下次执行时间:dbms_job.next_date(job,next_date); 修改间隔时间:dbms_job.interval(job,interval); 停止job:dbms.broken(job,broken,nextdate); 启动job:dbms_job.run(jobno); 修改job_queue_processes的值:(保证其不为0否则JOB不自动运行) 可通过select * from v$parameter;查看其值; 或者直接用show parameter job_queue_processes;查看如下: NAME TYPE VALUE --------------- ----------- ------------ job_queue_processes integer 10 方法1.startup pfile='C:oracleora90databaseinitorcl.ora'; //这个方法用来修改initorcl.ora文件的job_queue_processes参数,然后重新启动数据库 方法2.alter system set job_queue_processes=10 //这个方法不用重启数据库就可以生效,系统自动修改init.ora文件以后即可生效。 文章来源: baike.duba.net
|
十五.查询出SQL语句
1.通过SID 找出HASH VALUE 值
SELECT sql_hash_value FROM v$session b WHERE b.SID = '1179'
|
2.通过HASH VALUE 值 查询出SQL 语句
select sql_text from V$SQLTEXT_WITH_NEWLINES where hash_value =2743738331 orderby piece
|
3.根据HASH VALUE 值 查询出对应的 SESSLIN SID
select sid from v$open_cursor where hash_value='2692718941'
|
4.根据HASH VALUE 找出对应的机器名称
select USER#,MACHINE,SQL_HASH_VALUE from v$session where sid='1179'
|
5.通过HASH VALUE 查询出 该语句的执行计划
select id,parent_id pid,operation,options,object_name,cost,cardinality from v$sql_plan where hash_value='2743738331'
|
6.查询存储过程
根据存储过程的名称,查询出存储过程的内容 存储过程的名称要大写
select text from dba_source where name='P_STA_SP_MOT_C001'
|
7.查询对象属于哪个用户
select OWNER from dba_segments where SEGMENT_NAME='TI_B_ASYNWORK'
|
8.查询表的分析时间
select blocks, LAST_ANALYZED from dba_tables where owner='UCR_CRM1' and table_name='TI_B_ASYNWORK'
|
9.查询对象(表)的类型
查询该对象是表还是索引等
SELECT SEGMENT_TYPE,blocks from dba_segments where owner='UCR_CRM1' and segment_name ='TI_B_ASYNWORK' |
十六.查询脚本
1.查询等待事件
select event,sid,p1,p2,p3 from v$session_wait where event not like 'SQL%' and event not like 'rdbm%'
|
2.查询大表已经索引 超过2G 的对象
注意:该语句很耗费CPU,尽力避免高峰时段查询
set linesize 300 col owner format a15 col tablespace_name format a20 col segment_name format a30 select * from ( select owner, segment_name, partition_name, segment_type, --tablespace_name, round(sum(bytes) / 1024 / 1024 / 1024,2) as "GB" from dba_segments where owner not in ('SYS', 'SYSTEM','PERFSTAT') group by owner, segment_name, partition_name,segment_type--tablespace_name order by gb desc ) where gb >=2
|
3.查看锁
select decode(request,0,'holder:','waiter:') holder,sid,id1,id2,lmode,request,type,ctime,block from v$lock where (id1,id2,type) in (select id1,id2,type from v$lock where request>0) order by id1,request
|
十七.基本的SQL语句
1.对表的操作
1.创建一张表 Create table 表 (a varchar2(10));
2. 插入内容 Insert into 表 values(‘aa’);
3.删除内容 Delete from 表名 (可以增加条件 以删除选择的内容)
4.删除表 Drop table 表名
5.增加一列 alter table abc add c number
6.删除一列 alter table abc drop column c
|
2.常用的函数
1.转换函数 to_char 将非字符类型转换为字符型 select to_char(sysdate,'yyyy-mm-dd hh24-mi-ss') to_date to_number
2聚集函数 avg max min sum count
3.系统函数 user 查询当前用户的登陆账号 select user from dual;
decode函数 select sum(decode(sex,'男',1,0) 男人数,sum(decode(sex,'女',1,0) from e; 查询e表中男人数和女人数各有多少,使用DECODE函数来做一个判断,if语句的判断,如果SEX为男,做计数,如果不是男则不做计数。
nvl 对查询的字段做一个标示 select a1,nvl(a2,'未输入') from dual; 如果a2的字段为空的话,就显示未输入。
|
十八.安装手册
十九.错误总结
1. ORA-00257: 归档程序错误
问题: 在导入3G大的数据时,需要注意Oracle10.2.0.1版本的归档日志空间默认为2G, 不断归档导致磁盘空间。则导入数据暂停。 在进行 大量的数据插入 或者IMP 大量导入的时候,
----------------------------------------------------------------------------------------------------------- 警告日志出现错误 Wed May 20 17:16:06 2009 Errors in file d:\oracle\product\10.1.0\admin\auc\bdump\auc_arc1_372.trc: ORA-19809: 超出了恢复文件数的限制 ORA-19804: 无法回收 9755648 字节磁盘空间 (从 2147483648 限制中)
ARC1: Error 19809 Creating archive log file to 'D:\ORACLE\PRODUCT\10.1.0\FLASH_RECOVERY_AREA\AUC\ARCHIVELOG\2009_05_20\O1_MF_1_478_U_.ARC' ARC1: All standby destinations failed; successful archival assumed ARC1: Failed to archive log 6 thread 1 sequence 478 (19809) Wed May 20 17:16:06 2009 Errors in file d:\oracle\product\10.1.0\admin\auc\bdump\auc_arc1_372.trc: ORA-16038: 日志 6 序列号 478 无法归档 ORA-19809: 超出了恢复文件数的限制 ORA-00312: 联机日志 6 线程 1: 'D:\ORACLE\PRODUCT\10.1.0\ORADATA\AUC\REDO06' ORA-00312: 联机日志 6 线程 1: 'D:\ORACLE\PRODUCT\10.1.0\ORADATA\AUC\REDO061'
Errors in file d:\oracle\product\10.1.0\admin\auc\bdump\auc_mmon_2264.trc: ORA-19815: 警告: db_recovery_file_dest_size 字节 (共 2147483648 字节) 已使用 100.00%, 尚有 0字节可用。
-------------------------------------------------------------------------------------------------------------------
原因: 检查alert_log日志原来是归档日志占满了FLASH_RECOVERY_AREA 的2G空间
解决办法 解决方法1:先手工删除D:\oracle\product\10.2.0\flash_recovery_area里面的 日志, 1)命令>rman target/ 2)命令>crosscheck archivelog all; 3)命令>delete expired archivelog all; 4)命令>exit 解决方法2:改变了FLASH_RECOVERY_AREA的大小 查看命令>show parameter db_recovery_file_dest_size
|
二十.故障处理
1.日志挖掘
1. 数据库是归档模式 archive log list
2.修改参数文件 确定 在参数文件 中有该参数 如果没有 添加到参数文件中 utl_file_dir=d:\oracle\product\10.1.0\admin\auc\cdump
3检查 是否有 以下的两个包 Desc dbms_logmnr_d Desc dbms_logmnr 如果显示字段说明有如果没有(invalid descrption objec)需要安装这两个包 catproc.sql 执行 该脚本来进行安装 在RDBMS 路径下
3.核对 日志 是否归档 可以检查警告日志 判断 日志的归档
4.建立 日志的目录文件 execute dbms_logmnr_d.build('oralinlog.ora','d:\oracle\product\10.1.0\admin\auc\cdump')
5.确定归档的路径和文件 执行 execute dbms_logmnr.add_logfile(logfilename=>'D:\oracle\product\10.1.0\flash_recovery_area\AUC\ARCHIVELOG\2009_05_20\O1_MF_1_512_517PH7OZ_.ARC',options=>dbms_logmnr.new)
6创建一张 临时表 存放归档的信息 create table temp_arch_13 tablespace USERS as select * from v$logmnr_contents where SQL_REDO like '%drop table%' or SQL_REDO like '%DROP TABLE%'
7.释放内存 execute dbms_logmnr.end_logmnr . 8.查询需要的信息 SELECT scn,timestamp,seg_name,table_name,sql_redo from sys.temp_arch_13
查询结果 SQL> SELECT scn,timestamp,seg_owner,seg_name,table_name,sql_redo from sys.temp_arch_13;
SCN TIMESTAMP SEG_OWNER SEG_NAME TABLE_NAME SQL_REDO ---------- -------------------- -------------------------------- --------------- ---------- ------------------------- 3368640 21-5月 -09 AUC RIZHI RIZHI drop table rizhi AS "BIN$iO3Q/iWXRgiwlLY0 L9E6lg==$0" ;
|
2.行链接行迁移
概念:
两则之间的区别:
行连接是指一个行存储在多个块中的情况,因为一个该行的长度超过了一个块的可用空间大小。
行迁移是指一个数据行不适合放入当前块而被重新定位到另一个块,但在原始块中保留一个指针
,原始块中的指针是必需的,因为索引的rowid项仍然指向原始位置.
行连接通常与行的长度和oracle数据库块中的大小有关,而行迁移通常是当一个更新操作的长度
增加且又要保持该行在同一块中,而该块又缺少可用空间时产生的问题,oracle在决定行连接之前先
试图进行行迁移
以下是在本机上模拟的该实验(以说明该故障的处理)
1.创建以下表hang create table hang as select * from jfsh_trade_rizhi_information where rownum=1 (将 jfsh_trade_rizhi_information 该表记录 只复制一行 和表结构)
2.修改表hang 的列 alter table hang add xinzeng20 char(1000) 该列从 xinzeng1 一直增加到xinzeng20
3.对该表分析一下 ANALYZE TABLE hang LIST CHAINED ROWS 如果没有HAINED_ROWS 表 可以通过以下脚本进行创建 @$ORACLE_HOME/rdbms/admin/utlchain.sql 4.查询 该表 是否存在行迁移 SQL> col OWNER_NAME for a10 SQL> col TABLE_NAME for a10 SQL> col CLUSTER_NAME for a10 SQL> col PARTITION_NAME for a15 SQL> col SUBPARTITION_NAME for a15 SQL> col HEAD_ROWID for a15 SQL> col ANALYZE_TIMEST for a20 SQL> set lines 1000 pages 1000 SELECT * FROM CHAINED_ROWS WHERE TABLE_NAME = 'HANG';
OWNER_NAME TABLE_NAME CLUSTER_NA PARTITION_NAME SUBPARTITION_NA HEAD_ROWID ANALYZE_TIMEST ---------- ---------- ---------- --------------- --------------- --------------- -------------- AUC HANG N/A AAAPDMAAEAAAQ3c 22-5月 -09 AAA 根据查询结果发现发生了行迁移
1.试着 重新创建表 并且使用这张表内容 create table hang_1 as select * from hang 2.分析该表 ANALYZE TABLE hang_1 LIST CHAINED ROWS 3.查询 SQL> SELECT * FROM CHAINED_ROWS WHERE TABLE_NAME = 'HANG_1';
OWNER_NAME TABLE_NAME CLUSTER_NA PARTITION_NAME SUBPARTITION_NA HEAD_ROWID ANALYZE_TIMEST ---------- ---------- ---------- --------------- --------------- --------------- -------------- AUC HANG_1 N/A AAAPDNAAEAAAQ3k 22-5月 -09 AAA
AUC HANG_1 N/A AAAPDNAAEAAAQ3k 22-5月 -09 AAA
重新创建该表和复制该表内容不能解决该问题
如果该数据库中 该表 不存在与其他的表之间有关联 存在主键外键等 尝试以下方法进行处理
SQL>select CONSTRAINT_NAME,CONSTRAINT_TYPE, TABLE_NAME from USER_CONSTRAINTS where TABLE_NAME='CUSTOMER';
CONSTRAINT_NAME C TABLE_NAME
------------------------------ - --
PK_CUSTOMER1 P CUSTOMER
SQL>select CONSTRAINT_NAME,CONSTRAINT_TYPE, TABLE_NAME from USER_CONSTRAINTS where R_CONSTRAINT_NAME='PK_CUSTOMER1';
no rows selected
SQL> CREATE TABLE CUSTOMER_temp AS
SELECT * FROM CUSTOMER WHERE rowid IN
(SELECT head_rowid FROM chained_rows
WHERE table_name = 'CUSTOMER');
Table created.
SQL>select count(*) from CUSTOMER;
COUNT(*)
----------
338299
SQL> DELETE CUSTOMER WHERE rowid IN
(SELECT head_rowid
FROM chained_rows
WHERE table_name = 'CUSTOMER');
21306 rows deleted.
SQL> INSERT INTO CUSTOMER SELECT * FROM CUSTOMER_temp;
21306 rows created.
SQL> DROP TABLE CUSTOMER_temp;
Table dropped.
SQL> commit;
Commit complete.
SQL> select count(*) from CUSTOMER;
COUNT(*)
----------
338299
SQL> truncate table chained_rows;
Table truncated.
SQL> ANALYZE TABLE CUSTOMER LIST CHAINED ROWS INTO chained_rows;
Table analyzed.
SQL> select count(*) from chained_rows;
COUNT(*)
----------
0
行链接行迁移 实施 方案 1. exp/imp 优点:安全性高 缺点:速度较慢,且可能影响业务 2.MOVE表(alter table 表名 move tablespace 表空间名 ) 优点:过程简单,速度快 缺点:需要占用相同大小的空间做数据存放,可能影响业务 3.使用utlchain.sql 优点:安全性高,速度快 缺点:过程繁琐,如表中含有外键约束的话不能使用此方案
行链接 当一条记录太大,一个数据块无法将其存储时,Oracle就会将其存储在相链接的数据块中。如果一条记录中含有 数据类型如:LONG、LONG RAW、LOB,行链接则无法避免。 行迁移 当一个数据块已满,而一条记录在更新后长度增加了,或者表上新增加了字段,这时Oracle就会将整个记录迁移 到一个新的数据块,原先的位置存放指向新位置的指针,这就是行迁移。记录的ROWID在行迁移之后保持不变。
行链接/行迁移对系统的影响 除大数据类型之外,上述情况对数据库的性能是有影响的。 系统在访问一条记录时,正常情况只需要访问1个数据块,但是当出现行链接/行迁移后,就需要访问至少2个数据 块,增大了至少1倍的系统开销。
查询发生行链接、行迁移的表 select owner, table_name, tablespace_name, chain_cnt from dba_tables where chain_cnt >0;
通过上面查询 确定行链接 行迁移的表名 table_name该字段值
1.通过执行utlchain.sql 该脚本 建立一个存放行迁移 的表 @?/rdbms/admin/utlchain.sql 注意:如果该表已经存在,就不需要 执行该脚本(CHAINED_ROWS)
2.分析ROW_ID 产生的行迁移 analyze table 用户.表名list chained rows;
3.建立一张表 用户存放 被迁移的行 create table CH_BB_I×××_SHOULD_COMPLETE_T
4.删除表中所有迁移的行 delete hang
5.将被删除的行 再插入回去
insert into hang
6.提交修改 commit
总结和建议 总结:使用上述方法进行表的行迁移/行链接处理,全部都在联机的状态下完成,基本上不会对业务 产生影响,有速度快、效率高的特点。 建议:定期的对行迁移/行链接的情况进行处理以保证数据库运行效
|
3.逻辑备份(exp/imp)
1 将数据库TEST完全导出,用户名system 密码manager 导出到D:daochu.dmp中
Exp system/manager@TEST file=d:daochu.dmp full=y
|
2 将数据库中system用户与sys用户的表导出
Exp system/manager@TEST file=d:daochu.dmp owner=(system,sys)
|
3 将数据库中的表inner_notify、notify_staff_relat导出
exp aichannel/aichannel@TESTDB2 file=d:datanewsmgnt.dmp tables=(inner_notify,notify_staff_relat)
|
4 将数据库中的表table1中的字段filed1以"00"打头的数据导出
exp system/manager@TEST file=d:daochu.dmp tables=(table1) query="wherefiled1 like’00%’"
|
5.将D:daochu.dmp 中的数据导入 TEST数据库中
imp system/manager@TEST file=d:daochu.dmp imp aichannel/aichannel@HUST full=y file=d:datanewsmgnt.dmp ignore=y
|
6. 将d:daochu.dmp中的表table1 导入
imp system/manager@TEST file=d:daochu.dmp tables=(table1) |
IMP/EXP详细参数 在 P1
4.关闭和启动数据库的步骤
关闭数据库流程 首先停掉监听不再产生新的连接 lsnrctl stat LISTENER_ANADB lsnrctl stat LISTENER_SIEBDB1 lsnrctl stop LISTENER_ANADB lsnrctl stop LISTENER_SIEBDB1 lsnrctl stop 查进程 ps -ef|grep ora_ AIX上杀客户端进程的命令 ps -ef|grep $ORACLE_SID|grep -v ora_|grep LOCAL=NO|awk '{print $2}'|xargs kill -9 HP上杀客户端进程的命令 ps -ef|grep LOCAL=NO|grep $ORACLE_SID|wc -l ps -ef|grep LOCAL=NO|grep $ORACLE_SID|cut -c 9-15|xargs kill -9 杀掉进程后确定客户端进程已经都没有 ps -ef|grep LOCAL=NO(客户端连接) ps -ef|grep LOCAL=YES(本地连接) 确定不能查到任何进程 $sqlplus “/ as sysdba” shutdown immediate; startup 或者 startup mount alter database open;
lsnrctl startup lsnrctl start LISTENER_ANADB lsnrctl start LISTENER_SIEBDB1
alter system set events = 'immediate trace name flush_cache';
|
5.逻辑读,物理读
1.物理读:当数据块 第一次读取,就会缓存到BUFFER CACHE 中,而第二次读取和修改数据块的时候,就在内存BUFFER CACHE 中。 物理读 我们也可以理解为 当 第一次读取数据的时候,发现才BUFFER CACHE 中没有 缓存的该块,从而 从磁盘上读取数据 缓存到 BUFFER CACHE 中,然后再从 BUFFER CACHE 返回到用户界面。
二十一.METALINK 操作
1.开二级别SR
首先根据提示选择 对应的主机信息 ORACLE 信息 和错误信息
在最后一项 不要选择YES
2.如下图,在这几项 根据如图选择的 提示就可以了
2.OPATCH 下载地址
http://updates.oracle.com/download/6880880.html
输入网址 会提示 输入METALINK 的用户名和密码
点击 进入 OPATCH 下载界面
在 项 选择 操作系统的类型和版本 在
选择 数据库版本和类型
点击Download 进行 OPATCH 的下载
3.数据库升级补丁下载
1.当进入METALINK 的 界面后 可以看到如图界面
2.点击 该选项
3.可以看到如下界面
4.点击 该选项
5.如下图,在ORACLE DATABASE 选项,就可以看到 针对的操作系统和针对的数据库版本的升级补丁。
6.选择后,鼠标单击,就出现下面的下载界面(注意:在界面的最下方)
7.如上图,就可以进行 ORACLE 的升级补丁和 PATCH 的下载。
二十二.oracle下载
1.ORACLE10G 下载方法
1.输入下面网址
http://www.oracle.com/technology/global/cn/software/products/database/oracle10g/index.html
上面的网址是 连接中文的ORACLE 10G 版本的下载地址 虽然是中文,但是 连接的是ORACLE 的官方网址,可以放心下载
2.在这里 比如说下载
HP-UX Itanium 平台的ORACLE 10 G 2版本的 软件下载
如图:找到 对应的该操作系统的对应选项
3.点击进入,下载界面
4.如上图,点击 该选项 选中该选项
5.选中后,如图:
6.点击 进行 下载
7.下载的时候 ,可能会提示您用户名和密码 可以根据界面的提示 重新注册一个用户名和密码
8.第一个选项下载的是 ORACLE 的 压缩包 ,后面的 选项页是 安装包,有的是 可以进行CD 刻录等
9.如下图
如图:第一项是 ORACLE 的可以进行刻录 第二项 是集群软件的下载 第三项是 ORACLE 的客户端版的下载
二十三.在日常操作中使用的脚本
P1.IMP/EXP参数详细说明
要指定参数,您可以使用关键字: 格式: EXP KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN) 实例: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR) 或 TABLES=(T1: P1,T1: P2),如果 T1 是分区表 USERID 必须是命令行中的第一个参数。 关键字 说明(默认) --------------------------------------------------- USERID 用户名/口令 FULL 导出整个文件 (N) BUFFER 数据缓冲区的大小 OWNER 所有者用户名列表 FILE 输出文件 (EXPDAT.DMP) TABLES 表名列表 COMPRESS 导入一个范围 (Y) RECORDLENGTH IO 记录的长度 GRANTS 导出权限 (Y) INCTYPE 增量导出类型 INDEXES 导出索引 (Y) RECORD 跟踪增量导出 (Y) ROWS 导出数据行 (Y) PARFILE 参数文件名 CONSTRAINTS 导出限制 (Y) CONSISTENT 交叉表一致性 LOG 屏幕输出的日志文件 STATISTICS 分析对象 (ESTIMATE) DIRECT 直接路径 (N) TRIGGERS 导出触发器 (Y) FEEDBACK 显示每 x 行 (0) 的进度 FILESIZE 各转储文件的最大尺寸 QUERY 选定导出表子集的子句 下列关键字仅用于可传输的表空间 TRANSPORT_TABLESPACE 导出可传输的表空间元数据 (N) TABLESPACES 将传输的表空间列表 IMP命令 E:>imp help=y 可以通过输入 IMP 命令和您的用户名/口令 跟有您的用户名 / 口令的命令: 实例: IMP SCOTT/TIGER 或者, 可以通过输入 IMP 命令和各种自变量来控制“导入”按照不同参数。 要指定参数,您可以使用关键字: 格式: IMP KEYWORD=value 或 KEYWORD=(value1,value2,...,vlaueN) 实例: IMP SCOTT/TIGER IGNORE=Y TABLES=(EMP,DEPT) FULL=N 或 TABLES=(T1: P1,T1: P2),如果 T1 是分区表 USERID 必须是命令行中的第一个参数。 关键字 说明(默认) ---------------------------------------------- USERID 用户名/口令 FULL 导入整个文件 (N) BUFFER 数据缓冲区大小 FROMUSER 所有人用户名列表 FILE 输入文件 (EXPDAT.DMP) TOUSER 用户名列表 SHOW 只列出文件内容 (N) TABLES 表名列表 IGNORE 忽略创建错误 (N) RECORDLENGTH IO 记录的长度 GRANTS 导入权限 (Y) INCTYPE 增量导入类型 INDEXES 导入索引 (Y) COMMIT 提交数组插入 (N) ROWS 导入数据行 (Y) PARFILE 参数文件名 LOG 屏幕输出的日志文件 CONSTRAINTS 导入限制 (Y) DESTROY 覆盖表空间数据文件 (N) INDEXFILE 将表/索引信息写入指定的文件 SKIP_UNUSABLE_INDEXES 跳过不可用索引的维护 (N) ANALYZE 执行转储文件中的 ANALYZE 语句 (Y) FEEDBACK 显示每 x 行 (0) 的进度 TOID_NOVALIDATE 跳过指定类型 id 的校验 FILESIZE 各转储文件的最大尺寸 RECALCULATE_STATISTICS 重新计算统计值 (N) 下列关键字仅用于可传输的表空间 TRANSPORT_TABLESPACE 导入可传输的表空间元数据 (N) TABLESPACES 将要传输到数据库的表空间 DATAFILES 将要传输到数据库的数据文件 TTS_OWNERS 拥有可传输表空间集中数据的用户
|
转载于:https://blog.51cto.com/2714349/1607029