千家信息网

ORACLE手工建库

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,手动建库:找到官方文档,打开主索引找到管理--create database停止现有的数据库,释放内存1.设置环境变量--ORACLE_SID2.建立密码文件3.建立文本的参数文件4.建立二进制参数文
千家信息网最后更新 2026年10月31日ORACLE手工建库

手动建库:
找到官方文档,打开主索引
找到管理--create database
停止现有的数据库,释放内存

1.设置环境变量--ORACLE_SID
2.建立密码文件
3.建立文本的参数文件
4.建立二进制参数文件
5.建立参数文件中描述的路径
6.启动数据库到nomount
7.create database...
8.运行脚本: @$ORACLE_HOME/rdbms/admin/catalog 建立数据字典
@$ORACLE_HOME/rdbms/admin/catproc 建立应用的包
9.建立示例方案
conn system/a@$ORACLE_HOME/sqlplus/admin/pupbld
br/>@$ORACLE_HOME/sqlplus/admin/pupbld

@$ORACLE_HOME/rdbms/admin/utlsampl.sql

打开官方文档
Supporting Documentation
Administratior's Guide
2 creating and configuring an Oracle Database
第三项:Creating a Database with the CREATE DATABASE Statement
Step 9: Issue the CREATE DATABASE Statement

1.关闭其他所有的数据库。
2.建立新数据库(yy)的密码文件
ORACLE用户执行
cd $ORACLE_HOME/dbs
rapwd file=orapwyy password=a

3.建立文本的参数文件
strings spfileqq.ora (找一个已经存在的参数文件,将内容粘贴修改即可)
修改对应的数据库名和文件路径。
具体见本文档下第3步详情。

4.设置环境变量:ORACLE_SID=yy
export ORACLE_SID=yy

5.建立二进制参数文件
conn / as sysdba
create spfile from pfile;

6.建立参数文件中描述的路径
cd /u01/app/oracle/admin
cp -r qq yy 进入到该目录下将qq目录复制重命名为yy
建立数据文件存放目录
cd /u01/app/oracle/oradata
mkdir yy
7.修改官方文档的手动建库脚本,改数据库名,路径,密码等。
具体见本文下面第7步详情

8.启动数据库到nomount,启动数据库到nomount阶段会写日志到$ORACLE_BASE/admin/实例名/adump目录
startup
报205错误
运行第7步修改后的 create database脚本创建数据库。
脚本执行完毕后数据库创建完成,建成一个裸库,没有数据字典

9.运行脚本: @$ORACLE_HOME/rdbms/admin/catalog 建立数据字典
@$ORACLE_HOME/rdbms/admin/catproc 建立应用的包

10.创建示例方案
SYS用户执行
alter user system identified by a;
conn system/a@$ORACLE_HOME/sqlplus/admin/pupbld
br/>@$ORACLE_HOME/sqlplus/admin/pupbld

@$ORACLE_HOME/rdbms/admin/utlsampl.sql

第3步详情:
.audit_file_dest='/u01/app/oracle/admin/yy/adump'
.audit_trail='db'
.compatible='11.2.0.0.0'
.control_files='/u01/app/oracle/oradata/yy/control01.ctl','/u01/app/oracle/oradata/yy/control02.ctl'
.db_block_size=8192
.db_domain=''
.db_name='yy'
.diagnostic_dest='/u01/app/oracle'
.open_cursors=300
.pga_aggregate_target=308281344
.processes=150
.remote_login_passwordfile='EXCLUSIVE'
.sga_target=924844032
.undo_tablespace='UNDOTBS1'

第7步详情:
CREATE DATABASE yy
USER SYS IDENTIFIED BY a
USER SYSTEM IDENTIFIED BY a
LOGFILE GROUP 1 ('/u01/app/oracle/oradata/yy/redo01.log') SIZE 20M,
GROUP 2 ('/u01/app/oracle/oradata/yy/redo02.log') SIZE 20M,
GROUP 3 ('/u01/app/oracle/oradata/yy/redo03.log') SIZE 20M
CHARACTER SET US7ASCII
NATIONAL CHARACTER SET AL16UTF16
EXTENT MANAGEMENT LOCAL
DATAFILE '/u01/app/oracle/oradata/yy/system01.dbf' SIZE 325M REUSE
SYSAUX DATAFILE '/u01/app/oracle/oradata/yy/sysaux01.dbf' SIZE 325M REUSE
DEFAULT TABLESPACE users
DATAFILE '/u01/app/oracle/oradata/yy/users01.dbf'
SIZE 500M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
DEFAULT TEMPORARY TABLESPACE tempts1
TEMPFILE '/u01/app/oracle/oradata/yy/temp01.dbf'
SIZE 20M REUSE
UNDO TABLESPACE undotbs1
DATAFILE '/u01/app/oracle/oradata/yy/undotbs01.dbf'
SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;

