设置环境变量
ORACLE_HOME=/oracle/11g
ORACLE_BASE=/oracle
DB_HOME=/oracle/11g/oradata
ORACLE_SID=orcl // 这是安装oracle 数据库之后默认的一个数据库实例
安装过程中最好是切换到oracle用户 su oracle
2. 创建pfile文件
cd $ORACLE_HOME/dbs
strings spfileorcl.ora >initmytest.ora
完成之后需要把initmytest.ora中的所有orcl 改成mytest
3. 生成密码文件
sudo cp $ORACLE_HOME/bin/orapwd /usr/local/bin/
orapwd file=orapwmytest password=mytest //目录是$ORACLE_HOME/dbs,前面已经有了
4. 创建数据库相关的目录
mkdir $ORACLE_BASE/admin/mytest
cd $ORACLE_BASE/admin/mytest
mkdir adump bdump cdump dpdump pfile udump
mkdir $DB_HOME/mytest //这一步不要忘了,容易看错
5.修改tnsnames.ora和listener.ora
//这个在tnsnames.ora中加上
MYTEST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = ubuntu)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = mytest)
)
)
//这个在lister.ora中加上
(SID_DESC =
(SID_NAME = mytest)
(GLOBAL_DBNAME=mytest)
(ORACLE_HOME = /opt/ora10)
(PROGRAM = extproc) // 这行可以不写
)
// 其实就是将各自文件中orcl的部分,拷贝一下,把orcl改成mytest。修改这个为了sqlplus连接实例用的。
6.修改默认实例
export ORACLE_SID=mytest
7.创建数据库
//1,sqlplus登录
sqlplus / as sysdba
//2,启动不加载实例
SQL> startup nomount
//3,从create开始到最后的冒号,直接copy进去执行就行了, 最好是把$DB_HOME替换成绝对路径
SQL> create database mytest
LOGFILE
GROUP 1 ('$DB_HOME/mytest/redo01.log','$DB_HOME/mytest/redo01_1.log') size 100m reuse,
GROUP 2 ('$DB_HOME/mytest/redo02.log','$DB_HOME/mytest/redo02_1.log') size 100m reuse,
GROUP 3 ('$DB_HOME/mytest/redo03.log','$DB_HOME/mytest/redo03_1.log') size 100m reuse
MAXLOGFILES 50
MAXLOGMEMBERS 5
MAXLOGHISTORY 200
MAXDATAFILES 500
MAXINSTANCES 5
ARCHIVELOG
CHARACTER SET UTF8
NATIONAL CHARACTER SET UTF8
DATAFILE '$DB_HOME/mytest/system01.dbf' SIZE 1000M EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE '$DB_HOME/mytest/sysaux01.dbf' SIZE 1000M
UNDO TABLESPACE UNDOTBS1 DATAFILE '$DB_HOME/mytest/undo.dbf' SIZE 500M
DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE '$DB_HOME/mytest/temp.dbf' SIZE 500M;
// 执行完成之后 应该会出现 Database created 就表示你创建成功了
[1]问题1 : 创建数据库时总是出现无法创建控制文件
解决办法:
将initmytest.ora中
*.control_files='/oracle/oradata/mytest/control01.ctl','/oracle/flash_recovery_area/mytest/control02.ctl'
这里的两个文件目录完全创建,并将其中的文件删除
[ 2 ]问题2 : 如果出现磁盘空间不足
可以将以上的所有文件地址指向到指定的其他的目录(记住一点的是权限一定是oracle权限)
8.创建oracle 数据库字典
SQL> @$ORACLE_HOME/rdbms/admin/catalog.sql;
SQL> @$ORACLE_HOME/rdbms/admin/catproc.sql;
// 这个两个sql执行的时间比较长
9. 设置一下权限
SQL> alter user system identified by mytest; // 这里也可以创建你自己的用户
SQL> grant sysdba to system; // 授权 grant connect,resource,DBA to UserName;
SQL> shutdown immediate; //用shutdown会很慢,加上immediate快很多
SQL> startup; // 重新启动数据库
10.查看一下表空间,以及管理
SQL> select tablespace_name,extent_management from dba_tablespaces;
TABLESPACE_NAME EXTENT_MAN
------------------------------ ----------
SYSTEM LOCAL
UNDOTBS1 LOCAL
SYSAUX LOCAL
TEMP LOCAL