
>CREATE TABLESPACE usertbs1 datafile
'D:\tmp\usertbs1.DBF' SIZE 20M
5.2 区定制分配
>CREATE TABLESPACE usertbs1 datafile
'D:\tmp\usertbs1.DBF' SIZE 20M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 512K
5.3 每次自动扩展1M,最大值为100MB
>ALTER DATABASE DATAFILE
'D:\tmp\usertbs1.DBF'
AUTOEXTEND ON NEXT 1M MAXSIZE 100M
5.4 创建临时表空间
>CREATE TEMPORARY TABLESPACE temptbs TEMPFILE
'D:\tmp\temptbs.DBF' SIZE 20M
EXTEND MANAGEMENT LOCAL UNIFORM SIZE 10M
/*设置当前默认表空间*/
>ALTER DATABASE DEFAULT TABLESPACE temptbs
5.5 对表空间联机脱机
>ALTER TABLESPACE usertbs1 OFFLINE
>ALTER TABLESPACE usertbs1 ONLINE
5.9 为表空间添加数据文件
>ALTER TABLESPACE usertbs1 ADD DATAFILE
'D:\tmp\USERS05.DBF' SIZE 50M
10题与9题一样
5.12 数据文件更名
>ALTER TABLESPACE usertbs1 OFFLINE
手动改数据文件名为 USERS005.DBF
>ALTER TABLESPACE usertbs1 RENAME DATAFILE
'D:\tmp\USERS05.DBF' TO
'D:\tmp\USERS005.DBF'
>ALTER TABLESPACE usertbs1 ONLINE
5.14 添加重做日志组,包含redo5a.log和redo5b.log,大小为5MB
>ALTER DATABASE ADD LOGFILE GROUP 4
('D:\tmp\redo5a.log', 'D:\tmp\redo5b.log')
SIZE 5M
5.15 添加日志文件成员
>ALTER DATABASE ADD LOGFILE MEMBER
'D:\tmp\redo5c.log' TO GROUP 4
5.16 切换归档模式且自动归档
>SHUTDOWN IMMEDIATE
>STARTUP MOUNT
>ALTER DATABASE ARCHIVELOG
>ALTER DATABASE OPEN
5.17 设置数据库归档路径
>ALTER SYSTEM SET db_recovery_file_dest="D:\ORACLE\BACKUP"
6.2 建表
>CREATE TABLE exer_class(
CNO NUMBER(2) PRIMARY KEY,
CNAME VARCHAR(20),
NUM NUMBER(3)
)
>CREATE TABLE exer_studnet(
SNO NUMBER(4) PRIMARY KEY,
SNAME VARCHAR(10) UNIQUE,
SAGE NUMBER,
SEX CHAR(2),
CNO NUMBER(2)
)
6.3 添加检查约束
>ALTER TABLE exer_studnet ADD
CONSTRAINT S_CK CHECK (SAGE BETWEEN 0 AND 100)
6.4 取值为M或F,默认M
>ALTER TABLE exer_studnet ADD
CONSTRAINT SEX_CK CHECK(SEX IN ('M','F'))
>ALTER TABLE exer_studnet MODIFY SEX DEFAULT 'M'
6.5 建立唯一索引
>CREATE UNIQUE INDEX class_name_index ON exer_class(CNAME)
6.6 创建视图
>CREATE VIEW cl_stu_view as
SELECT c.CNO, c.CNAME, s.SNO, s.SNAME FROM exer_class c, exer_studnet s
WHERE s.CNO=c.CNO
6.7 创建序列
>CREATE SEQUENCE no_seq START WITH 100000001 INCREMENT BY 1 NOCACHE NOCYCLE
6.8 表格分区
>CREATE TABLESPACE EXAMPLE DATAFILE
'D:\tmp\EXAMPLE.DBF' SIZE 50M
>CREATE TABLESPACE ORCLTBS1 DATAFILE
'D:\tmp\ORCLTBS1.DBF' SIZE 50M
>CREATE TABLESPACE ORCLTBS2 DATAFILE
'D:\tmp\ORCLTBS2.DBF' SIZE 50M
>CREATE TABLE exer_student_range(
SNO NUMBER(4) PRIMARY KEY,
SNAME VARCHAR(10) UNIQUE,
SAGE NUMBER,
SEX CHAR(2),
CNO NUMBER(2)
)
PARTITION BY RANGE(SAGE)(
PARTITION P1 VALUES LESS THAN (20) TABLESPACE EXAMPLE,
PARTITION P2 VALUES LESS THAN (30) TABLESPACE ORCLTBS1,
PARTITION P3 VALUES LESS THAN (MAXVALUE) TABLESPACE ORCLTBS2
)
6.9 按性别分区
>CREATE TABLE exer_student_list(
SNO NUMBER(4) PRIMARY KEY,
SNAME VARCHAR(10) UNIQUE,
SAGE NUMBER,
SEX CHAR(2),
CNO NUMBER(2)
)
PARTITION BY LIST(SEX)(
PARTITION male VALUES('M') TABLESPACE ORCLTBS1,
PARTITION female VALUES('F') TABLESPACE ORCLTBS2
)
6.10 本地分区索引
>CREATE INDEX student_local ON exer_student_range(SAGE) LOCAL
Oracle使用多个重做日志组来管理重做日志,这些重做日志组循环使用;每个日志组至少包含一个日志成员,保险起见,建议每个日志组包含两个以上成员,每个日志成员位于不同的磁盘上,写入日志时Oracle会将相同的内容同时写入同一个日志组的多个成员;
日志文件与日志成员是一回事。
第一步,查看当前日志select a.group#,a.bytes/1024/1024||'M' log_size,a.status,b.member from v$log a
left join v$logfile b on A.GROUP#=b.group#
第二步,删除原有日志
注意事项:
a. 日志的当前状态必须是inactive的才可以删除,active状态说明日志中的记录还没有被同步到数据文件中,这个需要等待一定时间之后才会变成inactive状态;current状态是当前正在写的日志,也不能删除。
b. 日志组的数量不能低于2组。
删除日志命令:
如果当前只有group 2是inactive,所以只能删除group 2,使用以下删除命令:
alter database drop logfile group 2
当只剩下两组日志时,因为日志组不能低于2组,所以不能再删除,只能添加日志组之后再删除。
c. 执行删除之后该日志的物理文件还是存在的,可以删除,但是这个动作很危险,需要小心。
也可以不删除,如果再行创建的日志文件和原来的日志文件名称相同,可以在增加日志组(或者日志组成员)的命令中添加一个reuse选项。
第三步,添加新的日志
可以使用批量命令:
alterdatabaseaddlogfile group4'/data/log/REDO_LOG04.log'size 500M,
group5'/data/log/REDO_LOG05.log'size 500M,
group6'/data/log/REDO_LOG06.log'size 500M
当日志状态为active的时候,我们要改变它的大小,但是又无法删除,我们需要使用命令:
altersystemswitchlogfile改变current log
改变之后,currentlog变成第2组日志,第1组日志状态为active,再等待一定时间其状态变为inactive的时候就可以删除了。
如果日志组1的状态长时间不改变,可以执行手动生成检查点命令:altersystemcheckpoint
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)