实验2:掌握数据库启动3阶段
删除yy数据库的参数文件,将yy数据库的控制文件、数据文件、日志文件移动到其他位置。
原来的目录 $ORACLE_BASE/oradata/yy 新的目录:$ORACLE_BASE/oradata/tt
1.查看数据库位置
select name from v$datafile
union all
select name from v$controlfile
union all
select name from v$tempfile
union all
select member from v$logfile;

路径:/u01/app/oracle/oradata/tt/

2.关闭数据库
shutdown immediate;

3.删除数据库的参数文件,将数据库的数据文件、日志文件、控制文件移动到其他目录。
cd $ORACLE_HOME/dbs
rm -rf inityy.ora
rm -rf spfileyy.ora
cd $ORACLE_BASE/oradata
mv yy tt

4.指定实例名,启动数据库
startup
报错:ORA-01078找不到参数文件
根据 /u01/app/oracle/diag/rdbms/yy/yy/trace下的log文件创建新的参数文件。
cd $ORACLE_HOME/dbs
vi inityy.ora 将刚才所看log文件的以下部分粘贴到该文本中,保存退出。

processes = 150
sga_target = 884M
control_files = "/u01/app/oracle/oradata/yy/control01.ctl"
control_files = "/u01/app/oracle/oradata/yy/control02.ctl"
db_block_size = 8192
compatible = "11.2.0.0.0"
undo_tablespace = "UNDOTBS1"
remote_login_passwordfile= "EXCLUSIVE"
db_domain = ""
audit_file_dest = "/u01/app/oracle/admin/yy/adump"
audit_trail = "DB"
db_name = "yy"
open_cursors = 300
pga_aggregate_target = 294M
diagnostic_dest = "/u01/app/oracle"
注:该步骤说明在数据库启动到numount阶段就需要参数文件。

5.在第四步创建好文本参数文件后,以SYS身份连接到数据库,创建二进制参数文件,启动数据库。
export ORACLE_SID=yy
sqlplus / as sysdba
create spfile from pfile;
startup
报错:ORA-00205 控制文件错误
查看数据库的状态:数据库处于STARTED状态。
该步骤说明:在启动到nomount阶段时,只要参数文件无误即可。
在mount数据库时,需要用到控制文件。

6.修改参数文件中控制文件的位置:
alter system set control_files='/u01/app/oracle/oradata/tt/control01.ctl',
'/u01/app/oracle/oradata/tt/control02.ctl' scope=spfile;

7.上一步修改完成后关闭数据库,再次启动。
shutdown abort;
startup nomount; 成功
alter database mount; 成功
alter database opne; 报错
报错:ORA-01157不能找到数据文件,原因是数据文件已经被移动到其他路径。

8.修改数据库,重新指定数据库的数据文件的位置:(所有的数据文件和日志文件均要执行,可以写脚本来完成)
alter database rename file '/u01/app/oracle/oradata/tt/undotbs01.dbf'
to'/u01/app/oracle/oradata/yy/undotbs01.dbf';

9.重新指定路径成功后打开数据库
alter database open;

dump目录/u01/app/oracle/diag/rdbms/yy/yy/trace

修改参数control_files=新路径

启动数据库 mount成功 open报错

修改数据文件,临时文件,数据文件

/u01/app/oracle/oradata/rr/control01.ctl
/u01/app/oracle/oradata/rr/control01.ctl

select 'alter database rename file '''||name||''''||chr(10)||' to''' ||
replace(name,'tt','yy')||''';' from v$datafile
union all
select 'alter database rename file '''||name||''''||chr(10)||' to''' ||
replace(name,'tt','yy')||''';' from v$tempfile
union all
select 'alter database rename file '''||member||''''||chr(10)||' to''' ||
replace(member,'tt','yy')||''';' from v$logfile ;

select 'alter database rename file '''||name||''''||chr(10)||' to '''||
'/newdb'||substr(name,instr(name,'/',-1))||';' from v$datafile;

段 segment

范围 extend
一次分配的,连续的,ORACLE块
一个段最少有一个范围,可以有很多个范围
范围有3种模式
1.建立对象时,分配的叫做初始范围
2.数据增长时,分配额外的范围
3.手工分配范围

conn / as sysdba
grant select any dictionary to scott
conn scott/tiger
select from dba_free_space where tablespace_name='USERS';
2.create table t1 as select
from emp;
create table t2 as select from emp;
3.select extent_id,file_id,block_id,blocks from dba_extents
where segment_name='T1';
4.insert into t1 select
from t1;
insert into t2 select * from t2;
select extent_id,file_id,block_id,blocks from dba_extents
where segment_name='T1';

select extent_id,file_id,block_id,blocks from dba_extents
where segment_name='T2';

手动分配空间:
alter table t1 allocate extent; 不指定大小,系统根据表已有大小分配。
alter table t1 allocate extent(size 2G); 指定大小
块 block

SET LONG 1000
SQL> SELECT DBMS_METADATA.GET_DDL('TABLE','T2') FROM DUAL;

CREATE TABLE T1 SEGMENT CREATION IMMEDIATE AS SELECT * FROM EMP where 0=9;

SHOW PARAMETER SEGMENT

ALTER SYSTEM SET deferred_segment_creation=FALSE;

范围回收3模式
1.手工回收未使用的范围(崭新的)
alter table t1 allocate extent(size 10m);
alter table t1 deallocate unused;

tabs=user_tables

select table_name,initial_extent from tabs where table_name='T2';
create table t2 storage(initial 1m) as select * from emp;

2.truncate table t1;(保留初始范围)
3.drop table t1 purge;(彻底删除空间)

alter table t2 allocate extent(size 10m);

select extent_id,file_id,block_id,blocks from dba_extents
where segment_name='T2';

DELETE
1.DML
2.产生大量的回退
3.产生大量日志
4.可以rollback
5.手工commit;
6.不回收空间
7.不回收高水位
8.可以有条件删除

TRUNCATE
1.DDL
2.产生少的回退
3.产生少量日志
4.不可以rollback
5.自动commit;
6.回收空间
7.回收高水位
8.不可以有条件删除

show parameter rec
alter system set recyclebin=off scope=spfile;

块:
数据库存储的基本空间,默认是8K,建库时指定

rowid行标识
是根据数据存在的位置计算出来的
18位64进制字符串

AAASdN AAE AAAACr AAA
对象 文件 块 行

select rowid,ename,dbms_rowid.rowid_block_number(rowid) block# from emp;

ROWID_BLOCK_NUMBER
ROWID_OBJECT
ROWID_RELATIVE_FNO
ROWID_ROW_NUMBER

select rowid,ename,dbms_rowid.rowid_block_number(rowid) a,
dbms_rowid.ROWID_OBJECT(rowid) o,
dbms_rowid.ROWID_RELATIVE_FNO(rowid) f,
dbms_rowid.ROWID_ROW_NUMBER(rowid) r from emp;

select dbms_rowid.rowid_create(0,75335,4,151,0),
dbms_rowid.rowid_create(1,75335,4,151,0) from dual;

conn scott/123456;
drop table t1 purge;
create table t1 as select from emp;
insert into t1 select
from emp where deptno=10;
commit;
select ename,sal from t1 order by 1;
delete from t1 wai where rowid<(select max(rowid) from t1 nei where wai.ename=nei.ename);

ERROR:
ORA-09925: Unable to create audit trail file
Linux-x86_64 Error: 2: No such file or directory
Additional information: 9925
ORA-01075: you are currently logged on

数据 文件 数据库 参数 范围 目录 路径 日志 脚本 分配 位置 空间 控制 成功 详情 阶段 手工 二进制 大小 字典 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州为想互联网科技有限公司 鸠鸠互联网科技 腾讯阿里互联网科技 科技与互联网发展 上海致骋互联网科技 互联网金融和金融科技 互联网科技公司名称 以后互联网后是啥科技 昭通云南众福互联网科技有限公司 深圳育鹏互联网科技有限公司招聘 科技赋能视角下互联网保险发展 小米互联网科技园入驻 云南省自由互联网科技有限公司 工业互联网科技创业 郑州欣桑互联网科技有限公司 绵阳真晨互联网科技有限公司 深圳互联网科技园地址 上海互联网科技园景观 承德科技产业互联网平台 互联网科技创业有什么好项目 上海卓越科技互联网 河南云网互联网络科技有限公司 盈实互联网科技 西安互联网科技 奇酷互联网科技 顺网科技2021年互联网排名 创业天下互联网科技有限公司 互联网科技如何创业 小米互联网科技园入驻 现代科技的标志之一的互联网
0