安装Oracle
桌面类普通安装
安装时系统类选择桌面类
之后,需要配置一些路径:
- Oracle基目录
对应Linux版安装完成后的
ORACLE_BASE
环境变量。可以在该目录下安装多个不同的Oracle产品,例如Oracle的数据库、Weblogic中间件等
- 软件位置
对应Linux版安装完成后的
ORACLE_HOME
环境变量。默认是在Oracle基目录下创建的数据库软件路径: product\11.2.0\dbhome_2
- 数据库文件位置
默认为 oracle基目录下的 oradata文件夹
数据库版本:
企业版包含全部功能,标准版缺少分区等功能,个人版功能最少。一般安装企业版。
此处的企业版并非意味着要在企业里进行应用,只是意味着该版本的功能最全。
字符集:用来存储数据库数据的编码
默认会取系统的字符集,例如中文Windows时,默认值为:ZHS16GBK。
可以根据实际情况换为其他的,例如:Unicode(AL32UTF8)
走到 Configuration Assistant
步骤时,如果因为网卡或其他原因导致 Oracle Net Configuration Assistant
、 Oracle Database Configuration Assistant
这两个组件安装出现问题,可以直接忽略,继续安装其他组件。
等到oracle安装完成之后:
如果Oracle Net Configuration Assistant
出错,则可以在命令行使用 netca
命令调出网络配置重新进行设置。
如果 Oracle Database Configuration Assistant
出错,则可以在命令行使用 dbca
命令调出数据库配置重新进行设置。
之后 Database Configuration Assistant
会弹出一个窗口,创建Oracle实例、创建数据库。(前面的操作步骤是在安装数据库管理工具)。
数据库实例安装完成后,最后会弹出一个安装信息窗口,主要内容有:
- 数据库创建日志
- 数据库信息:数据库名、SID等
- Database Control URL
该URL用于在web页面管理数据库。从oracle 10g之后,Oracle不再提供图形化的数据库管理,改用在Web页面进行管理。
该地址为:https://主机IP:1158/em
- 口令管理
默认情况下,很多数据库用户(例如scott用户)处于锁定状态,可以在口令管理这里进行解锁、设置密码。
服务器类定制安装
安装时,系统类选择 服务器类
。
选择服务器类之后,会比桌面类多出一步 网格安装选项
,选择项为:
- 单实例数据库安装
- Real Application Clusters数据库安装
简称 RAC。Oracle的集群,多个实例对应一个数据库。
服务器类在安装类型
可以选择:
- 典型安装
- 高级安装
桌面类安装时默认为基本安装
选择高级安装
后:
- 可以选择运行产品时使用的语言
- 选择数据库版本(企业版、标准版、标准版1、个人版)
选择
企业版
之后,点击右下角的选择选项
可以选择组件:- Oracle Partitioning(默认勾选,Oracle的分区表。如果不安装则不能建立分区)
- Oracle OLAP(默认勾选,针对OLAP在线业务的分析特性,例如分析函数等)
- Oracle Label Security(标签安全,可以非常细粒度的限制Oracle的访问,例如限制某个用户只能访问某张表的某几个字段)
- Oracle Data Mining RDBMS Files(默认勾选,数据挖掘功能)
- Oracle Database Vault option(安全组件,可以限制一些用户的行为,包括sys用户也可以进行限制)
- Oracle Real Application Testing(默认勾选,应用测试特性)
- Oracle Database Extensions for .NET(对.NET的扩展)
- 选择安装位置
- 选择要创建的数据库的类型(默认安装时没有该选项,Oracle自动选择事务处理类型)
两个选项:
- 一般用途/事务处理
- 数据仓库
- 数据库标识符配置(全局数据库名、Oracle服务标识符SID)
- 配置选项(内存大小、字符集等)
- 管理选项(选择使用Grid Control管理数据库[需要有Grid Control代理] 或者 使用 Database Control管理数据库)
- 数据库存储选择(可以选择 文件系统 或者 自动存储管理ASM)
多实例
Oracle数据库安装多实例
- 使用
dbca
命令打开数据库实例配置助手页面:dbca
- 选择:创建数据库
- 选择:一般用途或事务处理
- 配置全局数据库实例名、数据库实例的SID。(默认SID和全局数据库实例名相同)
- 下一步
- 配置数据库管理员用户口令:tiger
- 配置数据库实例的文件位置,默认为:{ORACLE_BASE}\oradata,会在该文件夹下创建一个对应的数据库实例名文件夹
- 下一步…
- 配置SGA、PGA内存大小;
配置用户进程最大数量;
配置数据库实例字符集、国家字符集等初始化参数。 - 配置控制文件、系统表空间文件、redo日志组
- 创建数据库(或者生成数据库创建脚本、数据库模板等)
等数据库实例创建完成后,需要重启数据库监听服务,最好将数据库服务也进行重启。
登录不同的数据库实例
指定数据库实例登录sqlplus:
# sysdba登录orcl实例
sqlplus /@orcl as sysdba
# sysdba 登录utf8orcl实例
sqlplus /@utf8orcl as sysdba
查看当前sqlplus登录的实例:
-- 查看当前登录数据库的参数配置
show parameter name;
-- 查看当前登录用户
show user;
-- 查看当前登录数据库实例名称
select name from v$database;
数据库的配置
初始化参数文件
初始化参数文件是oracle实例运行所需要的参数配置文件,Oracle实例启动必须先从参数文件中读取数据。
初始化参数文件分为两种:
- spfile
可动态修改,即可以在数据库运行期间修改部分参数。
从10g开始默认使用spfile。该文件为二进制文件,无法用文本编辑器修改。
- pfile
不可动态修改。
文本文件,可以直接在文本中进行修改。
查看初始化参数
使用 sysdba 用户连接上sqlplus后,可以以下方式查看配置:
- 将spfile文件转储一个pfile文本文件进行查看
- 直接使用
show parameter xxx
命令进行查看 - 使用sql查询
v$parameter
视图进行查看
对应Oracle官方文档《Oracle Database Reference》第一章《Initialzation Parameters》。
使用 show parameter查看参数:
SQL> show parameter sga;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
lock_sga boolean FALSE
pre_page_sga boolean FALSE
sga_max_size big integer 1G
sga_target big integer 0
SQL> show parameter spfile;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string D:\PC_SOFTWARE\PROGRAM_SOFTWAR
E\DATABASE_SOFTWARE\DATABASE_S
ERVER\ORACLE\APP\ADMINISTRATOR
\PRODUCT\11.2.0\DBHOME_1\DATAB
ASE\SPFILEORCL.ORA
使用 v$parameter 查看参数:
select * from v$parameter;
将二进制的spfile转储成pfile进行查看:
执行之后,将会在spfile所在的文件夹下创建出一个pfile文件:INITorcl.ORA
spfile的路径通过
show parameter spfile;
进行查看只展示已经修改了的值,不展示Oracle的默认值
SQL> create pfile from spfile;
修改初始化参数
通过以下方式修改参数:
- 使用alter语句修改配置
- 修改pfile文件中的参数
使用alter语句进行修改:
--查看当前的系统参数
SQL> show parameters session;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
java_max_sessionspace_size integer 0
java_soft_sessionspace_limit integer 0
license_max_sessions integer 0
license_sessions_warning integer 0
session_cached_cursors integer 50
session_max_open_files integer 10
sessions integer 248
shared_server_sessions integer
-- 尝试修改参数sessions为250
-- 因为sessions参数不允许动态修改,所以会出现报错
SQL> alter system set sessions=250;
alter system set sessions=250
*
第 1 行出现错误:
ORA-02095: 无法修改指定的初始化参数
-- 在alter语句后添加参数,指定修改配置到spfile,重启数据库时才生效
SQL> alter system set session=250 scope=spfile;
-- 重启数据库。startup force 等同于: shutdown abort; startup
SQL> startup force;
修改sessions 的值并重启数据库之后,会发现新的 sessions 参数的值可能比我们设置的值大一些,这是因为Oracle会将自己的后台进程的会话也加入到sessions中。
scope的值有三种选择:
- both(默认值,写入内存,同时更新spfile)
- spfile(对于不允许动态修改的参数,可以选择这个选项,将更改写入spfile,重启数据库后生效)
- memory
修改pfile文件的内容,需要重启数据库才生效。启动时需要加入pfile路径参数:
C:\Users\Administrator>sqlplus / as sysdba
# 如果不指定pfile文件路径, oracle默认会去文件夹下查找并使用spfile文件
SQL> startup pfile='D:\PC_Software\Program_Software\DataBase_Software\Database_Server\oracle\app\Administrator\product\11.2.0\dbhome_1\database\initorcl.ora';
业务导向的参数配置
通过数据库的用途决定参数配置:
- OLAP
在线分析。例如报表系统、数仓系统,用户连接数量少,SQL数量少,但是会有大表查询。
主要压力:IO、并行、动态采样、优化器
- OLTP
在线交易。增删改频繁,多且短的SQL。
主要压力:并发、内存、变量绑定、优化器
OLAP系统相关参数:
- parallel_min_servers
并行
- db_file_multiblock_read_count
从磁盘上一次读多少个数据块,影响IO性能
- optimizer_dynamic_sampling
动态采样
- sga_target
- pga_aggregate_target
- optimizer_mode
OLTP相关参数:
- cursor_sharing
绑定变量
- sga_target
内存
- sessions
会话
- pga_aggregate_target
每个会话的内存的总和
- shared_pool_size
设置大一些可以保证SQL不会因为太旧被踢出,导致再进来一条一模一样的SQL时又重新进行硬解析