您的位置:首页 > 数据库 > Oracle

oracle 的一些平时常用知识积累(从创建空间、数据库备份和导入、plsql连接使用全过程)

2013-01-19 13:31 866 查看
Oracle


安装完ORACLE数据库,创建数据库后..

一 、创建空间、用户、授权

1、用户在CMD下以DBA身份登陆:

运行中输入CMD --SQLPLUS /NOLOG

SQL> CONN SYS/MANAGER AS SYSDBA (SYS/MANAGER 是指安装数据库时默认的、如果你修改了默认用户的密码 可以替换,也可以使用CONN /AS SYSDBA )

连接成功。

2、创建表空间

CREATE BIGFILE TABLESPACE 空间名

DATAFILE '(文件位置)F:\ORACLE\ORADATA\ORCL\TS_SMARTERCU_DATAFILE'

SIZE 5120M AUTOEXTEND ON NEXT 1024M MAXSIZE UNLIMITED

LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;

1) DATAFILE: 表空间数据文件存放路径

2) SIZE: 起初设置为200M

3) UNIFORM: 指定区尺寸为128k,如不指定,区尺寸默认为64k

4) 空间名称histdb 与 数据文件名称 histdb.dbf 不要求相同,可随意命名。

5) AUTOEXTEND ON/OFF 表示启动/停止自动扩展表空间

6) alter database datafile ' D:\oracle\product\10.2.0\oradata\orcl\histdb.dbf ' resize 500m; //手动修改数据文件大小为500M

PS: 删除表空间

DROP TABLESPACE ITTBANK INCLUDING CONTENTS AND DATAFILES;

3、创建用户并指定表空间

CREATE USER SMARTERCU (用户)PROFILE DEFAULT IDENTIFIED BY SMARTERCU(密码) DEFAULT TABLESPACE TS_SMARTERCU(指向的空间名)

TEMPORARY TABLESPACE TEMP ACCOUNT UNLOCK;

PS:删除用户

drop user smartercu(用户名) cascade ; 彻底删除该用户

4.授权CONECT

//DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。

//RESOURCE:拥有RESOURCE权限的用户只可以创建实体,不可以创建数据库结构。

//CONNECT:拥有CONNECT权限的用户只可以登录ORACLE,不可以创建实体,不可以创建数据库结构。

//对于普通用户:授予CONNECT, RESOURCE权限。

//对于DBA管理用户:授予CONNECT,RESOURCE, DBA权限。

EX:GRANT DBA TO SMARTERCU(授权用户);GRANT CONNECT TO SMARTERCU(授权用户;

ps: 撤权

revoke 权限 from 用户名;

5:查看该数据库中所有的表空间情况

select tablespace_name, file_id, file_name,round(bytes/(1024*1024),0) total_spacefrom dba_data_files

order by tablespace_name;

二 :导入外部的数据库备份文件到该用户以及本地导出备份

a、EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用。

b、EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用。(推荐 Oracle 10g开始提供了称为数据泵新的工具expdp/impdp,

它为Oracle数据提供高速并行及大数据的迁移。使用expdp/impdp以前需要在数据库中创建一个Directory

create directory dump_test as '/u01/oracle10g';

grant read, write on directory dump_test to piner )

上面这两种是常见的oracle 备份的两种配对方法,不能交叉使用

1、备份数据 (利用数据泵的方式)

DUMPFILE:用于指定转储文件的名称,默认名称为expdat.dmp

DIRECTORY:指定转储文件和日志文件所在的目录 建立目录:CREATE DIRECTORY dump as ‘d:dump’; 查询创建了那些子目录:SELECT * FROM dba_directories;

FULL:指定数据库模式导出,默认为N

HELP:指定是否显示EXPDP命令行选项的帮助信息,默认为N,当设置为Y时,会显示导出选项的帮助信息.

LOGFILE:指定导出日志文件文件的名称,默认名称为export.log

NETWORK_LINK:指定数据库链名,如果要将远程数据库对象导出到本地例程的转储文件中,必须设置该选项.

NOLOGFILE:该选项用于指定禁止生成导出日志文件,默认值为N.

SCHEMAS:该方案用于指定执行方案模式导出,默认为当前用户方案.

VERSION:指定被导出对象的数据库版本,默认值为COMPATIBLE. (如果是高版本到低版本 推荐加版本号。 imp 和exp 好像没有袄。)

1)按用户导

expdp scott/tiger@orcl schemas=scott dumpfile=expdp.dmp DIRECTORY=dpdata1;

2)并行进程parallel

expdp scott/tiger@orcl directory=dpdata1 dumpfile=scott3.dmp parallel=40 job_name=scott3

3)按表名导

expdp scott/tiger@orcl TABLES=emp,dept dumpfile=expdp.dmp DIRECTORY=dpdata1;

4)按查询条件导

expdp scott/tiger@orcl directory=dpdata1 dumpfile=expdp.dmp Tables=emp query='WHERE deptno=20';

5)按表空间导

expdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=temp,example;

6)导整个数据库

expdp system/manager DIRECTORY=dpdata1 DUMPFILE=full.dmp FULL=y;

2、还原数据

1)导到指定用户下

impdp scott/tiger DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=scott;

2)改变表的owner 也就是将scott 用户下的导入到system用户中

impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp TABLES=scott.dept REMAP_SCHEMA=scott:system;

3)导入表空间

impdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=example;

4)导入数据库

impdb system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y;

3、备份还原数据 (EXP/IMP的)

exp sa/topsci@jjdb file= owner=sa

imp sa/topsci@orcl file =d:\jjdb-5-20121122.DMP log=d:\201211242202.log full=y

exp:

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 选定导出表子集的子句

imp:

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)

三:配置plsql 连接数据库

1、手工配置:安装目录:F:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN 下面有三个文件

tnsnames.ora sqlnet.ora listener.ora

首先修改 tnsnames.ora

添加连接指向:

ORCL =(注意前面不能有空格袄)

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = localhost(也可以是ip、计算机名))(PORT = 1521(端口默认的)))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = ORCL(数据库SID 一般数据库名))

)

)

修改listener.ora

添加监听

LISTENER = (注意前面不能有空格袄)

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = localhost(也可以是ip、计算机名))(PORT = 1521))

)

)

启动服务 和监听

一般就连接成功了。

2:利用oracle中的net manager 工具配置

赠送一个好东西 如果误删除一些数据时 可以利用闪回移动表找回某个时间段的数据 只支持delete

(truncate的数据是不能恢复的,所以以后可要小心袄)

1、开启闪回移动表

alter table 表名 enable row movement;

2:闪回 可以找回某个时间点某个表 delete 删除掉的数据(truncate的是不可以的)

flashback table 表名 to timestamp to_timestamp('2012-11-28 09:00:00','yyyy-MM-dd hh24:mi:ss')

(以上是一些工作中会经常用到的,希望可以帮助到初步接触oracle的童鞋们)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