您的位置:首页 > 数据库 > Oracle

[Oracle 11g r2 (11.2.0.4.0) ]设置共享服务连接方式

2017-11-16 14:17 525 查看


在OCM考试的时候,会准备一台奇数机EDSIR4p1,一台偶数机EDSIR1p8。

两台机器都安装好了数据库软件。奇数机有来用个实例 prod1,prod2,还有两个实例环境变量脚本prdo1_env,prod2_env,可以通过这两个脚本来切换实例。在奇数机不能通过’. oraenv’ 来切换,在/etc/oratab 实例配置参数错误导致。

偶数机也有3个实例prod4,emrep,prod3是手工创建库的实例 ,还有两个虚拟机用于搭建rac,安装好了GC软件和GI软件(只安装软件,未创建实例)。注意service_name=db_name+db_domain这点需要注意下。

1、手动建库

手工创建参数文件

vi prod3pfile.ora

db_name=prod3

sga_target=512m

db_block_size=8192

control_files=”

db_create_file_dest=”

指定实例,export ORACLE_SID=prod3,启动数据库到nomount状态;

create database characher al32utf8 entent management local;

执行数据库初始化脚本:

@?/rdbms/admin/catalog.sql

@?/rdbms/admin/catproc.sql;

conn system/””

@?/sqlplus/admin/pupbld.sql;

2、创建oem

alter user dbsnmp identified by ” account unlock;

emca -config dbcontrol db -repos recreate –创建

emctl status dbconsole

emctl start dbconsole

3、创建表空间:

create tablespace users datafile ”;

create undo tablespace undotbs1 datafile”;

alter database default tablespace users;

alter system set undo_tablespace=’UNDOTBS1’;

create spfile from memory;

4、使用netmgr 创建tnsnames 、listener文件

注意:service_name=db_name+db_domain 命名方式。

5、创建共享服务模式:

专用服务器模式:数据库服务器要求每个用户拥有一个专用服务器进程,也就是说专用服务器模式,客户端与服务器进程是一一对应的,所以性能比较好,但是用户数据量很大的时候,服务器压力比较大。

共享服务器模式:也就多线程服务器模式。在这种模式下,oracle数据库允许多个用户共享非常少的服务器进程。采用共享服务器模式的哈,则多个用户可以共用一个服务器进程,主要是通过调度程序来实现的,调度程序将多个会话请求到一个队列,服务器共享池中某个空闲的共享服务器进程从队列中获得一个用户连接,对用户提供服务。

共享服务器模式不能使用rman做备份。

tnsnames默认连接模式是共享模式。

pmon会主动向1521端口注册自己的信息,非标准端口并不会主动注册信息。

一般要么设置静态监听,要么在local_listener=’(description=(address=(protocol=tcp)(host=edsir4p1.us.oracle.com)(port=1526)))’,’….(port=1521)’动态注册数据库实例信息。

s000是共享服务的后台进程,默认只开启了一个,可以 show parameter shared_server 查看

配置共享服务配置:

配置监听,选择共享服务模式

shared_servers=5 –初始化共享服务进程

shared_server_sessions=5 –初始化共享会话数

max_shared_servers=10 –最大共享服务进程

session=300 –总共会话数

dispatchers=’(protocol=tcp)(dispatcher=3)’

max_dispatchers=10

select sid,server from v$session where sid=(select sid from v
v$mystat
where rownum <2)

6、创建密码文件

7、配置utl_file_dir参数

alter system set utl_file_dir=”,”,” scope=spfile;

8、控制文件多路复用

9、修改默认diagnostic目录

10、配置direct NFS文件系统创建表空间

cd ORACLEHOME/libmvlibodmdll.solibodmdll.so.bakcplibnfsodmll.solibodmdll.so重启数据库通过查询vdnfs_servers查看nfs文件信息

11、联机打补丁

补丁安装:

补丁包:p12834800_112030_LINUX.zip

补丁包解压查看readme文件

for non-rac


$ opatch roollback -id 12834800 -connectstring < SID >:< USERNAME>:< PASSWD>

for rac


$ opatch rollback -id 12834800 -connectstring < SID_NodeN>:< Username_NodeN>:< Password_NodeN>

在解压的补丁目录下执行

/u01/app/oracle/product/11.2.0/db_1/OPatch/opatch apply online -connectionString node1:::

(在当年前节点上执行opatch后面参数可以不写,自动填充)

12、创建asm实例和配置GI

修复GI,启动GI

GRIDHOME/bin/crsctlstarthasGRID_HOME/bin/crsctl enable has(随OS一起启动)

把数据库实例和监听注册到HA中,这样可以通过grid可以管理数据库资源。

向集群添加数据库:

srvctl add database -d node2 -o < ORACLE_HOME>

向集群添加监听:

srvctl config database srvctl add listener -l listener -p 1521 -o < ORACLE_HOME>

创建非标准block块大小表空间

alter system set db_16k_cache_size=10m

create tablespace tbs16k datafile ” size 10m blocksize 16k;

当sga <2G的时候,block粒度为4M。

创建统一区大小表空间:

create tablespace test datafile ” size 10m autoextend on next 1m maxsize 500m extent management local unifrom size 2m segment sapce management auto;

创建临时表组:

create temporary tablespace temp01 tempfile ” size 10m autoextend on tablespace group tmp_grp;

alter database default temporary tablespace tmp_grp;

创建大表空间:

create bigfile tablespace bigtbs datafile ” size 50m autoextend on maxsize 1t;

13、数据库备份恢复

