锁定老帖子 主题:oracle-学习笔记-4
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (1)
|
|
---|---|
作者 | 正文 |
发表时间:2010-12-17
最后修改:2010-12-29
接 oracle-学习笔记-3 -------------------------------------
9.查看Oracle的datafile地址,查看表空间地址 set lines 1000 pages 1000
10.改变表空间某个数据文件大小 ALTER DATABASE DATAFILE '/oracle/oradata/yqmora92/ts_yqm.dbf' RESIZE 150M;
select * from user_ts_quotas; max_bytes字段就是了 -1是代表没有限制,其它值多少就是多少了. 不对用户做表空间限额控制: GRANT UNLIMITED TABLESPACE TO ***(用户); 这种方式是全局性的. 或者 alter user ***(用户名) quota unlimited on ***(表空间); 这种方式是针对特定的表空间的. 可以分配自然也可以回收了: revoke unlimited tablespace from ***(用户) 或者 alter user *** quota 0 on ***
11.1主键约束 实体完整性 create table nn(n1 varchar2(10) not null,n2 char(10)); SQL> show user 表已创建。 SQL> insert into nn values ('abc','def'); 已创建 1 行。 SQL> insert into nn values ('abc','def'); 已创建 1 行。 SQL> alter table nn add constraint pk_nn primary key(n1); 表已更改。 SQL> insert into nn values ('abc','def'); 已创建 1 行。 SQL> insert into nn values ('abc','def');
11.2 外键约束 参照完整性 SQL> create table mm(m1 char(10),m2 varchar2(10),n1 varchar2(10)); 表已创建。 SQL> alter table mm add constraint fk_mn foreign key(n1) references nn(n1); 表已更改。 SQL> insert into mm values ('aav','dd','ds');
已创建 1 行。 SQL> commit; 提交完成。 11.3 check 约束 SQL> select * from e; EID ENAME SEX DID 已选择8行。 SQL> update e set sex = '男' where eid = 15; 已更新 1 行。 SQL> commit; 提交完成。 SQL> alter table e add constraint ck_e_sex check(sex = '男' or sex = '女'); 表已更改。 SQL> update e set sex = 'aa' where eid = 15;
EID ENAME SEX DID 已选择8行。 11.4 查看约束 SQL> select constraint_name,constraint_type from user_constraints where table_name='MM'; CONSTRAINT_NAME C SQL> select constraint_name,constraint_type from user_constraints where table_name='E'; CONSTRAINT_NAME C SQL> select constraint_name,constraint_type from user_constraints where table_name='NN'; CONSTRAINT_NAME C
12. 表 索引 表 没建索引之前是按堆存放数据的。
SQL> create index my_mm_idx on mm(m1); 索引已创建。 SQL> select * from mm where m1 ='aav'; M1 M2 N1
为了解决 表里面数据很多,但是唯一值很少的情况,例如:有一万条记录,sex列 只有 两个不同的值 :男和女 SQL> create bitmap index bit_e on e(sex); 索引已创建。
VARCHAR2是Oracle提供的特定数据类型,Oracle可以保证VARCHAR2在任何版本中该数据类型都可以向上和向下兼容。 具体到NVARCHAR2和VARCHAR2的区别,从使用角度来看区别在于:NVARCHAR2在计算长度时和字符集相关的,例如数据库是中文字符集时以长度10为例,则 1、NVARCHAR2(10)是可以存进去10个汉字的,如果用来存英文也只能存10个字符。 2、而VARCHAR2(10)的话,则只能存进5个汉字,英文则可以存10个。
13. SQL Loader 先创建两个文件: loader.txt 内容: abc,xyz cont.ctl 内容: load data
打开一个cmd窗口,执行: E:\>sqlldr scott/tiger control=E:\WorkPlace\OracleWork\cont.ctl data=E:\WorkPlace\OracleWork\loader.txt SQL*Loader: Release 10.2.0.1.0 - Production on 星期二 12月 14 17:32:39 2010 Copyright (c) 1982, 2005, Oracle. All rights reserved. 达到提交点 - 逻辑记录计数 2
查看: SQL> select * from mm; M1 M2 N1
以上是处理规则数据,下面处理不规则数据: loader.txt 内容: abcddd,xyz
load data 打开一个cmd窗口,执行: E:\>sqlldr scott/tiger control=E:\WorkPlace\OracleWork\cont1.ctl data=E:\WorkPlace\OracleWork\loader1.txt SQL*Loader: Release 10.2.0.1.0 - Production on 星期二 12月 14 18:11:40 2010 Copyright (c) 1982, 2005, Oracle. All rights reserved. 达到提交点 - 逻辑记录计数 2
进入sql/plus 查看: SQL> select * from mm; M1 M2 N1 已选择8行。 14. OEM配置使用
导出 F:\>exp scott/tiger@ora Export: Release 10.2.0.1.0 - Production on 星期二 12月 14 20:47:22 2010 Copyright (c) 1982, 2005, Oracle. All rights reserved.
导出文件: EXPDAT.DMP > c:\mybak.dmp (2)U(用户), 或 (3)T(表): (2)U > t 导出表数据 (yes/no): yes > yes 压缩区 (yes/no): yes > yes 已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集 即将导出指定的表通过常规路径... . . 正在导出表 E导出了 8 行 要导出的表 (T) 或分区 (T: P): (按 RETURN 退出) > 导出成功终止, 但出现警告。
Export: Release 10.2.0.1.0 - Production on 星期二 12月 14 20:48:48 2010 Copyright (c) 1982, 2005, Oracle. All rights reserved.
导出文件: EXPDAT.DMP > c:\scott.dmp (2)U(用户), 或 (3)T(表): (2)U > u 导出权限 (yes/no): yes > yes 导出表数据 (yes/no): yes > yes 压缩区 (yes/no): yes > yes 已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
SQL> select * from e; EID ENAME SE DID 已选择8行。 SQL> delete from e; 已删除8行。 SQL> commit; 提交完成。 SQL> select * from e; 未选定行
E:\>imp scott/tiger Import: Release 10.2.0.1.0 - Production on 星期三 12月 15 18:53:44 2010 Copyright (c) 1982, 2005, Oracle. All rights reserved.
导入文件: EXPDAT.DMP> mybak.dmp 输入插入缓冲区大小 (最小为 8192) 30720> 经由常规路径由 EXPORT:V10.02.01 创建的导出文件 由于对象已存在, 忽略创建错误 (yes/no): no > yes 导入权限 (yes/no): yes > 导入表数据 (yes/no): yes > 导入整个导出文件 (yes/no): no > yes . 正在将 SCOTT 的对象导入到 SCOTT E:\>
回到sql窗口: SQL> select * from e; EID ENAME SE DID 已选择8行。
热备份,要把日志模式改为 存档模式
alter system set log_archive_start=true scope=pfile; 第二步,停掉数据库 shutdown immediate 第三步,启动数据 startup mount 表示,打开控制文件,不打开数据文件 第四步,将数据库切换到归档方式 alter database archivelog; 第五步,打开数据文件 alter database open; 第六步,查看模式 SQL> archive log list 第七步, alter tablespace TRAINING begin backup; 第八步,手动拷贝 把数据库实例目录下的数据文件 TRAINING 拷贝备份 第九步, alter tablespace TRAINING end backup; alter system archive log current; alter system switch logfile; alter system switch logfile; 注意要切换两次! 完成。
select * from v$recover_file; 假如 第6号 TRAINING 丢失 alter database datafile 6 offline drop; alter database open; 把以前手工备份的TRAINING拷贝到实例数据文件目录下 recover datafile 6; alter database datafile 6 online; 恢复完成。
SQL> alter database backup controlfile to trace; 数据库已更改。 然后,到下面目录下,可以看到产生的脚本,用于以后备份; ora_ora_1896.trc
把 ora_ora_1896.trc 另存为 create_ctl.sql SQL> @create_ctl.sql
假定日志文件丢失 第一步: recover database until cancle 第二步: alter database onpen resetlogs
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
浏览 4070 次