Oracle常用SQL

Technorati 标签: ,

Oracle常用SQL

1 表管理

1.1 创建表

eg 1:

create table tb_mapping as select * from mpopr.tb_mapping;

create table tb_mapping as select * from mpopr.tb_mapping_20060831_undo_bak where nms_device_code is not null;

2 表空间管理

创建表空间NAST,指定数据文件大小为1000M,自动增长的,且最大大小为2000M。

create tablespace NAST

datafile 'E:/oracle10g/oradata/egov02/NAST01.DBF' SIZE 1000M

AUTOEXTEND ON MAXSIZE 2000M;

修改表空间NAST,为其添加数据文件。

Alter Tablespace NAST

ADD DATAFILE 'E:/oracle10g/oradata/egov02/NAST02.DBF' SIZE 1000M

AUTOEXTEND ON MAXSIZE 2000M;

创建临时表空间。

CREATE TEMPORARY TABLESPACE NAST_TEMP

TEMPFILE 'E:/oracle10g/oradata/egov02/NAST_TEMP01.DBF' SIZE 1000M

AUTOEXTEND OFF;

修改临时表空间

Alter Tablespace NAST_TEMP

ADD TEMPFILE 'E:/oracle10g/oradata/egov02/NAST_TEMP02.DBF' SIZE 1000M;

3 用户管理

创建用户

create user NAST identified by ‘test’;

授权

grant connect to nast;

grant resource to nast;

修改用户

ALTER USER NAST

default tablespace NAST

temporary tablespace NAST_TEMP;

4 数据备份

4.1 exp命令

帮助:在安装的oracle的机器上的DOS下,输入exp –help.

D:/>exp -help

Export: Release 10.2.0.1.0 - Production on 星期二 3月 24 18:50:18 2009

Copyright (c) 1982, 2005, Oracle. All rights reserved.

通过输入 EXP 命令和您的用户名/口令, 导出

操作将提示您输入参数:

例如: EXP SCOTT/TIGER

或者, 您也可以通过输入跟有各种参数的 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)

DIRECT 直接路径 (N) TRIGGERS 导出触发器 (Y)

LOG 屏幕输出的日志文件 STATISTICS 分析对象 (ESTIMATE)

ROWS 导出数据行 (Y) PARFILE 参数文件名

CONSISTENT 交叉表的一致性 (N) CONSTRAINTS 导出的约束条件 (Y)

OBJECT_CONSISTENT 只在对象导出期间设置为只读的事务处理 (N)

FEEDBACK 每 x 行显示进度 (0)

FILESIZE 每个转储文件的最大大小

FLASHBACK_SCN 用于将会话快照设置回以前状态的 SCN

FLASHBACK_TIME 用于获取最接近指定时间的 SCN 的时间

QUERY 用于导出表的子集的 select 子句

RESUMABLE 遇到与空格相关的错误时挂起 (N)

RESUMABLE_NAME 用于标识可恢复语句的文本字符串

RESUMABLE_TIMEOUT RESUMABLE 的等待时间

TTS_FULL_CHECK 对 TTS 执行完整或部分相关性检查

TABLESPACES 要导出的表空间列表

TRANSPORT_TABLESPACE 导出可传输的表空间元数据 (N)

TEMPLATE 调用 iAS 模式导出的模板名

成功终止导出, 没有出现警告。

e.g. 1:

exp nast/@egov01 owner=(nast) rows=y grants=y file=nast_090324.dmp log=nast_090324_exp.log

owner=(nast): 安用户倒出,用户名为nast

rows=y: 倒出表结构和数据,rows=n只倒出表结构

grants=y: ??

file: 倒出到本地当前目录

log: 倒出日志

e.g. 2: 当数据库数据比较大时,采用倒出多个数据文件

exp reporter@AHINMS /

file=(/opt/data/sysbackup/data/oracle/report/reporter_20061108_1.data, /

/opt/data/sysbackup/data/oracle/report/reporter_20061108_2.data, /

/opt/data/sysbackup/data/oracle/report/reporter_20061108_3.data, /

/opt/data/sysbackup/data/oracle/report/reporter_20061108_4.data, /

/opt/data/sysbackup/data/oracle/report/reporter_20061108_5.data, /

/opt/data/sysbackup/data/oracle/report/reporter_20061108_6.data, /

/opt/data/sysbackup/data/oracle/report/reporter_20061108_7.data, /

/opt/data/sysbackup/data/oracle/report/reporter_20061108_8.data, /

/opt/data/sysbackup/data/oracle/report/reporter_20061108_9.data, /

/opt/data/sysbackup/data/oracle/report/reporter_20061108_10.data) /

