首先,RAC是基于应用的集群,HA是基于 *** 作系统的集群,两种集群有很大区别的。
RAC是在集群中的每台服务器上启动一个数据库实例,同时对用户群组的请求进行响应。而HA其实是由 *** 作系统决定数据库运行在哪个主机上,其他主机上面是一般是不运行任何数据库的(除了双机互备系统),实际上HA是个单机数据库,它是为避免单个主机故障而出现的。
crs_stat 命令是oracle的集群组件中的工具。如果使用crs_stat -t命令返回结果如下:
rac2-> crs_stat -t
Name Type Target State Host
------------------------------------------------------------
oraCRMcs application OFFLINE OFFLINE
oradb1srv application OFFLINE OFFLINE
oradevdbdb application ONLINE ONLINE rac2
orab1inst application ONLINE ONLINE rac1
orab2inst application ONLINE ONLINE rac2
oraSM1asm application ONLINE ONLINE rac1
oraC1lsnr application ONLINE OFFLINE
orarac1gsd application ONLINE ONLINE rac1
orarac1ons application ONLINE ONLINE rac1
orarac1vip application ONLINE ONLINE rac1
oraSM2asm application ONLINE ONLINE rac2
oraC2lsnr application ONLINE OFFLINE
orarac2gsd application ONLINE ONLINE rac2
orarac2ons application ONLINE ONLINE rac2
orarac2vip application ONLINE ONLINE rac2
包含以下两行
orab1inst application ONLINE ONLINE rac1
orab2inst application ONLINE ONLINE rac2
就说明是RAC数据库
其中第一行说明orab1inst这个数据库实例是在rac1这个主机上online的
同理第二行是orab2inst这个数据库实例是在rac2这个主机上online的
肯定是从报错提示入手,具体可以看看报错日志;openGauss也提供了一些视图来存其运行状态;还有就是收集core文件进行分析。具体参考官方的建议思路:
1、日志。数据库日志记录了数据库服务端启动、运行或停止时出现的问题,当数据库在启动、运行或停止的过程中出现问题时,数据库用户可以通过运行日志快速分析问题的产生原因,并根据不同的原因采取相应的处理方法,尽可能地解决问题。
2、视图。数据库提供了许多视图,用于展示数据库的内部状态,在定位故障时,经常使用的视图如下:
pg_stat_activity,用于查询当前实例上各个session的状态。
pg_thread_wait_status,用于查询该实例上各个线程的等待事件。
pg_locks,用于查询当前实例上的锁状态。
3、CORE文件。数据库相关进程在运行过程中可能会因为各种意外情况导致数据库崩溃 (Coredump),而崩溃时产生的core文件对于迅速定位程序崩溃的原因及位置非常重要。如果进程运行时出现Coredump现象,建议立即收集core文件便于分析、定位故障。
对性能有一定的影响,尤其是进程频繁异常时对性能的影响更大。
core文件会占用磁盘空间。因此,当检查到core文件产生后,应及时解决以避免对 *** 作系统带来更严重的影响。 *** 作系统自带core dump机制。开启后,系统中所有出现Coredump问题时都会生成core文件,对 *** 作系统带来性能和磁盘占用的影响
设置core文件生成路径。修改/proc/sys/kernel/core_pattern内容。
[root@openeuler123 mnt]# cat /proc/sys/kernel/core_pattern/data/jenkins/workspace/openGaussInstall/dbinstall/cluster/corefile/core-%e-%p-%t
import javasql;
public class Test
{
public static void main(String[] args) throws Exception
{
ClassforName("commysqljdbcDriver");
//一开始必须填一个已经存在的数据库
String url = "jdbc:mysql://localhost:3306/testuseUnicode=true&characterEncoding=utf-8";
Connection conn = DriverManagergetConnection(url, "root", "123456");
Statement stat = conncreateStatement();
//创建数据库hello
statexecuteUpdate("create database hello");
//打开创建的数据库
statclose();
connclose();
url = "jdbc:mysql://localhost:3306/hellouseUnicode=true&characterEncoding=utf-8";
conn = DriverManagergetConnection(url, "root", "123456");
stat = conncreateStatement();
//创建表test
statexecuteUpdate("create table test(id int, name varchar(80))");
//添加数据
statexecuteUpdate("insert into test values(1, '张三')");
statexecuteUpdate("insert into test values(2, '李四')");
//查询数据
ResultSet result = statexecuteQuery("select from test");
while (resultnext())
{
Systemoutprintln(resultgetInt("id") + " " + resultgetString("name"));
}
//关闭数据库
resultclose();
statclose();
connclose();
}
}
你的sql有问题:
你针对Student表的每个字段都做了一次update *** 作,这样太耗性能,也不可取
update Student set ssex = "+ "'"+ SSex + "' , Sbirthday = "+ "'"+ birthday + "'
(其他字段) where SNo = "+ "'"+ SNo
注:一个sql语句可以同时更新多个字段
update Student set 字段1 = 值1, 字段2 = 值2 ,字段n = 值n where SNo = 'SNo '
statexecuteUpdate
里面有n个update语句,用一条就可以搞定,即上面整合的那条sql即可
你这完全是使用方法的错误
以上就是关于如何查看我的oracle数据库是RAC还是HAcrs_stat 可以运行就是RAC,不然就是HA了全部的内容,包括:如何查看我的oracle数据库是RAC还是HAcrs_stat 可以运行就是RAC,不然就是HA了、openGauss数据库故障定位思路、用java编写一个创建数据库和表的程序的代码怎么写等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)