Oracle11G数据库命令:
1进入SQLPLUS状态
1、打开【附件】-【命令提示符】,以系统管理员的身份运行;
2、输入sqlplus / as sysdba;
3、回车执行语句,进入数据库;
2用户管理
【说明】:在SQLPLUS状态下执行。
2.1创建用户
CREATE USER yonghuming IDENTIFIED BY mima DEFAULT TABLESPACE NNC_DATA01 TEMPORARY TABLESPACE temp;
说明:
1、“yonghuming”——用户名称;
2、“mima”——用户密码;
2.2授权用户:(一般授权)
GRANT connect,dba to yonghuming;
说明:
1、“yonghuming”——用户名称;
2.3授权用户:(数据泵模式)
GRANT read,write on directory expdir to yonghuming;
说明:
1、“expdir”——数据泵创建的目录名称;
2、“yonghuming”——用户名称;
2.4查看用户
select username from dba_users;
2.5删除用户
drop user yonghuming(用户名)cascade;
3数据泵操作
3.1创建目录
1、在数据库实例上创建directory(sqlplus模式下执行)
CREATE OR REPLACE DIRECTORY 目录名称 AS '数据库服务器上的一个目录' 例如 CREATE OR REPLACE DIRECTORY expdir AS 'd:\';
红字为要命名的目录名称,as后面为实际路径(windows环境),把需要导入的数据直接放入d盘目录下即可。
2、创建后可以用这个命令来查看已存在的目录
(查看所有)
select * from dba_directories;
(查看制定目录名所在目录)
select * from dba_directories WHERE DIRECTORY_name='expdir';
3.2创建用户并授权
CREATE USER yonghuming IDENTIFIED BY mima DEFAULT TABLESPACE NNC_DATA01 TEMPORARY TABLESPACE temp;
GRANT read, write ON DIRECTORY expdir TO orcle;
1、红字“expdir”为创建的目录;
2、蓝字” yonghuming”为需要被授权的用户名;
3.3数据库备份导出
创建用户并授权后,在dos状态(非sqlplus下)
假设原用户名称为test:
expdp nc6/orcle@orcl schemas=nc6 dumpfile=nc6.dmp directory=expdir logfile=test.log;
3.4数据库导入
创建用户并授权后,在dos状态(非sqlplus下)
【说明】:
1、使用数据泵语句导出的数据库,必须对应使用数据泵语句导入。
2、执行脚本前,需要把数据库文件如SYYNC611_FINAL-2.dmp考到本机D盘根下(创建
的目录位置)。
1、导出前导入后的数据库用户名称一致
impdp test/1@orcl(用户\密码@实例名) directory=expdir(已经创建的目录) dumpfile=text.dmp(具体数据库名称) schemas=test(数据泵导出的用户名称);
2、导出前导入后的数据库用户名称不一致,需要做用户名的映射
假设导出前用户名为test,导入的新用户名为test1:
impdp test1/1@orcl(用户\密码@实例名) directory=expdir(已经创建的目录) dumpfile=text.dmp(具体数据库名称) schemas=test(数据泵导出的用户名称) remap_schema=test:test1(导出用户名:导入用户名);
其中:schemas是源用户remap_schema中test是源用户test1是将要导入的目的用户.
4单表备份命令
create table 新表名as select * from 旧表名
5普通模式下导出导入
5.1导出
exp test/1@orcl(用户名/密码@数据库实例名)file=D:\test.dmp
5.2导入
Imp test/1@orcl(用户名/密码@数据库实例名)file=D:\test.dmp full=y
6Oracle11g不能新增空表解决方法
说明:
在oracle 11g r2中,发现传统的exp脚本居然不能导出空的表,需要按照如下的步骤去操作。
6.1原因:
Oracle 11g 新增了一个参数:deferred_segment_creation,含义是段延迟创建,默认是true。
如果这个参数设置为true,你新建了一个表T1,并且没有向其中插入数据,那么这个表不会立即分配extent,也就是不占数据空间,只有当你insert数据后才分配空间,这样可以节省少量的空间。
6.2解决办法:
当设置deferred_segment_creation 参数为FALSE后,无论是空表还是非空表,都分配segment,就可以用exp\imp脚本操作数据库的导入导出
1、在sqlplus中,执行如下命令:
alter system set deferred_segment_creation=false;
2、查看参数值:
show parameter deferred_segment_creation;
如果参数值为false则表明修改成功。
【说明】该值设置后只对后面新增的表产生作用,对之前建立的空表不起作用。
需要重新启动数据库,让参数生效。
7NC数据库文件创建脚本
7.1NC5系列
7.1.1创建NC表空间
/*NC*/ E:\app\oradata\orcl
CREATE TABLESPACE NNC_DATA01 DATAFILE 'E:\app\oradata\orcl\nnc_data01.dbf' SIZE 500M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K ;
CREATE TABLESPACE NNC_DATA02 DATAFILE 'E:\app\oradata\orcl\nnc_data02.dbf' SIZE 300M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K ;
CREATE TABLESPACE NNC_DATA03 DATAFILE 'E:\app\oradata\orcl\nnc_data03.dbf' SIZE 500M AUTOEXTEND ON NEXT 100M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 512K ;
CREATE TABLESPACE NNC_INDEX01 DATAFILE 'E:\app\oradata\orcl\nnc_index01.dbf' SIZE 500M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K ;
CREATE TABLESPACE NNC_INDEX02 DATAFILE 'E:\app\oradata\orcl\nnc_index02.dbf' SIZE 300M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K ;
CREATE TABLESPACE NNC_INDEX03 DATAFILE 'E:\app\oradata\orcl\nnc_index03.dbf' SIZE 500M AUTOEXTEND ON NEXT 100M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K ;
7.1.2创建IUFO表空间
CREATE TABLESPACE iufo DATAFILE 'E:\app\oradata\orcl\iufo.dbf' SIZE 500M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K ;
7.2NC6系列
创建NC表空间
CREATE TABLESPACE NNC_DATA01 DATAFILE 'E:\app\oradata\orcl\nnc_data01.dbf' SIZE 500M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K ;
CREATE TABLESPACE NNC_INDEX01 DATAFILE 'E:\app\oradata\orcl\nnc_index01.dbf' SIZE 500M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K ;。