共享服务器模式不支持rman备份

14、使用catalog库备份恢复数据库

创建一个catalog表空间

create tablespace ctb datafile ” size 10m autoextend on next 1m maxsize 500m extent management local segment space management auto;

create user rc_admin identified by ” default tablespace ctb;

grant dba,recovery_catalog_owner to rc_admin;

rman catalog rc_admin/”

RMAN > create catalog;

注册数据库

rman target / catalog rc_admin/”

如果目标数据库跟catalog库版本不一致,直接注册会报错,所以先升级后注册。

RMAN > upgrade catalog;

recovery catalog owner is rc_admin

enter upgrade catalog command agin to confirm catalog upgrade

RMAN >upgrade catalog;

RMAN >register database;

从目标数据库的controlfile中同步备份信息到catalog库,可以通过

‘RMAN >resync catalog;’来同步。

rman > drop catalog;–删除catalog

rman > unregister database;–取消注册

创建一个归档备份,加上标签并设置为永久保存

rman target sys/”@tnsnames catalog/

RMAN > backup archivelog all format ” tag=’arch1’ keep forever;

–‘keep forever’ 必须连接到catalog,不然会报错。

使用快速增量备份,打开块跟踪

SQL > alter database enable block change tracking using file ”;

select * from v$block_change_tracking;

备份分片优化(备份某个表空间并分成规定大小的备份片)

RMAN > configure backup optimization on;

RMAN > backup as compressed backupset tablespace example section size=30m format ”;

利用rman自动修复功能:

rman >list failure;

rman>advise failure;

rman>repair failure;

15、flashback database,transaction

闪回数据库,一般用在数据库升级,压力测试等场景。

开归档,打开数据库闪回,alter database flashback on;

闪回事务,开始supplemental log

alter database add supplemental log data;

alter database add supplemental log data (primary key,unique index) columns;

16、数据仓库管理

dblink创建与使用

首先保证tnsnames正确,dblink 有私有的,公有的和全局的。

create database link prod2_link connect to system identified by ” using ‘TNS_NAMES’

一般在生产上,都是通过使用同义词来替换dblink_name,

create synonym sym_nme for TBNAME@DBLINK;

17、物化视图 :

保存sql语句执行结果,可以作为一个优化手段,当基表发生变化的时候,物化视图也应该随之刷新。

物化视图分为3种类型:

1 . 包含聚集的物化视图

2 . 只包含连接

3 . 嵌套物化视图

build immediate 立即创建;build deferred延迟创建。默认是立即创建。

查询重写 QueryRewrite ,包括enable query rewrite和disable query rewrite两种。默认是disable query rewrite。查询重写是指对物化视图的基表进行查询是,oracle会自动判断是否能通过查询物化视图来获得结果。

刷新模式(refresh),只当基表发生DML操作后,物化视图核实采用哪种方式和基表同步。刷新方式有两种 on demand 和on commit。on demand在用户需要的时候进行刷新,可以手工通过dbms_mview.refresh来刷新也可以通过job来定时刷新。一般在生产环境中按需刷新使用比较多。

刷新方式:完全刷新complete,快速刷新fast(基于视图日志,有基于主键的,基于rowid的),强制刷新force(oracle自动判断刷新的方式 );

语法:

create materialized view mv_name

build deferred

refresh complete

enable query rewrite

as

select id,name ,sum(sold) from scott.sales where id is not null

group by id,name

order by sum(sold) desc;

采用快速刷新方式,需要创建物化日志

create materialized coew mv_log on scott.sales with primary key including new values;

星形转换:

开启 star_transformation_enabled=’true’

在各个表上创建位图索引,索引列为where条件关键词:

create bitmap index time_id_idx on sales(time_id) local;

create bitmap index cust_id_idx on sales(cust_id) local;

跨平台传输表空间:

不同平台下,数据文件的字节序(endian)不一样,不能直接导入导出使用,首先查询当年系统支持得平台:

select * from v$transportable_platform ;

使用rman转换数据字节序,

RMAN> convert datafile ‘/home/oracle/tts-solaris32-bit’ from platform ‘solaris[tm] OE (32-bit) ’ format ‘/home/oracle/tts-linux.dbf’;

create directory mydir as ‘/home/oracle’;

导入:

impdp sys/’oracle’ directory=’mydir’ dumpfile=ttd-linux.dmp transport_datafiles=’/home/oracle/tts-linux.dbf’

查看导入表空间状态,修改为可读写状态。

外部表:

提供一个外部表的控制文件和外部表数据文件,要求创建一个外部表。

先通过查看控制文件创建一个基础表,然后通过sqlldr生成外部表语法

sqlldr system/” control=sh_master.ctl data=sh_master.dat.gz log=sh.log external_table=generate_only ;通过输出的日志,找到创建外部表的语法,然后根据要求创建外部表。

注意:

1 . directoriy 对象,如果数据库没有需要创建directory对象。

2 . badfile 垃圾数据文件名称

3 . logfile 日志文件名称

并行执行

1、使用 hint提示并行

select /+parallel(sales,8)/ * form sales;

select /+parallel_index(c,ic,4)/ * from customers c where cust_city=’bost’;

2、必须记住四个参数

parallel_min_servers: 默认打开最小的冰行进程数

parallel_max_servers:允许的最大并行进程数

parallel_degree_policy:manual,limited,auto 并行策略。

parallel_min_time_threshold:规定一个语句超过规定时间没有执行完才打开并行查询,默认10s。只有当parallel_degree_policy被设置为auto,limited时这个参数才有效。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: