oracle12c怎么打开ome
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle12c怎么打开ome相关的知识,希望对你有一定的参考价值。
参考技术A 关于Forced Logging模式有一些DDL语句可以通过指定NOLOGGING子句的方式避免写redo log(目的是提高速度,某些时候确实有效),指定数据库为FORCE LOGGING模式后,数据库将会记录除临时表空间或临时回滚段外所有的操作而忽略类似NOLOGGING之类的指定参数。如果在执行force logging时有nologging之类的语句在执行,则force logging会等待直到这类语句全部执行。FORCE LOGGING是做为固定参数保存在控制文件中,因此其不受重启之类操作的影响(只执行一次即可)
打开force logging
SQL > alter database force logging;
关闭force logging
SQL > alter database no force logging;
查看force logging的状态:
SQL > select FORCE_LOGGING from v$database;
2关于主备库的密码
密码文件位置$ORACLE_HOME/dbs/orapwSID,主备库的密码必须要一致,否则可能出现日志无法传输故障,最好是使用scp传过去较为方便。
3关于listener.ora和tnsnames.ora
listener.ora为数据库的监听配置文件,tnsnames.ora为网络服务名配置文件
修改listener.ora是需要重启监听程序,而tnsnames.ora是不需要重启的,我们可以使用默认的listener.ora
LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521)) ) )ADR_BASE_LISTENER = /opt/oracle
以上是动态注册,如果是静态注册的话,则是
SID_LIST_LISTENER =(SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = /opt/oracle/product/11.2.0/db_1) (PROGRAM = extproc) ) (SID_DESC = (GLOBAL_DBNAME = db1) (ORACLE_HOME = /opt/oracle/product/11.2.0/db_1) (SID_NAME = db1) ) )
tnsnames.ora则只需要添加服务名
(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = db1) ) )db2 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = db2)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = db2) ) )
以上按照自己的实际情况进行修改以上配置好了,就可以相互的tnsping db1或tnsping db2进行测试。
4参数文件说明
参数文件说明:增加以下参数,如果在初始化参数已经有配置,则看需要做相应的修改。
1、与主库角色相关的初始化参数说明:
DB_NAME注意保持同一个Data Guard环境中所有数据库DB_NAME相同。DB_UNIQUE_NAME为每一个数据库指定一个唯一的名称,以标示同一个dataguard环境中不同的数据库。
LOG_ARCHIVE_CONFIG 该参数通过DG_CONFIG属性罗列同一个Data Guard中所有DB_UNIQUE_NAME(含主库db及备库db),以逗号分隔。
例如:LOG_ARCHIVE_CONFIG='DB_CONFIG=(db1,db22)'LOG_ARCHIVE_DEST_n 归档文件的生成路径。
该参数非常重要,dataguard就是通过这里的设置传输日志的。LOG_ARCHIVE_DEST_STATE_n指定参数值为ENABLE,标示对应的LOG_ARCHIVE_DEST_n参数是否有效。
REMOTE_LOGIN_PASSWORDFILE推荐设置参数值为EXCLUSIVE或者SHARED,注意保证相同Data Guard配置中所有db服务器sys密码相同。如果不同日志传输会失败。数据库默认是EXCLUSIVE,一般不用修改。LOG_ARCHIVE_FORMAT指定归档文件格式。一般也不用修改,保持默认即可。
2、以下参数为备库角色相关的参数,建议在主库的初始化参数中也进行设置,这样在主备库角色相互转换后不需要做修改dataguard也能正常运行。
FAL_SERVER 指定备库到主数据库的连接服务名,FAL_SERVER = orcl2日志所在服务器。FAL_CLIENT 指定主库到备库的连接服务名,FAL_CLIENT = orcl日志接收客户端。STANDBY_FILE_MANAGEMENT如果主库的数据文件发生修改(如新建,重命名等)则按照本参数的设置在备库中做相应修改。设为AUTO表示自动管理。设为MANUAL表示需要手工管理。
例如:STANDBY_FILE_MANAGEMENT=AUTO下面开始修改主库的初始化参数。
db_name参数已经设置,不用修改SQL> alter system set db_unique_name =’db1’ scope=spfile;SQL> alter system set log_archive_config='dg_config=(db1,db2)' scope=spfile;
---这里的db1和db2为db_unique_name
SQL> alter system set log_archive_dest_1='location=/opt/oracle/flash_recovery_area' scope=spfile;
--/opt/oracle/flash_recovery_area为本地的归档目录,需要手动创建该目录,当然也可以指定别的路径。注意oracle账号对该目录又可读写的权限。
SQL> alter system set log_archive_dest_state_1=enable scope=spfile;
--这个通常不用修改,系统默认的就是enable。
SQL>alter system set log_archive_dest_2='service=db2 valid_for=(online_logfiles,primary_role) arch async NOAFFIRM db_unique_name=db2' scope=spfile;
-----这里的service为主库连接到备库的服务名,后面会在tnsnames.ora文件中配置valid_for参数说明这个归档日志目的地在本数据库为主库的角色下才需要把online_logfile传输到备库去。
arch async NOAFFIRM说明的是同步的方式,同步的方式有三种:最大保护,最大性能,最大可用。
SQL> alter system set log_archive_dest_state_2=enable scope=spfile;
以上修改的是作为主库角色需要的参数,为了方便以后主备库切换,建议在主库中也配置作为备库角色的相关参数。
SQL> alter system set fal_server=db2 scope=spfile;
SQL> alter system set fal_client=db scope=spfile;
SQL> alter system set standby_file_management=auto scope=spfile;
生成静态参数文件,以备后面给备库使用。
SQL> create pfile from spfile;重新启动主库,使参数生效。
5DataGuard启动停止及维护
DataGuard停止:先主后备
DataGuard启动:先备后主
6DataGuard日常监控视图
1、主库查看日志归档路径是否可用,如果远程归档目录不可用则error会显示错误信息
SQL> select dest_name,status,error from v$archive_dest;
DEST_NAME STATUS ERROR-------------------- -------------------- --------------------LOG_ARCHIVE_DEST_1 VALIDLOG_ARCHIVE_DEST_2 VALIDLOG_ARCHIVE_DEST_3 INACTIVELOG_ARCHIVE_DEST_4 INACTIVELOG_ARCHIVE_DEST_5 INACTIVELOG_ARCHIVE_DEST_6 INACTIVELOG_ARCHIVE_DEST_7 INACTIVELOG_ARCHIVE_DEST_8 INACTIVELOG_ARCHIVE_DEST_9 INACTIVELOG_ARCHIVE_DEST_10 INACTIVE10 rows selected.
如上记录则代表备库归档日志目录有效且正常。
2、查询数据库的主备角色,以及当前DataGuard的运行模式,在主备查询结果不同
主库:
SQL> select database_role,LOG_MODE,PROTECTION_MODE,PROTECTION_LEVEL from v$database;DATABASE_ROLE LOG_MODE PROTECTION_MODE PROTECTION_LEVEL---------------- ------------ -------------------- --------------------PRIMARY ARCHIVELOG MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE
备库:
SQL> select database_role,LOG_MODE,PROTECTION_MODE,PROTECTION_LEVEL from v$database;DATABASE_ROLE LOG_MODE PROTECTION_MODE PROTECTION_LEVEL---------------- ------------ -------------------- --------------------PHYSICAL STANDBY ARCHIVELOG MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE
3、获取归档日志的应用情况,主备库结果不同。在主库上对于每个归档文件会有2条记录
SQL > select name,SEQUENCE#,APPLIED from v$archived_log order by sequence#;
备库:
/opt/oracle/flash_recovery_area/1_11_904130046.dbf 11 YES/opt/oracle/flash_recovery_area/1_12_904130046.dbf 12 YES/opt/oracle/flash_recovery_area/1_13_904130046.dbf 13 YES/opt/oracle/flash_recovery_area/1_14_904130046.dbf 14 YES/opt/oracle/flash_recovery_area/1_15_904130046.dbf 15 YES/opt/oracle/flash_recovery_area/1_16_904130046.dbf 16 YES/opt/oracle/flash_recovery_area/1_17_904130046.dbf 17 YES/opt/oracle/flash_recovery_area/1_18_904130046.dbf 18 YES/opt/oracle/flash_recovery_area/1_19_904130046.dbf 19 YES/opt/oracle/flash_recovery_area/1_20_904130046.dbf 20 YES/opt/oracle/flash_recovery_area/1_21_904130046.dbf 21 YES/opt/oracle/flash_recovery_area/1_22_904130046.dbf 22 YES/opt/oracle/flash_recovery_area/1_23_904130046.dbf 23 YES/opt/oracle/flash_recovery_area/1_24_904130046.dbf 24 IN-MEMORY
fortran 代码不循环
【中文标题】fortran 代码不循环【英文标题】:fortran code do not cycle 【发布时间】:2014-02-25 14:39:44 【问题描述】:我尝试用以下代码解决这个简单的三体问题:
Program Main
Implicit real*8 (A-H,O-Z)
real*8 ome,mu, rho, R
duepi=8*datan(1.d0)
ome=1
mu=0.001
T_per=duepi/ome
rho=0.1
R=1.0
N_step=100
c Open the file
OPEN(unit=11, file="prova1.txt")
c Nested do loops
do iy0=1,100
do iP0=1,100
c Calc value for 0
y0 = real(iy0)/100.
x0 = 0
c Calc value for py0
py0 = real(iP0)/100.
px0 = 0
x=x0
y=y0
px=px0
py=py0
dt=T_per/N_step
E0=H(x,y,px,py)
k_max=100*N_step
k=0
t=0
errh=0
c---------
c start integration loop
c--------
do k=1,k_max
call sym4(x,y,px,py,dt)
E= H(x,y,px,py)
errh=abs(E-E0)
t=k*dt
enddo
do k=1,k_max
call sym4(x,y,px,py,-dt)
E= H(x,y,px,py)
errh=abs(E-E0)
t=t-dt
enddo
write(11,*) y0, py0, errh
enddo ! iP0
enddo ! iy0
close(11)
end
subroutine sym1(x,y,px,py,dt)
Implicit real*8 (A-H,O-Z)
c
call f(x,y,fx,fy)
pxnew=px+dt*fx
pynew=py+dt*fy
xnew=x+dt*pxnew
ynew=y+dt
c
x=xnew
y=ynew
px=pxnew
py=pynew
end
subroutine sym1_B(x,y,px,py,dt)
Implicit real*8 (A-H,O-Z)
c
xnew=x+dt*px
ynew=y+dt
call f(xnew,ynew,fxnew,fynew)
pxnew=px+dt*fxnew
pynew=py+dt*fynew
c
x=xnew
y=ynew
px=pxnew
py=pynew
end
subroutine f(x,y,fx,fy)
Implicit real*8 (A-H,O-Z)
real*8 ome,mu,rho,R
fx = ((1-mu)*(rho+x))/((rho*rho+2*rho*x+y*y)**(1.5)) -
& (mu*(R+x))/((R**2-2*R*x+x*x+y*y)**(1.5))
fy = ((1-mu)*(rho+x))/((rho**2+x**2+2*rho*x+y**2)**(1.5))/
& + (mu*y)/((R**2-2*R*x+x**2+y**2)**(1.5))
return
end
real*8 function H(x,y,px,py)
Implicit real*8 (A-H,O-Z)
real*8 ome,mu,rho,R
c h=px*px/2.d0+ py +(1+eps*cos(ome*y))*x*x/2
c h=px*px/2.d0+ py -(1+eps*cos(ome*y))*cos(x)
r12 = sqrt( ( (x*cos(ome*y)-y*sin(ome*y))+rho*cos(ome*y) )**2
& + ( x*sin(ome*y)+y*cos(ome*y) + rho*sin(ome*y) )**2 )
r13 = sqrt( ( (x*cos(ome*y)-y*sin(ome*y))-R*cos(ome*y) )**2
& + ( x*sin(ome*y)+y*cos(ome*y) - R*sin(ome*y) )**2 )
h=(px**2+py**2)/2.d0 - (1-mu)/r12 - mu/r13 + py
return
end
subroutine sym2(x,y,px,py,dt)
Implicit real*8 (A-H,O-Z)
call f(x,y,fx,fy)
xnew= x+ px*dt + fx*dt**2/2.d0
ynew= y+ dt ! così è giusto
call f(xnew,ynew,fxnew,fynew)
pxnew= px+ dt*(fx+fxnew )/2.d0
pynew= py+ dt*(fy+fynew )/2.d0
x=xnew
y=ynew
px=pxnew
py=pynew
end
subroutine sym4(x,y,px,py,dt)
Implicit real*8 (A-H,O-Z)
sq2=2**(1.d0/3.d0)
alpha= 1.d0/(2-sq2)
beta= sq2/(2-sq2)
dt1= dt*alpha
dt2=-dt*beta
call sym2(x,y,px,py,dt1)
call sym2(x,y,px,py,dt2)
call sym2(x,y,px,py,dt1)
return
end
代码调用辛积分器并解决 3body 问题。但是当我尝试运行它时,没有编译错误,output.txt 文件只显示初始网格而不是errh
这个专栏只给我 NaN,有人可以帮帮我吗?
可能是初始条件错误(速度或位置的奇怪初始条件,欧米茄是错误的......)?
【问题讨论】:
这里不足以理解问题。我建议添加一些中间写语句。最重要的是,我建议使用 Fortran 95 而不是 FORTRAN 77。 检查你为什么得到错误结果的常用方法是检查算法,也许使用调试器。 任何在 C21 中编写 Fortran 而不在所有范围内使用implicit none
的人都是自找麻烦。隐式类型是否是您当前问题的根源并不重要。重要的是你,任何人,都应该使用你的语言和编译器提供的所有工具来消除错误的可能性。就个人而言,我什至不会尝试在没有implicit none
的情况下调试代码。
【参考方案1】:
正如 cmets 中所述,您的程序存在许多代码样式问题(意图错误,...)以及未使用最佳 Fortran 实践(例如 implicit none
)。您的问题可以通过简单地使用调试器来解决。
一个明显的问题是您在函数中使用了未初始化的变量:
subroutine f(x,y,fx,fy)
: rho, mu, R
在计算 fx 和 fy,产生 NaN
function H()
:ome, rho, mu
,...
其他地方也一样
【讨论】:
以上是关于oracle12c怎么打开ome的主要内容,如果未能解决你的问题,请参考以下文章