目錄
1.查看大小是否敏感寫參數,提示:未認可的配置參數 "case_sensitive"
2.sys_backup.sh init時提示can not connect the primary node
3.設置邏輯備份運行腳本時提示錯誤are not allowed to use this program (crontab)?
4.修改表字段類型bit為int失敗,提示SQL 錯誤[42804]: ERROR: default for column "prescript" cannot be cast automaticallyto type integer?
5.string_agg和group_concat函數?
6.查詢鎖表語句?
?7.KES V8R6集群物理備份初始化時提示more than one primary cluster found
8.com.kingbase8.util.KSQLException: An I/O error occurred while sending to the backend.
10.海光+方德環境安裝時提示“Exception in thread"main"?java.lang.UnsupportedclassVersionError: com/zerog/lax/LAX : Unsupported major .minor version 52.0
11.業務表與系統表沖突時,修改search_path?
1.查看大小是否敏感寫參數,提示:未認可的配置參數 "case_sensitive"
在V8R6C005之后的版本查詢大小寫敏感參參數為show enable_ci;之前的版本用show case_sensitive
2.sys_backup.sh init時提示can not connect the primary node
# pre-condition: check the non-archived WAL filesERROR: can not connect the primary node 192.168.56.112 by ksqlHINT: may use sys_encpwd to setup .encpwd*****注意配置中的_single_bin_dir?參數是Server/bin
3.設置邏輯備份運行腳本時提示錯誤are not allowed to use this program (crontab)?
?情景1:HiSilicon ?Kunpeng-920 ? / ?ky10
/etc/cron.allow 文件添加kingbase用戶后依然提示報錯。
問題:
[kingbase@kylinv10sp1 R6logic_backup-final]$ crontab -l
You (kingbase) are not allowed to use this program (crontab)
See crontab(1) for more information--注意權限,檢查/usr/bin/crontab是否有特權
[root@kylinv10sp1 bin]# ls -al crontab
-rwxr-xr-x 1 root root 68248 Apr ?1 ?2020 crontab
[root@kylinv10sp1 bin]# chmod u+s /usr/bin/crontab
[root@kylinv10sp1 bin]# ls -al crontab
-rwsr-xr-x 1 root root 68248 Apr ?1 ?2020 crontab
[root@kylinv10sp1 bin]# su - kingbase
Last login: Wed Feb 21 11:41:48 CST 2024 on pts/3
[kingbase@kylinv10sp1 ~]$ crontab -l
no crontab for kingbase
情景2:統信操作系統,先給777權限,再給s權限
[root@localhost insatll]# chmod 777 /usr/bin/crontab
[root@localhost insatll]# chmod u+s /usr/bin/crontab
[root@localhost insatll]# ls -rtl /usr/bin/crontab
-rwsrwxrwx 1 root root 63160 3月 14 05:47 /usr/bin/crontab
4.修改表字段類型bit為int失敗,提示SQL 錯誤[42804]: ERROR: default for column "prescript" cannot be cast automaticallyto type integer?
?
?
原bit字段有一個默認值,導致修改失敗,先取消默認值,再執行修改字段即可。
ALTER TABLE?tc_geo_address_catalog?
ALTER COLUMN?prescript
SET DEFAULT NULL;
alter table tc_geo_address_catalog?alter column prescript?type int using id ::int;?
5.string_agg和group_concat函數?
pg模式用string_agg(),oracle模式用group_concat(),注意參數為text,若傳入的參數類型不正確,則會報錯。
重寫:
CREATE OR REPLACE? FUNCTION F_CONCAT(TEXT,TEXT,TEXT) RETURNS TEXT AS
$$
SELECT $1||$3||$2;
$$ LANGUAGE SQL STRICT;
CREATE AGGREGATE group_concat(TEXT,TEXT)(SFUNC=F_CONCAT,STYPE=TEXT);
6.查詢鎖表語句?
SELECT blocked_locks.pid AS blocked_pid,blocked_activity.usename AS blocked_user,blocking_locks.pid AS blocking_pid,blocking_activity.usename AS blocking_user,blocked_activity.query AS blocked_statement,blocking_activity.query AS current_statement_in_blocking_process,blocked_locks.mode ,blocked_locks.locktypeFROM pg_catalog.pg_locks blocked_locksJOIN pg_catalog.pg_stat_activity blocked_activity ON blocked_activity.pid = blocked_locks.pidJOIN pg_catalog.pg_locks blocking_locksON blocking_locks.locktype = blocked_locks.locktypeAND blocking_locks.database IS NOT DISTINCT FROM blocked_locks.databaseAND blocking_locks.relation IS NOT DISTINCT FROM blocked_locks.relationAND blocking_locks.page IS NOT DISTINCT FROM blocked_locks.pageAND blocking_locks.tuple IS NOT DISTINCT FROM blocked_locks.tupleAND blocking_locks.virtualxid IS NOT DISTINCT FROM blocked_locks.virtualxidAND blocking_locks.transactionid IS NOT DISTINCT FROM blocked_locks.transactionidAND blocking_locks.classid IS NOT DISTINCT FROM blocked_locks.classidAND blocking_locks.objid IS NOT DISTINCT FROM blocked_locks.objidAND blocking_locks.objsubid IS NOT DISTINCT FROM blocked_locks.objsubidAND blocking_locks.pid != blocked_locks.pidJOIN pg_catalog.pg_stat_activity blocking_activity ON blocking_activity.pid = blocking_locks.pidWHERE NOT blocked_locks.granted;
7.KES V8R6集群物理備份初始化時提示more than one primary cluster found
經排查,本地測試服務器是采用nat+host-only模式,且虛擬機時復制的方式,nat網卡的mac地址和ip都沒有變化,修改或者刪除網卡信息后,執行初始化腳本成功。
8.com.kingbase8.util.KSQLException: An I/O error occurred while sending to the backend.
show tcp_keepalives_idle;? ?修改為tcp_keepalives_idle = 60
9.could not open shared memory segment "/kingbase.1416331144": No such file or directory (SQLSTATE 5
/data/kingbase/data/kingbase.conf 里面找到dynamic_shared_memory_type???參數,改為dynamic_shared_memory_type = sysv
重啟數據庫
10.海光+方德環境安裝時提示“Exception in thread"main"?java.lang.UnsupportedclassVersionError: com/zerog/lax/LAX : Unsupported major .minor version 52.0
通過Unsupported major.minor version 52.0信息基本可以確定是由于JDK版本不匹配導致的安裝報錯,根據錯誤信息52得知,要求的JDK對應版本號碼為52.52對應JDK 1.8版本(Unsupported major.minor version 52.0信息為要求JDK對應的版本,而不是報錯的JDK版本).高于52的jdk都可以使用。
11.業務表與系統表沖突時,修改search_path?
當 Kingbase 數據庫中的業務表與系統表發生名稱沖突時,可以通過修改?search_path?來解決這個問題。進入到對應的庫,執行
alter database dbname set search_path=schema_name,'$user',public,sys,sys_catalog,pg_catalog; ---必須加上sys,sys_catalog,pg_catalog
select sys_reload_conf();
重連客戶端,重啟應用后生效,若應用重啟后依然沒有生效,則檢查jdbc url ,url 里不再需要配置Currentschema 參數,因為帶模式名時忽略search_path。
jdbc.master.url=jdbc:kingbase8://xxx.xxx.xxx.xxx:54321/db1?currentSchema=schenam_name 修改為jdbc.master.url=jdbc:kingbase8://xxx.xxx.xxx.xxx:54321/db1
12.ksql test/kingbase system 登錄后無權限建庫,建表“can not create database in current database”
該金倉庫兼容模式為SQLSERVER, 單兼容模式為sqlserver 時,需要登錄master? 庫進行建庫,手動新建模式后,再進行建表;