手工创建数据库完整步骤
系统环境
*** 作系统:RedHat 92
数据库:Oracle 9i
安装路径:/home/oracle
1、手工创建相关目录
/home/oracle/admin/web
/home/oracle/admin/web/bdump
/home/oracle/admin/web/udump
/home/oracle/admin/web/cdump
/home/oracle/admin/web/pfile
/home/oracle/admin/web/create
/home/oracle/admin/web/web
/home/oracle/admin/web/archive
/home/oracle/oradata/home/oracle/oradata/web
/home/oracle/oradata/web/archive
2、手工创建初始化参数文件/home/oracle/admin/web/pfile/initwebora,内容可以copy别的实例initsidora文件后修改。
3、手工创建/home/oracle/OraHome1/dbs/initwebora文件,
内容:ifile= /home/oracle/admin/web/pfile/initwebora
4、使用orapwd命令,创建口令文件orapwdsid,命令格式如下:
orapwd file=/home/oracle/OraHome1/dbs/orapwweb password=change_on_install entries=5
5、设置环境变量
export PATH LD_ASSUME_KERNEL=241
export ORACLE_BASE=/home/oracle
export ORACLE_HOME=/home/oracle/OraHome1
export ORACLE_SID=web
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export PATH=$PATH: $ORACLE_HOME/bin
6、创建数据库,执行createdbsql脚本命令,
$ sqlplus /nolog
SQL>connect sys/change_on_install as sysdba
SQL>@Createdbsql
Createdbsql脚本内容如下:
set echo on
spool /home/oracle/admin/web/create/CreateDBlog
startup nomount pfile="/home/oracle/admin/web/pfile/initwebora";
CREATE DATABASE web
MAXINSTANCES 1
MAXLOGHISTORY 1
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXDATAFILES 100
DATAFILE '/home/oracle/oradata/web/system01dbf' SIZE 325M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED
UNDO TABLESPACE "UNDOSTB1" DATAFILE '/home/oracle/oradata/web/undotbs01dbf' SIZE 200M REUSE AUTOEXTEND ON NEXT 5120K MAXSIZE UNLIMITED
CHARACTER SET ZHS16GBK
NATIONAL CHARACTER SET AL16UTF16
LOGFILE GROUP 1 ('/home/oracle/oradata/web/redo01log') SIZE 100M,
GROUP 2 ('/home/oracle/oradata/web/redo02log') SIZE 100M,
GROUP 3 ('/home/oracle/oradata/web/redo03log') SIZE 100M;
spool off
注:创建数据库时,执行sqlbsqj脚本命令,此脚本命令创建如下内容:
创建控制文件和联机日志文件
创建数据库系统表空system
在system表空间上创建system系统回滚段
创建sys和system账号
创建基表和簇
创建数据字典表、索引和序列
创建相关角色权限
7、创建数据库数据文件,执行脚本createfilessql
$sqlplus /nolog
SQL> connect sys/change_on_install as sysdba
SQL>@createfilessql
Createfilessql脚本内容如下:
set echo on
spool /home/oracle/admin/web/create/CreateDBFileslog
CREATE TABLESPACE "INDX" LOGGING DATAFILE '/home/oracle/oradata/web/indx01dbf' SIZE 25M REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL;
CREATE TEMPORARY TABLESPACE "TEMP" TEMPFILE '/home/oracle/oradata/web/temp01dbf' SIZE 40M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL;
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE "TEMP";
CREATE TABLESPACE "TOOLS" LOGGING DATAFILE '/home/oracle/oradata/web/tools01dbf' SIZE 10M REUSE AUTOEXTEND ON NEXT 320K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL;
CREATE TABLESPACE "USERS" LOGGING DATAFILE '/home/oracle/oradata/web/users01dbf' SIZE 25M REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL;
CREATE UNDO TABLESPACE "UNDOSTB1" DATAFILE '/home/oracle/oradata/web/undotbs01dbf' SIZE 200M REUSE AUTOEXTEND ON NEXT 5120K;
spool off
exit;
~8、创建数据字典,运行createdbcatalogsql脚本命令
$sqlplus /nolog
SQL> connect sys/change_on_install as sysdba
SQL>@createdbcatalogsql
Createdbcatalogsql脚本内容如下:
set echo on
spool /home/oracle/admin/web/create/CreateDBCataloglog
@/home/oracle/OraHome1/rdbms/admin/catalogsql;
@/home/oracle/OraHome1/rdbms/admin/catexp7sql;
@/home/oracle/OraHome1/rdbms/admin/catblocksql;
@/home/oracle/OraHome1/rdbms/admin/catprocsql;
@/home/oracle/OraHome1/rdbms/admin/catoctksql;
@/home/oracle/OraHome1/rdbms/admin/catobtksql;
@/home/oracle/OraHome1/rdbms/admin/cathssql;
@/home/oracle/OraHome1/rdbms/admin/owminstplb;
connect SYSTEM/manager
@/home/oracle/OraHome1/sqlplus/admin/pupbldsql;
connect SYSTEM/manager
set echo on
spool /home/oracle/OraHome1/assistants/dbca/logs/sqlPlusHelplog
@/home/oracle/OraHome1/sqlplus/admin/help/hlpbldsql helpussql;
spool off
spool off
exit;9、完善数据库,创建spfile文件,将数据库实例启动服务设置成自动启动方式。
SQL>sqlplus /nolog
SQL> connect sys/change_on_install as sysdba
SQL> @postdbcreationsql
Postdbcreationsql脚本内容如下:
set echo on
spool /home/oracle/admin/web/create/postDBCreationlog
create spfile='/home/oracle/OraHome1/database/spfilewebora' FROM pfile='/home/oracle/admin/web/pfile/initwebora';
connect SYS/change_on_install as SYSDBA
set echo on
spool /home/oracle/OraHome1/assistants/dbca/logs/postDBCreationlog
shutdown;
startup;
create table 表名(
a ,
b,
constraint 约束名 primary key(a,b)
);
如果是已建完表则 去添加 alter table table_name add constraint 约束名 primary key(a,b);
首先是创建临时表的语法:
CREATE GLOBAL TEMPORARY TABLE table
"(" column datatype [DEFAULT expr] [{ NULL | NOT NULL}]
[, column datatype [DEFAULT expr] [ {NULL | NOT NULL} ] ")"
ON COMMIT {DELETE | PRESERVE } ROWS ;
在Oracle中,可以创建以下两种临时表:
1) 会话特有的临时表
CREATE GLOBAL TEMPORARY ( )
ON COMMIT PRESERVE ROWS;
2) 事务特有的临时表
CREATE GLOBAL TEMPORARY ( )
ON COMMIT DELETE ROWS;
CREATE GLOBAL TEMPORARY TABLE MyTempTable
所建的临时表虽然是存在的,但是如果insert 一条记录然后用别的连接登上去select,记录是空的。
--ON COMMIT DELETE ROWS 说明临时表是事务指定,每次提交后ORACLE将截断表(删除全部行)
--ON COMMIT PRESERVE ROWS 说明临时表是会话指定,当中断会话时ORACLE将截断表。
Oracle中的临时表有两种一种是事务级别的临时表它在事务结束的时候自动清空记录,另一种是会话级的它在我们访问数据库是的一个会话结束后自动的清空。关于临时表多用户并行不是问题,一个会话从来不会阻止另一个会话使用临时表。即使“锁定”临时表,一个会话也不会阻止其他会话使用它们的临时表。
例子如:
会话级:
CREATE GLOBAL TEMPORARY TABLE rp_RETAIL017PROC(
ID NUMBER(10) not null,
AD_CLIENT_ID NUMBER(10),
AD_ORG_ID NUMBER(10),
OWNERID NUMBER(10),
MODIFIERID NUMBER(10),
CREATIONDATE VARCHAR2(8),
MODIFIEDDATE DATE,
ISACTIVE CHAR(1) not null,
AD_PI_ID NUMBER(10),
BILLDATE NUMBER(8),
DOCNO VARCHAR2(80),
C_STORE_ID NUMBER(10),
M_PRODUCT_ID NUMBER(10),
M_PRODUCTALIAS_ID NUMBER(10),
M_ATTRIBUTESETINSTANCE_ID NUMBER(10),
TYPE NUMBER(1),
QTY NUMBER(10),
PRICEACTUAL NUMBER(14,2),
ACOST NUMBER,
PERCOST NUMBER,
TOT_AMT_ACTUAL NUMBER,
PRICEACOST NUMBER,
TOT_AMT_COST NUMBER,
PREGROSS NUMBER,
PROFITCOST NUMBER,
DESCRIPTION VARCHAR2(765),
PRICELIST NUMBER(14,2),
TOT_AMT_LIST NUMBER(18,4))
ON COMMIT PRESERVE ROWS;
事务级:
CREATE GLOBAL TEMPORARY TABLE rp_RETAIL017PROC(
ID NUMBER(10) not null,
AD_CLIENT_ID NUMBER(10),
AD_ORG_ID NUMBER(10),
OWNERID NUMBER(10),
MODIFIERID NUMBER(10),
CREATIONDATE VARCHAR2(8),
MODIFIEDDATE DATE,
ISACTIVE CHAR(1) not null,
AD_PI_ID NUMBER(10),
BILLDATE NUMBER(8),
DOCNO VARCHAR2(80),
C_STORE_ID NUMBER(10),
M_PRODUCT_ID NUMBER(10),
M_PRODUCTALIAS_ID NUMBER(10),
M_ATTRIBUTESETINSTANCE_ID NUMBER(10),
TYPE NUMBER(1),
QTY NUMBER(10),
PRICEACTUAL NUMBER(14,2),
ACOST NUMBER,
PERCOST NUMBER,
TOT_AMT_ACTUAL NUMBER,
PRICEACOST NUMBER,
TOT_AMT_COST NUMBER,
PREGROSS NUMBER,
PROFITCOST NUMBER,
DESCRIPTION VARCHAR2(765),
PRICELIST NUMBER(14,2),
TOT_AMT_LIST NUMBER(18,4))
ON COMMIT delete ROWS;
以上就是关于Oracle 9i如何用SQL语句创建数据库全部的内容,包括:Oracle 9i如何用SQL语句创建数据库、在Oracle数据库中创建一个表,用两个键做联合主键,sql语句该怎么写、Oracle临时表创建的基本语句是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)