filesize=1024M /

owner=(reporter) /

rows=y /

buffer=1024000 /

log=/opt/data/sysbackup/data/oracle/report/reporter_status_exp_20061108.log

file: 多个数据文件

filesize:每个数据文件的大小,单位有K,M,G

buffer:倒出的缓冲大小

4.2 imp命令

帮助:在安装的oracle的机器上的DOS下,输入imp –help.

D:/>imp -help

Import: Release 10.2.0.1.0 - Production on 星期二 3月 24 18:59:14 2009

Copyright (c) 1982, 2005, Oracle. All rights reserved.

通过输入 IMP 命令和您的用户名/口令, 导入

操作将提示您输入参数:

例如: IMP SCOTT/TIGER

或者, 可以通过输入 IMP 命令和各种参数来控制导入

的运行方式。要指定参数, 您可以使用关键字:

格式: IMP KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)

例如: 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)

FEEDBACK 每 x 行显示进度 (0)

TOID_NOVALIDATE 跳过指定类型 ID 的验证

FILESIZE 每个转储文件的最大大小

STATISTICS 始终导入预计算的统计信息

RESUMABLE 在遇到有关空间的错误时挂起 (N)

RESUMABLE_NAME 用来标识可恢复语句的文本字符串

RESUMABLE_TIMEOUT RESUMABLE 的等待时间

COMPILE 编译过程, 程序包和函数 (Y)

STREAMS_CONFIGURATION 导入流的一般元数据 (Y)

STREAMS_INSTANTIATION 导入流实例化元数据 (N)

下列关键字仅用于可传输的表空间

TRANSPORT_TABLESPACE 导入可传输的表空间元数据 (N)

TABLESPACES 将要传输到数据库的表空间

DATAFILES 将要传输到数据库的数据文件

TTS_OWNERS 拥有可传输表空间集中数据的用户

成功终止导入, 没有出现警告。

e.g. 1:

imp nast@egov51file=nast_090316.dmp log=imp_nast_090316.log

5 归档管理

5.1 检查是否处于归档模式

SQL> select log_mode from v$database;

LOG_MODE

------------

ARCHIVELOG

NOARCHIVELOG表示非归档,ARCHIVELOG表示归档

5.2 归档

如果Database log mode 的值不是Archive Mode的话,那么以SYSDBA的身份登入数据库(sqlplus / as sysdba),继续执行以下操作:

运行DOS,输入sqlplus / as sysdba

SQL> shutdown immediate

SQL> startup mount

SQL> alter database archivelog;

SQL> alter database open

SQL> exit

6 错误处理

6.1 ORA-12514

【Desc】C:/Documents and Settings/sysop>sqlplus

SQL*Plus: Release 10.2.0.1.0 - Production on Wed Mar 25 13:57:50 2009

Copyright (c) 1982, 2005, Oracle. All rights reserved.

Enter user-name: sys/123@egov02 as sysdba

ERROR:

ORA-12514: TNS:listener does not currently know of service requested in connect

descriptor

【Process】

Step 1,打开C:/oracle/product/10.2.0/db_1/network/admin/listener.ora

Step 2,在SID_LIST_LISTENER里添加如下代码

(SID_DESC =

(GLOBAL_DBNAME = egov02.db02.laopdr.gov.la)

(ORACLE_HOME = C:/oracle/product/10.2.0/db_1)

(SID_NAME = egov02)

)

最后的内容如下

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = C:/oracle/product/10.2.0/db_1)

(PROGRAM = extproc)

)

(SID_DESC =

(GLOBAL_DBNAME = egov02.db02.laopdr.gov.la)

(ORACLE_HOME = C:/oracle/product/10.2.0/db_1)

(SID_NAME = egov02)

)

)

Step 3,重启OracleOraDb10g_home1TNSListener服务

6.2 ORA-1034

【Desc】ORA-1034 ORACLE not available

【Action】

Step 1,把sqlnet.ora文件中的SQLNET.AUTHENTICATION_SERVICES = (NTS) NTS换为NONE.

Step 2,重启动oracle service,例如:OracleServiceEGOV02

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值