oracle 11g手工建数据库过程
创建需求和目的
1、需要把11机器上的oracle库中的表导入到12机器oracle库
2、11机器上的数据库fp在12机器上不存在,需要创建新库,以便导入。
3、我们只需导入业务库shp即可,不需要把system,sysaux,temp等系统表空间一并导入,例如:mysql你在导库的时候只是导业务库或表,而不会导入mysql.user这样的系统表
原理是一样的。
所以你对于创建新库的时候,哪些是业务表空间,哪些是系统表空间还是从oracle角度了解清楚他们都是做什么的。
4、导入时需要注意字符集的差异,你在建库的时候就要设置好字符集。
无非一个是业务库,一个是系统运行需要的比如:SYSTEM表空间存储了必要大量的系统表,包括一些数据字典和动态性能视图等。
环境采样
oracle@prd:/home/oracle$cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
oracle@prd:/home/oracle$uname -r
3.10.0-327.el7.x86_64
oracle:Release 11.2.0.4.0 Production,单机版
步骤一、指定新的SID
oracle@prd:/home/oracle$cat .bash_profile //查看下环境变量设置情况
# .bash_profile # Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi # User specific environment and startup programs PATH=$PATH:$HOME/.local/bin:$HOME/bin
export ORACLE_BASE=/u01/oracle
export ORACLE_HOME=/u01/oracle/product/11.2.0
##su - oracle 进入默认显示的ORACLE_SID
export ORACLE_SID=prd
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export ORACLE_TERM=xterm
export TNS_ADMIN=$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/lib:/usr/local/lib
export CLASSPATH=$ORACLE_HOME/JRE
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin
export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
export PATH=${PATH}:$ORACLE_BASE/common/oracle/bin
export PS1="`whoami`@$ORACLE_SID:"'$PWD$'
export DB_ALERT=/u01/oracle/diag/rdbms/$ORACLE_SID/$ORACLE_SID/trace
stty erase ^H
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
alias lsnrctl='rlwrap lsnrctl' //指定新的sid,实际就是切换实例,我们想登录某个数据库实例就需要
//重新设置当前的ORACLE_SID,这样才能进入到个是数据库的实例中
//这点在操作中要注意。
oracle@prd$>export ORACLE_SID=fp
oracle@prd$>echo $ORACLE_SID
oracle@prd:/home/oracle$sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Sat Mar 19 02:17:35 2022
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to an idle instance.
//已连接到某空闲实例. //意思就是这个实例实际表示两种意思
//1、该实例未启动,启动数据库需三个阶段 startup nomount,alter database mount,alter database open;
每个阶段实际都会定义一些操作,只有该阶段才能进行相关操作。例如:select status from v$instance; 查询实例,首先你得 startup nomount才能查询
//2、该实例实际未存在也会这样显示提示。
步骤二、创建密码文件
为创建数据库,我们必须选择一种数据库管理员身份验证模式,这里有两种方法:
With a password file
With operating system authentication
oracle@prd$> orapwd file=/u01/oracle/product/11.2.0/dbs/orapwfp password=oracle
步骤三、创建初始化参数文件
我是copy的其他数据库的参数文件,这里要注意起名是有规则的 init$oracle_id.ora(你也可以利用init.ora这个模板,把名称改为我们需要的文件)
创建文件后放在了 /u01/oracle/product/11.2.0/dbs/initfp.ora (我们这里数据库名和实例名都是fp)
这个当中我创建了
1、/u01/oracle/oradata/fp和/u01/oracle/fast_recovery_area/fp目录
2、mkdir -p /u01/oracle/admin/fp/adump //连续创建目录 mkdir -p
db_name='fp'
memory_target=1G
processes = 150
audit_file_dest='/u01/oracle/admin/fp/adump'
audit_trail ='db'
db_block_size=8192
db_domain='oracle.com'
db_recovery_file_dest='/u01/oracle/fast_recovery_area'
db_recovery_file_dest_size=2G
diagnostic_dest='/u01/oracle'
dispatchers='(PROTOCOL=TCP) (SERVICE=test1XDB)'
open_cursors=300
remote_login_passwordfile='EXCLUSIVE'
undo_tablespace='UNDOTBS1'
# You may want to ensure that control files are created on separate physical
# devices
control_files =('/u01/oracle/oradata/fp/control01.ctl','/u01/oracle/fast_recovery_area/fp/control02.ctl')
compatible ='11.2.0.4.0'
注意:control01.ctl,.....control02.ctl....等 control_files这里根据需求填写多个控制文件路径,这个文件不需要事先创建,指定即可路已经和文件名即可,
在创建数据库时会自动创建指定的文件,control01.ctl只需要指定目录即可,默认如果没有会自动创建
步骤四、创建服务器动态参数文件spfile(我们利用pfile文件来创建)
oracle@prd:/home/oracle$>export ORACLE_SID=fp
oracle@prd:/home/oracle$>echo $ORACLE_SID
oracle@prd:/home/oracle$sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Sat Mar 19 02:17:35 2022
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to an idle instance.
SQL> create spfile from pfile='/u02/oracle/product/11.2.0/dbs/initfp.ora'; //创建spfile,不用启动数据库。
//initfp.ora文件是从init.ora
步骤五、开始启动第一阶段,nomount阶段
idle> startup nomount
ORACLE instance started.
Total System Global Area 313159680 bytes
Fixed Size 2175328 bytes
Variable Size 213913248 bytes
Database Buffers 92274688 bytes
Redo Buffers 4796416 bytes
//因为你当前的环境变量以及实例文件都能找到,所以你startup nomount可以不指定参数文件
//Oracle根据参数文件的内容,创建了instance,分配了相应的sga内存区域,启动了相关的后台进程
//观察告警日志文件(alert_fp.log),可以看到这一阶段的启动过程:读取参数文件,利用相关参数启动实例
[root@rac-12c-2 ~]# locate alert_fp.log
/u01/oracle/diag/rdbms/fp/fp/trace/alert_fp.log //进程的启动信息会在alert_fp_log中有显示,我这里直接用了现成启动好的实例,看下他们的进程信息 SQL>set line 9999;
SQL> select addr,pid,spid,username,program from v$process;
ADDR PID SPID USERNAME PROGRAM
---------------- ---------- ------------------------------------------------------------------------ --------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------
00000018E14C2790 1 PSEUDO
000000195142CCE8 2 7234 oracle oracle@rac-12c-2 (PMON)
000000190143EEB8 3 7236 oracle oracle@rac-12c-2 (PSP0)
00000018F145B7C8 4 7241 oracle oracle@rac-12c-2 (VKTM)
00000018E14C3848 5 7245 oracle oracle@rac-12c-2 (GEN0)
000000195142DDA0 6 7247 oracle oracle@rac-12c-2 (DIAG)
000000190143FF70 7 7249 oracle oracle@rac-12c-2 (DBRM)
00000018F145C880 8 7251 oracle oracle@rac-12c-2 (DIA0)
00000018E14C4900 9 7253 oracle oracle@rac-12c-2 (MMAN)
000000195142EE58 10 7255 oracle oracle@rac-12c-2 (DBW0)
0000001901441028 11 7257 oracle oracle@rac-12c-2 (DBW1) ADDR PID SPID USERNAME PROGRAM
---------------- ---------- ------------------------------------------------------------------------ --------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------
00000018F145D938 12 7259 oracle oracle@rac-12c-2 (LGWR)
00000018E14C59B8 13 7261 oracle oracle@rac-12c-2 (CKPT)
000000195142FF10 14 7263 oracle oracle@rac-12c-2 (SMON)
00000019014420E0 15 7265 oracle oracle@rac-12c-2 (RECO)
00000018F145E9F0 16 7267 oracle oracle@rac-12c-2 (MMON)
00000018E14C6A70 17 7269 oracle oracle@rac-12c-2 (MMNL)
0000001951430FC8 18 7271 oracle oracle@rac-12c-2 (D000)
0000001901443198 19 7273 oracle oracle@rac-12c-2 (S000)
00000018F145FAA8 20 109850 oracle oracle@rac-12c-2 (W000)
00000018E14C7B28 21 7322 oracle oracle@rac-12c-2 (QMNC)
0000001951432080 22 7336 oracle oracle@rac-12c-2 (CJQ0) ADDR PID SPID USERNAME PROGRAM
---------------- ---------- ------------------------------------------------------------------------ --------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------
0000001901444250 23 108877 oracle oracle@rac-12c-2 (J000)
00000018F1460B60 24 109927 oracle oracle@rac-12c-2 (J001)
00000018E14C8BE0 25 107377 oracle oracle@rac-12c-2
0000001951433138 26 107379 oracle oracle@rac-12c-2
00000018E14CAD50 33 109950 oracle oracle@rac-12c-2 (TNS V1-V3)
0000001901448530 39 7370 oracle oracle@rac-12c-2 (SMCO)
00000018E14CCEC0 41 7391 oracle oracle@rac-12c-2 (Q000)
0000001951437418 42 7393 oracle oracle@rac-12c-2 (Q001)
30 rows selected.
步骤六、把数据库启动到nomount状态,这种状态才可以创建具体的数据库
为创建数据库,我们之前创建了必要的目录,满足数据文件、控制文件、日志文件等路径需求等,包括有:
1、存放控制文件contorl01.ctl的目录
mkdir /u01/oracle/oradata/fp
2、存放控制文件control02.ctl的目录
mkdir /u01/oracle/fast_recovery_area/fp
3、create log dir 创建存放log的目录
mkdir -p /u01/oracle/admin/fp/{a,dp}dump
idle> startup nomount
ORACLE instance started.
Total System Global Area 313159680 bytes
Fixed Size 2175328 bytes
Variable Size 213913248 bytes
Database Buffers 92274688 bytes
Redo Buffers 4796416 bytes
步骤七、创建数据库(下面是核心语句)
create database fp
USER SYS IDENTIFIED BY oracle
USER SYSTEM IDENTIFIED BY oracle
LOGFILE GROUP 1 ('/u01/oracle/oradata/fp/redo01.log') SIZE 100M,
GROUP 2 ('/u01/oracle/oradata/fp/redo02.log') SIZE 100M,
GROUP 3 ('/u01/oracle/oradata/fp/redo03.log') SIZE 100M
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXLOGHISTORY 1
MAXDATAFILES 100
MAXINSTANCES 1
CHARACTER SET AL32UTF8 ###由于此次需求是要把A库的业务表导出到B库业务表(A库和B库分别在不同的机器上独立运行,所以需要注意字符集设置)
DATAFILE '/u01/oracle/oradata/fp/system01.dbf' SIZE 350M REUSE
AUTOEXTEND ON NEXT 10240K
EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE '/u01/oracle/oradata/fp/sysaux01.dbf' SIZE 325M REUSE
DEFAULT TABLESPACE SHP ###业务表空间
DATAFILE '/u01/oracle/oradata/fp/shp01.dbf'
SIZE 500M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
DEFAULT TEMPORARY TABLESPACE temp
TEMPFILE '/u01/oracle/oradata/fp/temp01.dbf'
SIZE 20M REUSE
UNDO TABLESPACE undotbs1
DATAFILE '/u01/oracle/oradata/fp/undotbs1.dbf'
SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
//把该语句保存为 createdatabase.sql
//执行:
SQL> @/home/oracle/createdatabase.sql
Database created.
//一旦执行之后,你就会发现当前数据库立即处于open状态了。(oracle启动三阶段 nomount,mount,open)
//执行这个语句也可以直接在控制台上直接执行。
步骤八、创建数据字典等,在控制台直接执行
SQL>@?/rdbms/admin/catalog
SQL>@?/rdbms/admin/catproc
SQL>conn system/oracle
SQL>@?/sqlplus/admin/pupbld
SQL>conn / as sysdba
步骤九、创建两个数据库文件与用户的关系,同时创建用户
SQL> CREATE USER yyshp IDENTIFIED BY yySh12 DEFAULT TABLESPACE SHFP TEMPORARY TABLESPACE temp;
User created. SQL> grant connect,resource,dba to yyshp;
Grant succeeded. SQL> grant create session,create table,unlimited tablespace to yyshp;
Grant succeeded. SQL> grant create table to yyshp;
Grant succeeded. SQL> grant create tablespace to yyshp;
Grant succeeded. SQL> grant create view to yyshp;
Grant succeeded. SQL> grant create session to yyshp;
Grant succeeded. SQL> grant select any table TO yyshp;
Grant succeeded. SQL> grant unlimited tablespace to yyshp;
Grant succeeded.
步骤十、创建普通用户默认表空间
CREATE TABLESPACE users DATAFILE '/u01/app/oracle/oradata/test/user01.dbf' SIZE 100M
AUTOEXTEND ON;
ALTER DATABASE DEFAULT TABLESPACE users;
col file_name for a45
col tablespace_name for a10
步骤十一、需要设置网络配置、连接串
1、修改listener.ora
2、修改tnsnames.ora
//他们两个文件配合使用 oracle@prd:/home/oracle$cat /u01/oracle/product/11.2.0/network/admin/tnsnames.ora
# tnsnames.ora Network Configuration File: /u01/oracle/product/11.2.0/network/admin/tnsnames.ora
# Generated by Oracle configuration tools. //添加fp相关信息
fp=
(DESCRIPTION =
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = fp)
)
) PRD =
(DESCRIPTION =
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = prd)
)
) oracle@prd:/home/oracle$cat /u01/oracle/product/11.2.0/network/admin/listener.ora
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = prd)
(SID_NAME = prd)
(ORACLE_HOME=/u01/oracle/product/11.2.0)
)
//添加fp的相关信息
(SID_DESC=
(GLOBAL_DBNAME=fp)
(ORACLE_HOME=/u01/oracle/product/11.2.0)
(SID_NAME=fp)
) MYLISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.121.51.50)(PORT = 1522))
)
)
创建后查看相关的目录和内容
//在数据库中查询
SQL> select file_name,tablespace_name from dba_data_files;
FILE_NAME TABLESPACE_NAME
------------------------------------------------------------------------------------------
/u02/oracle/oradata/fp/system01.dbf SYSTEM
/u02/oracle/oradata/fp/sysaux01.dbf SYSAUX
/u02/oracle/oradata/fp/undotbs1.dbf UNDOTBS1
/u02/oracle/oradata/fp/shp01.dbf SHP //业务表 //进入目录查询
[root@rac-12c-2 ~]# ll /u01/oracle/oradata/fp/
total 3936260
drwxr-xr-x 2 oracle oinstall 10 Dec 2 10:23 archive
-rw-r----- 1 oracle oinstall 9519104 Mar 19 12:30 control01.ctl-rw-r----- 1 oracle oinstall 52436992 Mar 19 01:59 fp2.dbf
-rw-r----- 1 oracle oinstall 52436992 Mar 19 01:59 fp.dbf
-rw-r----- 1 oracle oinstall 52436992 Dec 1 20:37 fp_temp.dbf
-rw-r----- 1 oracle oinstall 104858112 Mar 19 12:29 redo01.log
-rw-r----- 1 oracle oinstall 104858112 Mar 17 02:30 redo02.log
-rw-r----- 1 oracle oinstall 104858112 Mar 18 03:10 redo03.log
-rw-r----- 1 oracle oinstall 524296192 Mar 18 03:15 shp01.dbf
-rw-r----- 1 oracle oinstall 340795392 Mar 19 12:20 sysaux01.dbf
-rw-r----- 1 oracle oinstall 367009792 Mar 19 12:25 system01.dbf
-rw-r----- 1 oracle oinstall 20979712 Mar 19 02:30 temp01.dbf
-rw-r----- 1 oracle oinstall 209723392 Mar 19 12:25 undotbs1.dbf
-rw-r----- 1 oracle oinstall 1073750016 Mar 19 01:59 users01.dbf
-rw-r----- 1 oracle oinstall 1073750016 Mar 19 01:59 users02.dbf
[root@rac-12c-2 ~]# ll /u01/oracle/fast_recovery_area/fp/
total 19040
-rw-r----- 1 oracle oinstall 9519104 Mar 19 12:35 control02.ctl
补充
我这里以数据库是fp,sid=fp2为例,讲解
oracle参数文件
1.初始化参数文件
oracle的初始化参数文件分为spfilefp2.ora(spfile+sid+.ora)、spfile.ora、initfp2.ora(init+sid+.ora)。
2、pfle(Parameter File)静态参数文件:
文本文件,必须通过编辑器修改参数;
修改参数后,需重启实例生效;
pfile 参数文件可以不放在数据库服务器上 ;
命名方式:init + SID.ora 。
3、spfile(System Parameter File)动态参数文件:
二进制文件,无法通过编辑器修改;
Linux 下 strings 可以查看;
必须放在Database Server 指定路径下;
命名方式:spfile + SID.ora 。
4、pfile 和 spfile 可以相互生成:
SQL>create pfile from spfile //通过spfile创建pfile文件
SQL>create pfile='/u01/oracle/product/11.2.0/dbs/spfilefp2.ora' from spfile; //指定文件和路径
SQL>create spfile from pfile//通过pfile创建spfile文件
SQL>create spfile from pfile='/u01/oracle/product/11.2.0/dbs/initfp2.ora' //指定文件和路径
注:使用 spfile 启动后不能在线生成spfile,ORA-32002: 无法创建已由实例使用的SPFILE
可以通过当前内存参数生成 pfile 和 spfile(11g 新特性):
SQL>create pfile from memory;
SQL>create spfile from memory;
5、当oracle启动时,初始化参数文件的加载顺序为:spfilefp2.ora、spfile.ora、initfp2.ora。
有了spfile,pfile一般留做备用,特殊情况也可以使用 pfile 启动,命令如下:
SQL> startup pfile=$ORACLE_HOME/dbs/initfp.ora
oracle 11g手工建数据库过程的更多相关文章
- Oracle 10g AND Oracle 11g手工建库案例--Oracle 11g
Oracle 10g AND Oracle 11g手工建库案例--Oracle 11g 系统环境: 操作系统: RedHat EL6 Oracle: Oracle 10g and Oracle 11 ...
- Oracle 10g AND Oracle 11g手工建库案例--Oracle 10g
Oracle 10g AND Oracle 11g手工建库案例--Oracle 10g 系统环境: 操作系统: RedHat EL6 Oracle: Oracle 10g and Oracle 11 ...
- Oracle 11g 手工建库
假设数据库软件已经安装好,现在没有图形界面无法用dbca安装数据库,那么用手工建库,数据库名为edw 创建目录 [oracle@localhost ~]$ mkdir -p /u01/app/orac ...
- Oracle 11g R2创建数据库之手工建库方式
在之前的博文当中梳理了关于DBCA静默方式创建数据库的过程,本文就手工通过SQL*PLUS客户端采用CREATE DATABASE语句创建数据库.这种建库方式就是完全使用手工SQL语句创建数据库,通常 ...
- CENTOS 6.4 安装oracle 10g,手工建库及升级到10.2.0.5
一. 数据库软件安装 参照官方手册 1.安装rpm包 注这里的yum直接用163的yum yum -y install binutils compat-libstdc++-33 compat-libs ...
- VM虚拟机下在LINUX上安装ORACLE 11G单实例数据库
1.环境及安装前规划:虚拟机及OS如下 环境:VMware Wordstation ACE版 6.0.2 操作系统:OracleLinux-R5-U8-Server-i386-dvd 3.2G ...
- Oracle 11g的安装详细过程
本次采用的电脑为win10 专业版,以下为本人电脑的配置情况: 本人是第一次在win10系统上面进行oracle 11g的安装. 以下为安装步骤: 一.下载软件包 以下为各种oracle安装包的下载网 ...
- Oracle 11g R2创建数据库之DBCA静默方式
通常创建Oracle数据库都是通过DBCA(Database Configuration Assistant)工具完成的,DBCA工具可以通过两种方式完成建库任务,即图形界面方式和静默命令行方式.既然 ...
- Windows Server 2008 R2 64位操作系统安装Oracle 11g 64位数据库,在客户终端上安装Oracle 11g 32位,才能安装P/L Sql Developer并配置
1.下载Oracle 11g R2 for Windows的版本 下载地址: http://www.oracle.com/technetwork/database/enterprise-edition ...
随机推荐
- Applied-Social-Network-Analysis-in-Python 相关笔记4
模型数据越多,Average系数就越小. perferential attachment model 有比较小的平均路径长度,但有着小的cc. rewire:重新连接 如果仅看这个共同的邻居数的话,数 ...
- lgP6232题解
评蓝过分了吧,这题最多黄( 首先我们从挂钩的最上层向下走,假设这个挂杆的左边和右边一共有 \(k\) 件衣服. 若 \(k\) 是 \(2\) 的倍数,那么我们只能向左走(左边和右边的衣服一样多).反 ...
- ZYNQ 双CPU裸机运行例程
vivado 2014.4 特殊情况:总DDR内存大于512MB,且CPU0已经占用了超过512MB,这时按以下步骤CPU1无法启动. 原因:启动入口地址限制.更改方法如下: 打开cpu1_bsp\p ...
- web服务器-nginx默认网站
web服务器-nginx默认网站 一 默认网站 server { listen 80; server_name localhost; location / { root html; index ind ...
- 一个简单的用户态赋值语句,cpu都做了哪些操作
如int a = 0;这样一个赋值语句,cpu做了哪些操作.
- Pyinstaller打包Pytorch框架所遇到的问题
目录 前言 基本流程 一.安装Pyinstaller 和 测试Hello World 二.打包整个项目,在本机上调试生成exe 三.在新电脑上测试 参考资料 前言 第一次尝试用Pyinstalle ...
- mycat分库分表 看这一篇就够了
之前我们已经讲解过了数据的切分,主要有两种方式,分别是垂直切分和水平切分,所谓的垂直切分就是将不同的表分布在不同的数据库实例中,而水平切分指的是将一张表的数据按照不同的切分规则切分在不同实例的相同 ...
- 租户的概念和MybatisPlus实现
租户的概念:https://baijiahao.baidu.com/s?id=1625945681925384464&wfr=spider&for=pc MybatisPlus框架的租 ...
- 有哪些不同类型的IOC(依赖注入)方式?
构造器依赖注入:构造器依赖注入通过容器触发一个类的构造器来实现的,该类有一系列参数,每个参数代表一个对其他类的依赖. Setter方法注入:Setter方法注入是容器通过调用无参构造器或无参stati ...
- 什么是 Daemon 线程?它有什么意义?
所谓后台(daemon)线程,是指在程序运行的时候在后台提供一种通用服务的线 程,并且这个线程并不属于程序中不可或缺的部分.因此,当所有的非后台线程 结束时,程序也就终止了,同时会杀死进程中的所有后台 ...