oracle创建实例

时间:2024-03-12 12:45:02

 设置环境变量

ORACLE_HOME=/oracle/11g
ORACLE_BASE=/oracle  
DB_HOME=/oracle/11g/oradata  
ORACLE_SID=nopaper    //  这是安装oracle 数据库之后默认的一个数据库实例
安装过程中最好是切换到oracle用户   su oracle
   2.    创建pfile文件

cd $ORACLE_HOME/dbs  
strings spfileorcl.ora >initnopaper.ora
完成之后需要把initnopaper.ora中的所有orcl 改成nopaper
 3.  生成密码文件

sudo cp $ORACLE_HOME/bin/orapwd /usr/local/bin/  
orapwd file=orapwmytest password=mytest      //目录是$ORACLE_HOME/dbs,前面已经有了
4. 创建数据库相关的目录

mkdir $ORACLE_BASE/admin/nopaper  
cd $ORACLE_BASE/admin/mytest  
mkdir adump bdump cdump dpdump pfile udump  
mkdir $DB_HOME/nopaper                      //这一步不要忘了,容易看错
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=paperless
7.创建数据库

//1,sqlplus登录  
sqlplus / as sysdba         
 
//2,启动不加载实例  
SQL> startup nomount  
 
//3,从create开始到最后的冒号,直接copy进去执行就行了, 最好是把$DB_HOME替换成绝对路径
SQL> create database nopaper  
LOGFILE  
GROUP 1 (\'/u01/app/oracle/oradata/nopaper/redo01.log\',\'/u01/app/oracle/oradata/nopaper/redo01_1.log\') size 100m reuse,  
GROUP 2 (\'/u01/app/oracle/oradata/nopaper/redo02.log\',\'/u01/app/oracle/oradata/nopaper/redo02_1.log\') size 100m reuse,  
GROUP 3 (\'/u01/app/oracle/oradata/nopaper/redo03.log\',\'/u01/app/oracle/oradata/nopaper/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 \'/u01/app/oracle/oradata/nopaper/system01.dbf\' SIZE 1000M EXTENT MANAGEMENT LOCAL  
SYSAUX DATAFILE \'/u01/app/oracle/oradata/nopaper/sysaux01.dbf\' SIZE 1000M  
UNDO TABLESPACE UNDOTBS1 DATAFILE \'/u01/app/oracle/oradata/nopaper/undo.dbf\' SIZE 500M  
DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE \'/u01/app/oracle/oradata/nopaper/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 paperlessuser identified by nopaper;   // 这里也可以创建你自己的用户
SQL> grant connect,resource,DBA to paperlessuser;    // 授权 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



linux下创建oracle用户表空间
就是在已有的数据库实例上创建一个新的帐号,访问一些新的表
操作步骤如下:
(1)登录linux,以oracle用户登录(如果是root用户登录的,登录后用 su - oracle命令切换成oracle用户)
(2)以sysdba方式来打开sqlplus,命令如下: sqlplus "/as sysdba"
(3)查看我们常规将用户表空间放置位置:执行如下sql:
select name from v$datafile
(4)创建用户表空间:
CREATE TABLESPACE NOPAPERDB DATAFILE \'/u01/app/oracle/oradata/nopaper/nopaperdb.dbf\' SIZE 200M AUTOEXTEND ON EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
(5)创建用户,指定密码和上边创建的用户表空间
CREATE USER paperlessuser IDENTIFIED BY paperlesspassword DEFAULT TABLESPACE NOPAPERDB;