diff --git a/.eslintrc.js b/.eslintrc.js
index ae61d005b2bf00002c08bc5816ef50058afd520a..180c542a2c2e447131764f225b277212f866eeb5 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -1,31 +1,10 @@
+/* eslint-env node */
+require('@rushstack/eslint-patch/modern-module-resolution');
+
module.exports = {
root: true,
- parser: 'vue-eslint-parser',
+ extends: ['plugin:vue/vue3-essential', 'eslint:recommended', '@vue/eslint-config-typescript', '@vue/eslint-config-prettier/skip-formatting'],
parserOptions: {
- sourceType: 'module',
- ecmaVersion: 2020,
- ecmaFeatures: {
- tsx: true,
- },
- },
- env: {
- browser: true,
- node: true,
- es6: true,
- },
- extends: [
- 'plugin:vue/vue3-recommended',
- 'plugin:@typescript-eslint/recommended',
- ],
- plugins: ['@typescript-eslint'],
- rules: {
- 'no-console': 'warn',
- 'no-debugger': 'error',
- 'no-var': 'error',
- 'no-unused-vars': 'error',
- 'no-multiple-empty-lines': 'error',
- eqeqeq: 'error',
- '@typescript-eslint/no-explicit-any': 'off',
- 'vue/no-v-model-argument': 'off',
+ ecmaVersion: 'latest',
},
};
diff --git a/.gitignore b/.gitignore
index 1229b739645afb9f7a62b1785a9fba871170dd0f..0b42b0d56f9a2828e6e564bca65268c7e5447d14 100644
--- a/.gitignore
+++ b/.gitignore
@@ -121,4 +121,5 @@ dist
app/.vitepress/.cache
app/.vitepress/.temp
app/.vitepress/dist
+app/.vitepress/cache
.vscode/settings.json
diff --git a/.npmrc b/.npmrc
index fa4e095233fbfba3ff88d57fb03190fd96b72d99..07a29be03721bc842d18172fbcd4bd5d660e623b 100644
--- a/.npmrc
+++ b/.npmrc
@@ -1 +1,2 @@
-strict-peer-dependencies=false
\ No newline at end of file
+strict-peer-dependencies=false
+registry=https://registry.npmmirror.com/
\ No newline at end of file
diff --git a/.prettierrc.js b/.prettierrc.js
deleted file mode 100644
index b3d9a25c2e20c226646b7abd86f28ed157bf7968..0000000000000000000000000000000000000000
--- a/.prettierrc.js
+++ /dev/null
@@ -1,10 +0,0 @@
-module.exports = {
- printWidth: 80,
- useTabs: false,
- singleQuote: true,
- tabWidth: 2,
- semi: true,
- trailingComma: 'es5',
- arrowParens: 'always',
- jsxBracketSameLine: false,
-};
diff --git a/.prettierrc.json b/.prettierrc.json
new file mode 100644
index 0000000000000000000000000000000000000000..66d4c0d9d803a7017653eef72220ccacc9355a19
--- /dev/null
+++ b/.prettierrc.json
@@ -0,0 +1,8 @@
+{
+ "$schema": "https://json.schemastore.org/prettierrc",
+ "semi": true,
+ "tabWidth": 2,
+ "singleQuote": true,
+ "printWidth": 160,
+ "trailingComma": "es5"
+}
diff --git a/Dockerfile b/Dockerfile
index d19a5b94bcb9cc2c0ffa55c82f90ef79a5c3ec7f..c2dfe61ff15a74a72a5dda8723a7858da1a90c62 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,13 +1,14 @@
-FROM gplane/pnpm as Builder
+FROM swr.cn-north-4.myhuaweicloud.com/opensourceway/node:latest as Builder
RUN mkdir -p /home/opengauss/web
WORKDIR /home/opengauss/web
COPY . /home/opengauss/web
+RUN npm install pnpm -g
RUN pnpm install
RUN pnpm build
-FROM swr.cn-north-4.myhuaweicloud.com/opensourceway/openeuler/nginx:1.22.0-22.03-lts
+FROM swr.cn-north-4.myhuaweicloud.com/opensourceway/openeuler/nginx:latest as NginxBuilder
COPY --from=Builder /home/opengauss/web/app/.vitepress/dist /usr/share/nginx/html/
diff --git a/app/.vitepress/config.ts b/app/.vitepress/config.ts
index 09a6e6101c6827511bfa1251463d108dc3c2c194..775ec3edf27c5212dacd0d67905276d913fbfda6 100644
--- a/app/.vitepress/config.ts
+++ b/app/.vitepress/config.ts
@@ -24,28 +24,25 @@ const config: UserConfig = {
content: 'openGauss,开源数据库,openGauss社区官网,开源社区',
},
],
- [
- 'script',
- {},
- `(()=>{const e=localStorage.getItem("opengauss-theme"),t=window.matchMedia("(prefers-color-scheme: dark)").matches;(e?"dark"===e:t)&&document.documentElement.classList.add("dark");})();`,
- ],
],
appearance: true, // enable dynamic scripts for dark mode
titleTemplate: false, // vitepress supports pageTitileTemplate since 1.0.0
+ ignoreDeadLinks: true,
locales: {
- '/': {
+ root: {
+ label: '中文',
lang: 'zh',
title: 'openGauss',
- description:
- 'openGauss是一个高性能、高安全、高可用、高智能的企业级开源关系数据库。openGauss也是一个鼓励社区贡献和协作的开源数据库平台。',
+ description: 'openGauss是一个高性能、高安全、高可用、高智能的企业级开源关系数据库。openGauss也是一个鼓励社区贡献和协作的开源数据库平台。',
},
- '/zh/': {
+ zh: {
+ label: '中文',
lang: 'zh',
title: 'openGauss',
- description:
- 'openGauss是一个高性能、高安全、高可用、高智能的企业级开源关系数据库。openGauss也是一个鼓励社区贡献和协作的开源数据库平台。',
+ description: 'openGauss是一个高性能、高安全、高可用、高智能的企业级开源关系数据库。openGauss也是一个鼓励社区贡献和协作的开源数据库平台。',
},
- '/en/': {
+ en: {
+ label: 'English',
lang: 'en',
title: 'openGauss',
description:
diff --git a/app/en/blogs/2022/Setting-up-One-Primary-and-Two-Standby-openGauss-Databases-on-Kubernetes.md b/app/en/blogs/2022/Setting-up-One-Primary-and-Two-Standby-openGauss-Databases-on-Kubernetes.md
index 6d13763050ea575dbb212bac43cf96be7d27aa19..a5d9bb97b784c19ba1d5bced88cc37d952a7a835 100644
--- a/app/en/blogs/2022/Setting-up-One-Primary-and-Two-Standby-openGauss-Databases-on-Kubernetes.md
+++ b/app/en/blogs/2022/Setting-up-One-Primary-and-Two-Standby-openGauss-Databases-on-Kubernetes.md
@@ -162,7 +162,7 @@ After the operation is successful, retain the following information for later us
```
kubeadm join ***.***.***.***:6443 --token ru2883.u4rhwkx5oqrol9at \
- --discovery-token-ca-cert-hash sha256:f2dbe7ce49b322e8145b6e9b4303e56468ad1352daabecb797f7bd161a64e018
+ --discovery-token-ca-cert-hash sha256:******"
```
Perform initialization.
@@ -185,7 +185,7 @@ After the node is installed, it does not need to be initialized. Run the **kubea
```
kubeadm join ***.***.***.***:6443 --token ru2883.u4rhwkx5oqrol9at \
- --discovery-token-ca-cert-hash sha256:f2dbe7ce49b322e8145b6e9b4303e56468ad1352daabecb797f7bd161a64e018
+ --discovery-token-ca-cert-hash sha256:******"
```
## 8. Import images as **master** and **node**.
@@ -327,7 +327,7 @@ spec:
- name: PORT
value: "5432"
- name: GS_PASSWORD
- value: "Test@56789"
+ value: "******"
- name: SERVER_MODE
value: primary
- name: db_config
@@ -374,7 +374,7 @@ spec:
- name: PORT
value: "5432"
- name: GS_PASSWORD
- value: "Test@56789"
+ value: "******""
- name: SERVER_MODE
value: standby
- name: db_config
@@ -421,7 +421,7 @@ spec:
- name: PORT
value: "5432"
- name: GS_PASSWORD
- value: "Test@56789"
+ value: "******""
- name: SERVER_MODE
value: standby
- name: db_config
diff --git a/app/en/blogs/2022/Using-pg_chameleon-to-Migrate-Data-from-MySQL-to-openGauss.md b/app/en/blogs/2022/Using-pg_chameleon-to-Migrate-Data-from-MySQL-to-openGauss.md
index 38ee7fefe5eb5ef681099aec968d269b8546c8da..d6497b5908d6d14896e8734e4976ecd7c8afdb9a 100644
--- a/app/en/blogs/2022/Using-pg_chameleon-to-Migrate-Data-from-MySQL-to-openGauss.md
+++ b/app/en/blogs/2022/Using-pg_chameleon-to-Migrate-Data-from-MySQL-to-openGauss.md
@@ -75,7 +75,7 @@ pg_conn:
host: "1.1.1.1"
port: "5432"
user: "opengauss_test"
- password: "********_***"
+ password: "******"
database: "opengauss_database"
charset: "utf8"
sources:
@@ -84,7 +84,7 @@ sources:
host: "1.1.1.1"
port: "3306"
user: "mysql_test"
- password: "***********"
+ password: "******"
charset: 'utf8'
connect_timeout: 10
schema_mappings:
@@ -110,9 +110,9 @@ sources:
keep_existing_schema: No
```
-The preceding configuration file indicates that the username and password for connecting to MySQL are **mysql_test** and **password123** respectively during data migration. The IP address and port number of the MySQL server are 1.1.1.1 and 3306, respectively. The source database is **mysql_database**.
+The preceding configuration file indicates that the username and password for connecting to MySQL are **mysql_test** and **xxxxxx** respectively during data migration. The IP address and port number of the MySQL server are 1.1.1.1 and 3306, respectively. The source database is **mysql_database**.
-The username and password for connecting to openGauss are **opengauss_test** and **********_*****, respectively. The IP address and port number of the openGauss server are 1.1.1.1 and 5432, respectively. The target database is **opengauss_database**. The **sch_mysql_database** schema is created in **opengauss_database**, and all tables to be migrated are in this schema.
+The username and password for connecting to openGauss are **opengauss_test** and **xxxxxx**, respectively. The IP address and port number of the openGauss server are 1.1.1.1 and 5432, respectively. The target database is **opengauss_database**. The **sch_mysql_database** schema is created in **opengauss_database**, and all tables to be migrated are in this schema.
Note that the user must have the permission to remotely connect to MySQL and openGauss as well as the read and write permissions on the corresponding databases. For openGauss, the host where pg_chameleon runs must be in the remote access whitelist of openGauss. For MySQL, the user must have the **RELOAD**, **REPLICATION CLIENT**, and **REPLICATION SLAVE** permissions.
diff --git a/app/en/blogs/2022/Using-pgloader-to-Migrate-Data-from-MySQL-to-openGauss.md b/app/en/blogs/2022/Using-pgloader-to-Migrate-Data-from-MySQL-to-openGauss.md
index 915feb1666fc46329f03264312eab4243f0ec859..69cbfc772d2f6fa32617429991950aa58bdcad4a 100644
--- a/app/en/blogs/2022/Using-pgloader-to-Migrate-Data-from-MySQL-to-openGauss.md
+++ b/app/en/blogs/2022/Using-pgloader-to-Migrate-Data-from-MySQL-to-openGauss.md
@@ -85,7 +85,7 @@ The following is an example of the configuration file for migrating data from My
```
LOAD DATABASE
-FROM mysql://mysql_test:password123@1.1.1.1:3306/mysql_database
+FROM mysql://mysql_test:******@1.1.1.1:3306/mysql_database
INTO postgresql://opengauss_test:********_***@1.1.1.1:5432/opengauss_database
WITH include drop, create tables, create indexes, reset no sequences,
@@ -96,7 +96,7 @@ WITH include drop, create tables, create indexes, reset no sequences,
type varchar when(= 1 precision) to "boolean" drop typemod keep default keep not null;
```
-The preceding configuration file indicates that the username and password for connecting to MySQL are **mysql_test** and **password123** respectively during data migration. The IP address and port number of the MySQL server are **1.1.1.1** and **3306**, respectively. The source database is **mysql_database**.
+The preceding configuration file indicates that the username and password for connecting to MySQL are **mysql_test** and **xxxxxx** respectively during data migration. The IP address and port number of the MySQL server are **1.1.1.1** and **3306**, respectively. The source database is **mysql_database**.
The username and password for connecting to openGauss are **opengauss_test** and **********_*****, respectively. The IP address and port number of the openGauss server are **1.1.1.1** and **5432**, respectively, and the target database is **opengauss_database**.
diff --git a/app/vite.config.js b/app/vite.config.js
index 96ff955a8b966eda1ba05802d43a1bcc45a630c4..3767d0a6e82b690a4ad8017513c2573c42cdb5c2 100644
--- a/app/vite.config.js
+++ b/app/vite.config.js
@@ -25,9 +25,7 @@ export default defineConfig({
Icons({
compiler: 'vue3',
customCollections: {
- app: FileSystemIconLoader(
- path.resolve(__dirname, './.vitepress/src/assets/svg-icons')
- ),
+ app: FileSystemIconLoader(path.resolve(__dirname, './.vitepress/src/assets/svg-icons')),
},
}),
],
diff --git "a/app/zh/blogs/2022/MOGDB-openGauss\346\225\260\346\215\256\345\272\223gs_dump\345\244\207\344\273\275\350\204\232\346\234\254\345\217\212\345\244\207\344\273\275\346\270\205\347\220\206.md" "b/app/zh/blogs/2022/MOGDB-openGauss\346\225\260\346\215\256\345\272\223gs_dump\345\244\207\344\273\275\350\204\232\346\234\254\345\217\212\345\244\207\344\273\275\346\270\205\347\220\206.md"
index 176547c66d1a1f6c867a06fefa156a79cb5009fa..94a3787cb72a27e9f33f87facbaf8532dadd3a7a 100644
--- "a/app/zh/blogs/2022/MOGDB-openGauss\346\225\260\346\215\256\345\272\223gs_dump\345\244\207\344\273\275\350\204\232\346\234\254\345\217\212\345\244\207\344\273\275\346\270\205\347\220\206.md"
+++ "b/app/zh/blogs/2022/MOGDB-openGauss\346\225\260\346\215\256\345\272\223gs_dump\345\244\207\344\273\275\350\204\232\346\234\254\345\217\212\345\244\207\344\273\275\346\270\205\347\220\206.md"
@@ -38,7 +38,7 @@ times: '12:30'
export GAUSSDATA=/gaussdb/data/dn1
export PATH=$PGHOME/bin:$PATH
DUMP_USER=ysla
- DUMP_PASSWORD='1qaz@WSX'
+ DUMP_PASSWORD='******'
CUR_DATE=`date "+%Y-%m-%d-%H%M"`
dbnamelist=`cat oo.txt`
diff --git "a/app/zh/blogs/2022/\345\237\272\344\272\216openGauss\345\255\246\344\271\240Docker.md" "b/app/zh/blogs/2022/\345\237\272\344\272\216openGauss\345\255\246\344\271\240Docker.md"
index 4ff79ac20273c07856a18f45331477f908975559..e9827f7be48e8709edea86366213484931c1d798 100644
--- "a/app/zh/blogs/2022/\345\237\272\344\272\216openGauss\345\255\246\344\271\240Docker.md"
+++ "b/app/zh/blogs/2022/\345\237\272\344\272\216openGauss\345\255\246\344\271\240Docker.md"
@@ -322,7 +322,7 @@ Docker 利用的是宿主机的内核,vm 需要虚拟机操作系统
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
- omm=# CREATE USER tpcc_usr WITH PASSWORD "****@***4";
+ omm=# CREATE USER tpcc_usr WITH PASSWORD "******";
NOTICE: The encrypted password contains MD5 ciphertext, which is not secure.
CREATE ROLE
omm=# alter user tpcc_usr sysadmin;
@@ -420,7 +420,7 @@ Docker 利用的是宿主机的内核,vm 需要虚拟机操作系统
```
# 容器名opengauss2,端口映射为5433,使用镜像ID是1e760f8f2f3d
- [root@mogdb ~]# docker run --name opengauss2 --privileged=true -d -e GS_PASSWORD=****@*** -p 5433:5432 1e760f8f2f3d
+ [root@mogdb ~]# docker run --name opengauss2 --privileged=true -d -e GS_PASSWORD=****** -p 5433:5432 1e760f8f2f3d
0a1c49aaa9114f19e33fef20753be092f923ffe558aa1d4251c55d3948dff486
[root@mogdb ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
diff --git "a/app/zh/blogs/ArsuKron/2022-11-21-openGauss\346\225\260\346\215\256\345\272\223\344\275\277\347\224\250\345\210\206\344\272\253-01.md" "b/app/zh/blogs/ArsuKron/2022-11-21-openGauss\346\225\260\346\215\256\345\272\223\344\275\277\347\224\250\345\210\206\344\272\253-01.md"
index 9369dfa6d819d006d41315f86f8ffe41b8bb075b..d8ace8cd46a36da1314ebf3685ef37a4aa2d00f4 100644
--- "a/app/zh/blogs/ArsuKron/2022-11-21-openGauss\346\225\260\346\215\256\345\272\223\344\275\277\347\224\250\345\210\206\344\272\253-01.md"
+++ "b/app/zh/blogs/ArsuKron/2022-11-21-openGauss\346\225\260\346\215\256\345\272\223\344\275\277\347\224\250\345\210\206\344\272\253-01.md"
@@ -81,10 +81,10 @@ gsql -d postgres -p 26000
**补充:**
-1. 第一次连接数据库时候,需要先修改 omm 用户密码,新密码要求包含大小写、字符和数字,假设我这里设置密码为 Bigdata@123
+1. 第一次连接数据库时候,需要先修改 omm 用户密码,新密码要求包含大小写、字符和数字,假设我这里设置密码为 ******
```
- postgres=# alter role omm identified by 'Bigdata@123' replace '*********@***';
+ postgres=# alter role omm identified by '******' replace '*********@***';
ALTER ROLE
```
@@ -93,11 +93,11 @@ gsql -d postgres -p 26000
默认只有 openGauss 安装时创建的管理员用户可以访问初始数据库,您还可以创建其他数据库用户帐号。
```
- postgres=# CREATE USER tbug WITH PASSWORD "Bigdata@123";
+ postgres=# CREATE USER tbug WITH PASSWORD "******";
CREATE ROLE
```
- 如上创建了一个用户名为 tbug,密码为 Bigdata@123 的用户。
+ 如上创建了一个用户名为 tbug,密码为 ****** 的用户。
3. 创建数据库
@@ -117,7 +117,7 @@ gsql -d postgres -p 26000
步骤一:连接上自己创建的数据库
```
-gsql -d db1 -p 26000 -U tbug -W Bigdata@123 -r
+gsql -d db1 -p 26000 -U tbug -W ****** -r
```
diff --git "a/app/zh/blogs/July/JDBC\351\251\261\345\212\250\350\277\236\346\216\245MogDB-opengauss.md" "b/app/zh/blogs/July/JDBC\351\251\261\345\212\250\350\277\236\346\216\245MogDB-opengauss.md"
index e739c228b990c590798f0217097c222b81b5a829..ee3bfdf7fcb7ea38dd9a2ca6277d456af8194a07 100644
--- "a/app/zh/blogs/July/JDBC\351\251\261\345\212\250\350\277\236\346\216\245MogDB-opengauss.md"
+++ "b/app/zh/blogs/July/JDBC\351\251\261\345\212\250\350\277\236\346\216\245MogDB-opengauss.md"
@@ -58,7 +58,7 @@ gs_om -t start
```
postgres=# create database jdbc_db;
CREATE DATABASE
-postgres=# create user jdbc_usr password 'jdbc@123';
+postgres=# create user jdbc_usr password '******';
NOTICE: The encrypted password contains MD5 ciphertext, which is not secure.
CREATE ROLE
postgres=# alter user jdbc_usr sysadmin;
@@ -91,7 +91,7 @@ public class ConnTest {
try {
//创建数据库连接。
- conn = DriverManager.getConnection(sourceURL,"jdbc_usr", "jdbc@123");
+ conn = DriverManager.getConnection(sourceURL,"jdbc_usr", "******");
System.out.println("连接成功!");
} catch (Exception e) {
e.printStackTrace();
@@ -132,7 +132,7 @@ public class ConnTest {
*/
public static void main(String[] args) {
//创建数据库连接。
- Connection conn = GetConnection("jdbc_usr", "jdbc@123");
+ Connection conn = GetConnection("jdbc_usr", "******");
Select(conn);
//关闭数据库连接。
try {
diff --git "a/app/zh/blogs/July/openGauss\345\244\207\344\273\275\346\201\242\345\244\215.md" "b/app/zh/blogs/July/openGauss\345\244\207\344\273\275\346\201\242\345\244\215.md"
index 3467c83b6e4ffb55c9b64384e5c4999063a71965..9322e78e9592dd7f81ca6b79e2871315c9801a3f 100644
--- "a/app/zh/blogs/July/openGauss\345\244\207\344\273\275\346\201\242\345\244\215.md"
+++ "b/app/zh/blogs/July/openGauss\345\244\207\344\273\275\346\201\242\345\244\215.md"
@@ -27,7 +27,7 @@ times: '12:30'
```
docker run --name brm_opengauss \
- --privileged=true -d -e GS_PASSWORD=mtkOP@123 \
+ --privileged=true -d -e GS_PASSWORD=****** \
-v `pwd`/conf/brm.yaml:/etc/brm.yaml \
-v `pwd`/var/lib/brm:/var/lib/brm \
-v `pwd`/var/log/brm:/var/log/brm \
@@ -38,7 +38,7 @@ times: '12:30'
```
docker run --name brm_opengauss_1230 \
- --privileged=true -d -e GS_PASSWORD=mtkOP@123 \
+ --privileged=true -d -e GS_PASSWORD=****** \
-v `pwd`/conf/brm.yaml:/etc/brm.yaml \
-v `pwd`/var/lib/brm:/var/lib/brm \
-v `pwd`/var/log/brm:/var/log/brm \
diff --git "a/app/zh/blogs/July/openGauss\345\256\211\350\243\205\344\270\216JDBC\350\277\236\346\216\245\357\274\210\344\274\201\344\270\232\347\211\210\357\274\211.md" "b/app/zh/blogs/July/openGauss\345\256\211\350\243\205\344\270\216JDBC\350\277\236\346\216\245\357\274\210\344\274\201\344\270\232\347\211\210\357\274\211.md"
index d4891ef1cd8aa91c9c699cede191437612f736ba..8e99392b3f343b68e489c06fbe6b5e61bb8c59d3 100644
--- "a/app/zh/blogs/July/openGauss\345\256\211\350\243\205\344\270\216JDBC\350\277\236\346\216\245\357\274\210\344\274\201\344\270\232\347\211\210\357\274\211.md"
+++ "b/app/zh/blogs/July/openGauss\345\256\211\350\243\205\344\270\216JDBC\350\277\236\346\216\245\357\274\210\344\274\201\344\270\232\347\211\210\357\274\211.md"
@@ -237,7 +237,7 @@ times: '12:30'
需先本地连接数据库,并在数据库中使用如下语句建立“jack”用户:
```
- postgres=# CREATE USER jack PASSWORD 'Test@123';
+ postgres=# CREATE USER jack PASSWORD '******';
```
允许客户端以“jack”用户连接到本机,此处远程连接禁止使用
diff --git "a/app/zh/blogs/angryart/\343\200\220\346\210\221\344\270\216openGauss\347\232\204\346\225\205\344\272\213\343\200\221\345\271\262\350\264\247\350\276\223\345\207\272\343\200\220SpringBoot-OpenGauss3\345\274\200\345\217\221\345\205\245\351\227\250\343\200\221.md" "b/app/zh/blogs/angryart/\343\200\220\346\210\221\344\270\216openGauss\347\232\204\346\225\205\344\272\213\343\200\221\345\271\262\350\264\247\350\276\223\345\207\272\343\200\220SpringBoot-OpenGauss3\345\274\200\345\217\221\345\205\245\351\227\250\343\200\221.md"
index 49ff5b2120aebbf2093a3faf81a562856dcf0297..a42754f09878073b54fa994a9739685060d63515 100644
--- "a/app/zh/blogs/angryart/\343\200\220\346\210\221\344\270\216openGauss\347\232\204\346\225\205\344\272\213\343\200\221\345\271\262\350\264\247\350\276\223\345\207\272\343\200\220SpringBoot-OpenGauss3\345\274\200\345\217\221\345\205\245\351\227\250\343\200\221.md"
+++ "b/app/zh/blogs/angryart/\343\200\220\346\210\221\344\270\216openGauss\347\232\204\346\225\205\344\272\213\343\200\221\345\271\262\350\264\247\350\276\223\345\207\272\343\200\220SpringBoot-OpenGauss3\345\274\200\345\217\221\345\205\245\351\227\250\343\200\221.md"
@@ -19,7 +19,7 @@ summary: 'SpringBoot+openGauss开发入门'
```shell
groupadd dbgroup
useradd -g dbgroup omm # 可后面安装时创建
-passwd omm #设置密码为Gauss_1234
+passwd omm #设置密码为******
```
diff --git "a/app/zh/blogs/awei/openGauss\345\256\211\350\243\205-\350\277\236\346\216\245.md" "b/app/zh/blogs/awei/openGauss\345\256\211\350\243\205-\350\277\236\346\216\245.md"
index f52788a0ef03540c2c90daebc169ec4548a818a2..95501ef7fb48af5ec89daa99e936dd1758d11c60 100644
--- "a/app/zh/blogs/awei/openGauss\345\256\211\350\243\205-\350\277\236\346\216\245.md"
+++ "b/app/zh/blogs/awei/openGauss\345\256\211\350\243\205-\350\277\236\346\216\245.md"
@@ -266,7 +266,7 @@ IP。
- 需先本地连接数据库,并在数据库中使用如下语句建立“jack”用户:
- `postgres=# CREATE USER jack PASSWORD 'Test@123';`
+ `postgres=# CREATE USER jack PASSWORD '******';`
- 允许客户端以“jack”用户连接到本机,此处远程连接禁止使用
diff --git a/app/zh/blogs/buter/k8Sinit_guide.md b/app/zh/blogs/buter/k8Sinit_guide.md
index 22491f80407792ef5fddbc7a7055b485d24f5b1c..b19edd035f496350ce746c45823cc752410db137 100644
--- a/app/zh/blogs/buter/k8Sinit_guide.md
+++ b/app/zh/blogs/buter/k8Sinit_guide.md
@@ -136,7 +136,7 @@ apiServer:
```
kubeadm join ***.***.***.***:6443 --token ru2883.u4rhwkx5oqrol9at \
- --discovery-token-ca-cert-hash sha256:f2dbe7ce49b322e8145b6e9b4303e56468ad1352daabecb797f7bd161a64e018
+ --discovery-token-ca-cert-hash sha256:******
```
初始化
@@ -157,7 +157,7 @@ Node 节点执行完安装后无需初始化,执行`kubeadm join`命令加入
```
kubeadm join ***.***.***.***:6443 --token ru2883.u4rhwkx5oqrol9at \
- --discovery-token-ca-cert-hash sha256:f2dbe7ce49b322e8145b6e9b4303e56468ad1352daabecb797f7bd161a64e018
+ --discovery-token-ca-cert-hash sha256:******
```
## 8. 导入镜像(master 和 node 节点)
@@ -297,7 +297,7 @@ spec:
- name: PORT
value: "5432"
- name: GS_PASSWORD
- value: "Test@56789"
+ value: "******"
- name: SERVER_MODE
value: primary
- name: db_config
@@ -344,7 +344,7 @@ spec:
- name: PORT
value: "5432"
- name: GS_PASSWORD
- value: "Test@56789"
+ value: "******"
- name: SERVER_MODE
value: standby
- name: db_config
@@ -391,7 +391,7 @@ spec:
- name: PORT
value: "5432"
- name: GS_PASSWORD
- value: "Test@56789"
+ value: "******"
- name: SERVER_MODE
value: standby
- name: db_config
diff --git a/app/zh/blogs/cchen676/gs_initdb_withconf.sh b/app/zh/blogs/cchen676/gs_initdb_withconf.sh
deleted file mode 100644
index f5f5ac87ecb0a1c0de1fbf64ba14d07de463d01b..0000000000000000000000000000000000000000
--- a/app/zh/blogs/cchen676/gs_initdb_withconf.sh
+++ /dev/null
@@ -1,184 +0,0 @@
-#!/bin/bash
-#-------------------------------------------------------------------------
-#
-# gs_initdb_withconf.sh
-# script to initdb with ability to backup and restore the old configuration files
-#
-#-------------------------------------------------------------------------
-#######################################################################
-## print help information
-#######################################################################
-function print_help()
-{
- echo "Usage:
- gs_initdb_withconf [-o OLDDDATADIR] [OPTION]... [DATADIR]
-
-Options:
- -A, --auth=METHOD default authentication method for local connections
- --auth-host=METHOD default authentication method for local TCP/IP connections
- --auth-local=METHOD default authentication method for local-socket connections
- [-D, --pgdata=]DATADIR location for this database cluster
- --nodename=NODENAME name of single node initialized
- -E, --encoding=ENCODING set default encoding for new databases
- --locale=LOCALE set default locale for new databases
- --dbcompatibility=DBCOMPATIBILITY set default dbcompatibility for new database
- --lc-collate=, --lc-ctype=, --lc-messages=LOCALE
- --lc-monetary=, --lc-numeric=, --lc-time=LOCALE
- set default locale in the respective category for
- new databases (default taken from environment)
- --no-locale equivalent to --locale=C
- --pwfile=FILE read password for the new system admin from file
- -T, --text-search-config=CFG
- default text search configuration
- -U, --username=NAME database system admin name
- -W, --pwprompt prompt for a password for the new system admin
- -w, --pwpasswd=PASSWD get password from command line for the new system admin
- -C, --enpwdfiledir=DIR get encrypted password of AES128 from cipher and rand file
- -X, --xlogdir=XLOGDIR location for the transaction log directory
- -S, --security remove normal user's privilege on public schema in security mode
-
-Less commonly used options:
- -d, --debug generate lots of debugging output
- -L DIRECTORY where to find the input files
- -n, --noclean do not clean up after errors
- -s, --show show internal settings
- -o, --olddir set the old data directory for backup and restore the old configuration file and cert file
-
-Other options:
- -H, --host-ip node_host of Postgres-XC node initialized
- -V, --version output version information, then exit
- -h, --help show this help, then exit
-"
-}
-
-if [ $# = 0 ] ; then
- echo "missing option"
- print_help
- exit 1
-fi
-
-para_for_initdb_t=$*
-new_data_dir=""
-
-while [ $# -gt 0 ]; do
- case "$1" in
- -h|--help)
- print_help
- exit 1
- ;;
- -o|--olddir)
- if [ "$2"X = X ]; then
- echo "no given the old data directory values"
- exit 1
- fi
- old_data_dir=$2
- shift 2
- ;;
- -D)
- if [ "$2"X = X ]; then
- echo "no given the new data directory values"
- exit 1
- fi
- new_data_dir=$2
- shift 2
- ;;
- --pgdata=*)
- tmp=$1
- if [ ${tmp/--pgdata=/}X = X ]; then
- echo "no given the new data directory values"
- exit 1
- fi
- new_data_dir=${tmp/--pgdata=/}
- shift 1
- ;;
- -X)
- if [ "$2"X = X ]; then
- echo "no given the new xlog directory values"
- exit 1
- fi
- shift 2
- ;;
- -C)
- if [ "$2"X = X ]; then
- echo "no given the new AES128 encrypted password directory values"
- exit 1
- fi
- shift 2
- ;;
- -L)
- if [ "$2"X = X ]; then
- echo "no given the new shared directory values"
- exit 1
- fi
- shift 2
- ;;
- /*)
- if [ "${new_data_dir}"X = X ]; then
- new_data_dir=$1
- fi
- shift 1
- ;;
- *)
- shift 1
- esac
-done
-
-if [ "${old_data_dir}"X = X ]; then
- echo "no given the old data directory values"
- exit 1
-fi
-if [ "${new_data_dir}"X = X ]; then
- echo "no given the new date directory values"
- exit 1
-fi
-if [ ! -d "${old_data_dir}" ]; then
- echo "the old data directory doesn't exist!"
- exit 1
-fi
-
-para_for_initdb=${para_for_initdb_t/-o ${old_data_dir}/}
-
-if [ "${para_for_initdb}"X = X ]; then
- echo "no given the parameters of gs_initdb, exit"
- exit 1
-fi
-
-declare -a file_list=("cacert.pem" "server.crt" "server.key" "server.key.cipher" "server.key.rand" \
- "postgresql.conf" "mot.conf" "pg_ident.conf" "pg_hba.conf")
-declare -a new_file_list
-
-function check_file()
-{
- for e in ${file_list[@]}
- do
- if [ ! -f "${old_data_dir}/$e" ]; then
- echo "${old_data_dir}/$e doesn't exist! Will not copy it!"
- continue
- fi
- new_file_list[${#new_file_list[*]}]=${old_data_dir}/$e
- done
-}
-
-function copy_file()
-{
- for e in ${new_file_list[@]}
- do
- cp -p $e ${new_data_dir}
- if [ $? -ne 0 ]; then
- echo "copy $e to ${new_data_dir} failed."
- fi
- done
-}
-
-check_file
-which gs_initdb >/dev/null 2>&1
-if [ $? -ne 0 ]; then
- echo "can't find gs_initdb command. please import the env first!"
-fi
-gs_initdb ${para_for_initdb}
-if [ $? -ne 0 ]; then
- echo "gs_initdb failed! exit!"
- exit 1
-fi
-copy_file
-echo "run gs_initdb_withconf finished!"
diff --git "a/app/zh/blogs/cchen676/openGauss_\344\275\277\347\224\250gs_initdb\346\227\266\344\277\235\347\225\231\346\227\247\351\205\215\347\275\256 .md" "b/app/zh/blogs/cchen676/openGauss_\344\275\277\347\224\250gs_initdb\346\227\266\344\277\235\347\225\231\346\227\247\351\205\215\347\275\256 .md"
index 2485401cdaff86d25895201b3e1f55571ac8a4d5..f4ed712a3dea76447da0c8d40fd40e2ff7a39b53 100644
--- "a/app/zh/blogs/cchen676/openGauss_\344\275\277\347\224\250gs_initdb\346\227\266\344\277\235\347\225\231\346\227\247\351\205\215\347\275\256 .md"
+++ "b/app/zh/blogs/cchen676/openGauss_\344\275\277\347\224\250gs_initdb\346\227\266\344\277\235\347\225\231\346\227\247\351\205\215\347\275\256 .md"
@@ -32,4 +32,190 @@ times: '16:30'
4. 执行方式为 **_./gs_initdb_withconf.sh -o old_data_dir new_data_dir --nodename=example_node_**
5. 其实在-o old_data_dir 之后的参数即 gs_initdb 的参数,会直接传给 gs_initdb
-[脚本链接](./gs_initdb_withconf.sh)
+```sh
+#!/bin/bash
+#-------------------------------------------------------------------------
+#
+# gs_initdb_withconf.sh
+# script to initdb with ability to backup and restore the old configuration files
+#
+#-------------------------------------------------------------------------
+#######################################################################
+## print help information
+#######################################################################
+function print_help()
+{
+ echo "Usage:
+ gs_initdb_withconf [-o OLDDDATADIR] [OPTION]... [DATADIR]
+
+Options:
+ -A, --auth=METHOD default authentication method for local connections
+ --auth-host=METHOD default authentication method for local TCP/IP connections
+ --auth-local=METHOD default authentication method for local-socket connections
+ [-D, --pgdata=]DATADIR location for this database cluster
+ --nodename=NODENAME name of single node initialized
+ -E, --encoding=ENCODING set default encoding for new databases
+ --locale=LOCALE set default locale for new databases
+ --dbcompatibility=DBCOMPATIBILITY set default dbcompatibility for new database
+ --lc-collate=, --lc-ctype=, --lc-messages=LOCALE
+ --lc-monetary=, --lc-numeric=, --lc-time=LOCALE
+ set default locale in the respective category for
+ new databases (default taken from environment)
+ --no-locale equivalent to --locale=C
+ --pwfile=FILE read password for the new system admin from file
+ -T, --text-search-config=CFG
+ default text search configuration
+ -U, --username=NAME database system admin name
+ -W, --pwprompt prompt for a password for the new system admin
+ -w, --pwpasswd=PASSWD get password from command line for the new system admin
+ -C, --enpwdfiledir=DIR get encrypted password of AES128 from cipher and rand file
+ -X, --xlogdir=XLOGDIR location for the transaction log directory
+ -S, --security remove normal user's privilege on public schema in security mode
+
+Less commonly used options:
+ -d, --debug generate lots of debugging output
+ -L DIRECTORY where to find the input files
+ -n, --noclean do not clean up after errors
+ -s, --show show internal settings
+ -o, --olddir set the old data directory for backup and restore the old configuration file and cert file
+
+Other options:
+ -H, --host-ip node_host of Postgres-XC node initialized
+ -V, --version output version information, then exit
+ -h, --help show this help, then exit
+"
+}
+
+if [ $# = 0 ] ; then
+ echo "missing option"
+ print_help
+ exit 1
+fi
+
+para_for_initdb_t=$*
+new_data_dir=""
+
+while [ $# -gt 0 ]; do
+ case "$1" in
+ -h|--help)
+ print_help
+ exit 1
+ ;;
+ -o|--olddir)
+ if [ "$2"X = X ]; then
+ echo "no given the old data directory values"
+ exit 1
+ fi
+ old_data_dir=$2
+ shift 2
+ ;;
+ -D)
+ if [ "$2"X = X ]; then
+ echo "no given the new data directory values"
+ exit 1
+ fi
+ new_data_dir=$2
+ shift 2
+ ;;
+ --pgdata=*)
+ tmp=$1
+ if [ ${tmp/--pgdata=/}X = X ]; then
+ echo "no given the new data directory values"
+ exit 1
+ fi
+ new_data_dir=${tmp/--pgdata=/}
+ shift 1
+ ;;
+ -X)
+ if [ "$2"X = X ]; then
+ echo "no given the new xlog directory values"
+ exit 1
+ fi
+ shift 2
+ ;;
+ -C)
+ if [ "$2"X = X ]; then
+ echo "no given the new AES128 encrypted password directory values"
+ exit 1
+ fi
+ shift 2
+ ;;
+ -L)
+ if [ "$2"X = X ]; then
+ echo "no given the new shared directory values"
+ exit 1
+ fi
+ shift 2
+ ;;
+ /*)
+ if [ "${new_data_dir}"X = X ]; then
+ new_data_dir=$1
+ fi
+ shift 1
+ ;;
+ *)
+ shift 1
+ esac
+done
+
+if [ "${old_data_dir}"X = X ]; then
+ echo "no given the old data directory values"
+ exit 1
+fi
+if [ "${new_data_dir}"X = X ]; then
+ echo "no given the new date directory values"
+ exit 1
+fi
+if [ ! -d "${old_data_dir}" ]; then
+ echo "the old data directory doesn't exist!"
+ exit 1
+fi
+
+para_for_initdb=${para_for_initdb_t/-o ${old_data_dir}/}
+
+if [ "${para_for_initdb}"X = X ]; then
+ echo "no given the parameters of gs_initdb, exit"
+ exit 1
+fi
+
+declare -a file_list=("cacert.pem" "server.crt" "server.key" "server.key.cipher" "server.key.rand" \
+ "postgresql.conf" "mot.conf" "pg_ident.conf" "pg_hba.conf")
+declare -a new_file_list
+
+function check_file()
+{
+ for e in ${file_list[@]}
+ do
+ if [ ! -f "${old_data_dir}/$e" ]; then
+ echo "${old_data_dir}/$e doesn't exist! Will not copy it!"
+ continue
+ fi
+ new_file_list[${#new_file_list[*]}]=${old_data_dir}/$e
+ done
+}
+
+function copy_file()
+{
+ for e in ${new_file_list[@]}
+ do
+ cp -p $e ${new_data_dir}
+ if [ $? -ne 0 ]; then
+ echo "copy $e to ${new_data_dir} failed."
+ fi
+ done
+}
+
+check_file
+which gs_initdb >/dev/null 2>&1
+if [ $? -ne 0 ]; then
+ echo "can't find gs_initdb command. please import the env first!"
+fi
+gs_initdb ${para_for_initdb}
+if [ $? -ne 0 ]; then
+ echo "gs_initdb failed! exit!"
+ exit 1
+fi
+copy_file
+echo "run gs_initdb_withconf finished!"
+
+```
diff --git "a/app/zh/blogs/cchen676/openGauss_\344\275\277\347\224\250gs_initdb\346\227\266\344\277\235\347\225\231\346\227\247\351\205\215\347\275\256.md" "b/app/zh/blogs/cchen676/openGauss_\344\275\277\347\224\250gs_initdb\346\227\266\344\277\235\347\225\231\346\227\247\351\205\215\347\275\256.md"
index 2485401cdaff86d25895201b3e1f55571ac8a4d5..f4ed712a3dea76447da0c8d40fd40e2ff7a39b53 100644
--- "a/app/zh/blogs/cchen676/openGauss_\344\275\277\347\224\250gs_initdb\346\227\266\344\277\235\347\225\231\346\227\247\351\205\215\347\275\256.md"
+++ "b/app/zh/blogs/cchen676/openGauss_\344\275\277\347\224\250gs_initdb\346\227\266\344\277\235\347\225\231\346\227\247\351\205\215\347\275\256.md"
@@ -32,4 +32,190 @@ times: '16:30'
4. 执行方式为 **_./gs_initdb_withconf.sh -o old_data_dir new_data_dir --nodename=example_node_**
5. 其实在-o old_data_dir 之后的参数即 gs_initdb 的参数,会直接传给 gs_initdb
-[脚本链接](./gs_initdb_withconf.sh)
+```sh
+#!/bin/bash
+#-------------------------------------------------------------------------
+#
+# gs_initdb_withconf.sh
+# script to initdb with ability to backup and restore the old configuration files
+#
+#-------------------------------------------------------------------------
+#######################################################################
+## print help information
+#######################################################################
+function print_help()
+{
+ echo "Usage:
+ gs_initdb_withconf [-o OLDDDATADIR] [OPTION]... [DATADIR]
+
+Options:
+ -A, --auth=METHOD default authentication method for local connections
+ --auth-host=METHOD default authentication method for local TCP/IP connections
+ --auth-local=METHOD default authentication method for local-socket connections
+ [-D, --pgdata=]DATADIR location for this database cluster
+ --nodename=NODENAME name of single node initialized
+ -E, --encoding=ENCODING set default encoding for new databases
+ --locale=LOCALE set default locale for new databases
+ --dbcompatibility=DBCOMPATIBILITY set default dbcompatibility for new database
+ --lc-collate=, --lc-ctype=, --lc-messages=LOCALE
+ --lc-monetary=, --lc-numeric=, --lc-time=LOCALE
+ set default locale in the respective category for
+ new databases (default taken from environment)
+ --no-locale equivalent to --locale=C
+ --pwfile=FILE read password for the new system admin from file
+ -T, --text-search-config=CFG
+ default text search configuration
+ -U, --username=NAME database system admin name
+ -W, --pwprompt prompt for a password for the new system admin
+ -w, --pwpasswd=PASSWD get password from command line for the new system admin
+ -C, --enpwdfiledir=DIR get encrypted password of AES128 from cipher and rand file
+ -X, --xlogdir=XLOGDIR location for the transaction log directory
+ -S, --security remove normal user's privilege on public schema in security mode
+
+Less commonly used options:
+ -d, --debug generate lots of debugging output
+ -L DIRECTORY where to find the input files
+ -n, --noclean do not clean up after errors
+ -s, --show show internal settings
+ -o, --olddir set the old data directory for backup and restore the old configuration file and cert file
+
+Other options:
+ -H, --host-ip node_host of Postgres-XC node initialized
+ -V, --version output version information, then exit
+ -h, --help show this help, then exit
+"
+}
+
+if [ $# = 0 ] ; then
+ echo "missing option"
+ print_help
+ exit 1
+fi
+
+para_for_initdb_t=$*
+new_data_dir=""
+
+while [ $# -gt 0 ]; do
+ case "$1" in
+ -h|--help)
+ print_help
+ exit 1
+ ;;
+ -o|--olddir)
+ if [ "$2"X = X ]; then
+ echo "no given the old data directory values"
+ exit 1
+ fi
+ old_data_dir=$2
+ shift 2
+ ;;
+ -D)
+ if [ "$2"X = X ]; then
+ echo "no given the new data directory values"
+ exit 1
+ fi
+ new_data_dir=$2
+ shift 2
+ ;;
+ --pgdata=*)
+ tmp=$1
+ if [ ${tmp/--pgdata=/}X = X ]; then
+ echo "no given the new data directory values"
+ exit 1
+ fi
+ new_data_dir=${tmp/--pgdata=/}
+ shift 1
+ ;;
+ -X)
+ if [ "$2"X = X ]; then
+ echo "no given the new xlog directory values"
+ exit 1
+ fi
+ shift 2
+ ;;
+ -C)
+ if [ "$2"X = X ]; then
+ echo "no given the new AES128 encrypted password directory values"
+ exit 1
+ fi
+ shift 2
+ ;;
+ -L)
+ if [ "$2"X = X ]; then
+ echo "no given the new shared directory values"
+ exit 1
+ fi
+ shift 2
+ ;;
+ /*)
+ if [ "${new_data_dir}"X = X ]; then
+ new_data_dir=$1
+ fi
+ shift 1
+ ;;
+ *)
+ shift 1
+ esac
+done
+
+if [ "${old_data_dir}"X = X ]; then
+ echo "no given the old data directory values"
+ exit 1
+fi
+if [ "${new_data_dir}"X = X ]; then
+ echo "no given the new date directory values"
+ exit 1
+fi
+if [ ! -d "${old_data_dir}" ]; then
+ echo "the old data directory doesn't exist!"
+ exit 1
+fi
+
+para_for_initdb=${para_for_initdb_t/-o ${old_data_dir}/}
+
+if [ "${para_for_initdb}"X = X ]; then
+ echo "no given the parameters of gs_initdb, exit"
+ exit 1
+fi
+
+declare -a file_list=("cacert.pem" "server.crt" "server.key" "server.key.cipher" "server.key.rand" \
+ "postgresql.conf" "mot.conf" "pg_ident.conf" "pg_hba.conf")
+declare -a new_file_list
+
+function check_file()
+{
+ for e in ${file_list[@]}
+ do
+ if [ ! -f "${old_data_dir}/$e" ]; then
+ echo "${old_data_dir}/$e doesn't exist! Will not copy it!"
+ continue
+ fi
+ new_file_list[${#new_file_list[*]}]=${old_data_dir}/$e
+ done
+}
+
+function copy_file()
+{
+ for e in ${new_file_list[@]}
+ do
+ cp -p $e ${new_data_dir}
+ if [ $? -ne 0 ]; then
+ echo "copy $e to ${new_data_dir} failed."
+ fi
+ done
+}
+
+check_file
+which gs_initdb >/dev/null 2>&1
+if [ $? -ne 0 ]; then
+ echo "can't find gs_initdb command. please import the env first!"
+fi
+gs_initdb ${para_for_initdb}
+if [ $? -ne 0 ]; then
+ echo "gs_initdb failed! exit!"
+ exit 1
+fi
+copy_file
+echo "run gs_initdb_withconf finished!"
+
+```
diff --git "a/app/zh/blogs/cchen676/openGauss_\350\265\204\346\272\220\346\261\240\345\214\226\345\274\200\345\217\221\350\200\205\345\205\245\351\227\250\346\214\207\345\215\227(\344\270\200).md" "b/app/zh/blogs/cchen676/openGauss_\350\265\204\346\272\220\346\261\240\345\214\226\345\274\200\345\217\221\350\200\205\345\205\245\351\227\250\346\214\207\345\215\227(\344\270\200).md"
index 14d6ac6a49dae1b532a2653924356506b0bd23c9..e92906ae9c6417ede4184b3fd1e710d257eeeb0f 100644
--- "a/app/zh/blogs/cchen676/openGauss_\350\265\204\346\272\220\346\261\240\345\214\226\345\274\200\345\217\221\350\200\205\345\205\245\351\227\250\346\214\207\345\215\227(\344\270\200).md"
+++ "b/app/zh/blogs/cchen676/openGauss_\350\265\204\346\272\220\346\261\240\345\214\226\345\274\200\345\217\221\350\200\205\345\205\245\351\227\250\346\214\207\345\215\227(\344\270\200).md"
@@ -58,7 +58,7 @@ openGauss 资源池化是 openGauss 推出的一种新型的集群架构.通过
- 一个 om_pssh.sh 主要用于实现 ssh 时自动输入密码
- 一个 om_install.sh 主要用于实现自动安装
- 需要准备好的是一个集成了 om, cm 和数据库的安装包 (一般 release 的包会包含) , 如果没有的话, 可能需要自己做包, 在编译时带上-pkg 选项, 分别做出来 openGauss, OM 和 CM 的包,再放到一起压缩成集成的安装包
-- 注意, 下面的脚本中以所有需要输入的密码都是"Password"为例
+- 注意, 下面的脚本中以所有需要输入的密码都是"******"为例
- 以下脚本请勿使用于生产环境
- 以下为纯手敲, 博主已经尽力了.
- 如使用中有错误, 建议自行定制修改
@@ -75,12 +75,12 @@ function auto_() {
expect {
"yes/no" { send "yes\n"; exp_continue }
"denied" { exit 1; }
- "*assword" { send "Password\n"; exp_continue }
+ "*assword" { send "******\n"; exp_continue }
"anger*\n*yes*" { send "yes\n"; exp_continue }
"Pdb" { interact }
- "pass phrase for*:" { send "Password\n"; exp_continue }
- "passphrase" { send "Password\n"; exp_continue }
- "database:" { send "Password\n"; exp_continue }
+ "pass phrase for*:" { send "******\n"; exp_continue }
+ "passphrase" { send "******\n"; exp_continue }
+ "database:" { send "******\n"; exp_continue }
}
EOF
}
diff --git "a/app/zh/blogs/dongxiaojie/openGauss6.0\345\215\225\347\202\271\344\274\201\344\270\232\347\211\210\351\203\250\347\275\262_Centos7_x86.md" "b/app/zh/blogs/dongxiaojie/openGauss6.0\345\215\225\347\202\271\344\274\201\344\270\232\347\211\210\351\203\250\347\275\262_Centos7_x86.md"
index 7fcafa35a752565fc25ee54b21bea8531f313d96..913e871f781a814c814d7db4acf97cb1debbcf91 100644
--- "a/app/zh/blogs/dongxiaojie/openGauss6.0\345\215\225\347\202\271\344\274\201\344\270\232\347\211\210\351\203\250\347\275\262_Centos7_x86.md"
+++ "b/app/zh/blogs/dongxiaojie/openGauss6.0\345\215\225\347\202\271\344\274\201\344\270\232\347\211\210\351\203\250\347\275\262_Centos7_x86.md"
@@ -562,7 +562,7 @@ Python 3.6.8
--创建用户组dbgrp
groupadd dbgrp
---创建用户组dbgroup下的普通用户omm,并设置密码为Gauss_234
+--创建用户组dbgroup下的普通用户omm,并设置密码为******
useradd -g dbgrp omm
passwd omm
```
diff --git a/app/zh/blogs/douxin/JDBC_usage_compile.md b/app/zh/blogs/douxin/JDBC_usage_compile.md
index 69dbbf248deaed5002867355de20335f890424c0..d02b9d115d698a1aa0a6cf083db902b8825948e1 100644
--- a/app/zh/blogs/douxin/JDBC_usage_compile.md
+++ b/app/zh/blogs/douxin/JDBC_usage_compile.md
@@ -64,7 +64,7 @@ times: '17:30'
String driver = "org.postgresql.Driver";
String sourceURL = "jdbc:postgresql://***.***.***.***:5432/postgres";
String userName = "tpcc";
- String password = "password";
+ String password = "******";
try {
// 1. 加载驱动程序
diff --git a/app/zh/blogs/douxin/haproxy_for_opengauss.md b/app/zh/blogs/douxin/haproxy_for_opengauss.md
index b1d921fd0b108e6034bbc287d627a354d6d5b3ea..178b96aacbd4fec13a61e6cc5c3ecba04ef888b3 100644
--- a/app/zh/blogs/douxin/haproxy_for_opengauss.md
+++ b/app/zh/blogs/douxin/haproxy_for_opengauss.md
@@ -34,7 +34,61 @@ times: '17:30'
- listen :frontend和backend的组合体。
```
-- 在 HAProxy 配置文件中,[HAProxy 完整配置文件链接](../image/haproxy/haproxy.cfg),我们定义了两个 listen 模块,名称分别为 opengauss 和 opengauss_balance,对应集群主机的写操作和备机的读操作及负载均衡。在 listen 模块中,使用 server 关键字设置后端服务器,即设置 Patroni 管理的 openGauss 集群中各个数据库节点的 ip 和端口号,即可将数据库节点的信息加入到 HAProxy 的管理中。
+- 在 HAProxy 配置文件中, 我们定义了两个 listen 模块,名称分别为 opengauss 和 opengauss_balance,对应集群主机的写操作和备机的读操作及负载均衡。在 listen 模块中,使用 server 关键字设置后端服务器,即设置 Patroni 管理的 openGauss 集群中各个数据库节点的 ip 和端口号,即可将数据库节点的信息加入到 HAProxy 的管理中。
+
+```
+global
+ maxconn 100
+
+defaults
+ log global
+ mode tcp
+ retries 2
+ timeout client 30m
+ timeout connect 4s
+ timeout server 30m
+ timeout check 5s
+
+listen stats
+ mode http
+ bind *:7000
+ stats enable
+ stats uri /
+
+listen opengauss
+ bind *:5000
+ option httpchk
+ http-check expect status 200
+ default-server inter 3s fall 3 rise 2 on-marked-down shutdown-sessions
+ # server opengauss_ip0_port0 ip0:port0 maxconn 100 check port 8008
+ # server opengauss_ip1_port1 ip1:port1 maxconn 100 check port 8008
+ # server opengauss_ip2_port2 ip2:port2 maxconn 100 check port 8008
+ # server opengauss_ip3_port3 ip3:port3 maxconn 100 check port 8008
+ # server opengauss_ip4_port4 ip4:port4 maxconn 100 check port 8008
+ # server opengauss_ip5_port5 ip5:port5 maxconn 100 check port 8008
+ # server opengauss_ip6_port6 ip6:port6 maxconn 100 check port 8008
+ # server opengauss_ip7_port7 ip7:port7 maxconn 100 check port 8008
+ # server opengauss_ip8_port8 ip8:port8 maxconn 100 check port 8008
+
+listen opengauss_balance
+ bind *:5001
+ mode tcp
+ option tcplog
+ balance roundrobin
+ option httpchk OPTIONS /replica
+ http-check expect status 200
+ default-server inter 3s fall 3 rise 2 on-marked-down shutdown-sessions
+ # server opengauss_ip0_port0 ip0:port0 maxconn 100 check port 8008 inter 5000 rise 2 fall 2
+ # server opengauss_ip1_port1 ip1:port1 maxconn 100 check port 8008 inter 5000 rise 2 fall 2
+ # server opengauss_ip2_port2 ip2:port2 maxconn 100 check port 8008 inter 5000 rise 2 fall 2
+ # server opengauss_ip3_port3 ip3:port3 maxconn 100 check port 8008 inter 5000 rise 2 fall 2
+ # server opengauss_ip4_port4 ip4:port4 maxconn 100 check port 8008 inter 5000 rise 2 fall 2
+ # server opengauss_ip5_port5 ip5:port5 maxconn 100 check port 8008 inter 5000 rise 2 fall 2
+ # server opengauss_ip6_port6 ip6:port6 maxconn 100 check port 8008 inter 5000 rise 2 fall 2
+ # server opengauss_ip7_port7 ip7:port7 maxconn 100 check port 8008 inter 5000 rise 2 fall 2
+ # server opengauss_ip8_port8 ip8:port8 maxconn 100 check port 8008 inter 5000 rise 2 fall 2
+
+```
### 2.1 主机的写操作配置
diff --git a/app/zh/blogs/douxin/image/haproxy/haproxy.cfg b/app/zh/blogs/douxin/image/haproxy/haproxy.cfg
deleted file mode 100644
index d6544c3b47e9048f5a323df2b88c4c59a691d55a..0000000000000000000000000000000000000000
--- a/app/zh/blogs/douxin/image/haproxy/haproxy.cfg
+++ /dev/null
@@ -1,51 +0,0 @@
-
-global
- maxconn 100
-
-defaults
- log global
- mode tcp
- retries 2
- timeout client 30m
- timeout connect 4s
- timeout server 30m
- timeout check 5s
-
-listen stats
- mode http
- bind *:7000
- stats enable
- stats uri /
-
-listen opengauss
- bind *:5000
- option httpchk
- http-check expect status 200
- default-server inter 3s fall 3 rise 2 on-marked-down shutdown-sessions
- # server opengauss_ip0_port0 ip0:port0 maxconn 100 check port 8008
- # server opengauss_ip1_port1 ip1:port1 maxconn 100 check port 8008
- # server opengauss_ip2_port2 ip2:port2 maxconn 100 check port 8008
- # server opengauss_ip3_port3 ip3:port3 maxconn 100 check port 8008
- # server opengauss_ip4_port4 ip4:port4 maxconn 100 check port 8008
- # server opengauss_ip5_port5 ip5:port5 maxconn 100 check port 8008
- # server opengauss_ip6_port6 ip6:port6 maxconn 100 check port 8008
- # server opengauss_ip7_port7 ip7:port7 maxconn 100 check port 8008
- # server opengauss_ip8_port8 ip8:port8 maxconn 100 check port 8008
-
-listen opengauss_balance
- bind *:5001
- mode tcp
- option tcplog
- balance roundrobin
- option httpchk OPTIONS /replica
- http-check expect status 200
- default-server inter 3s fall 3 rise 2 on-marked-down shutdown-sessions
- # server opengauss_ip0_port0 ip0:port0 maxconn 100 check port 8008 inter 5000 rise 2 fall 2
- # server opengauss_ip1_port1 ip1:port1 maxconn 100 check port 8008 inter 5000 rise 2 fall 2
- # server opengauss_ip2_port2 ip2:port2 maxconn 100 check port 8008 inter 5000 rise 2 fall 2
- # server opengauss_ip3_port3 ip3:port3 maxconn 100 check port 8008 inter 5000 rise 2 fall 2
- # server opengauss_ip4_port4 ip4:port4 maxconn 100 check port 8008 inter 5000 rise 2 fall 2
- # server opengauss_ip5_port5 ip5:port5 maxconn 100 check port 8008 inter 5000 rise 2 fall 2
- # server opengauss_ip6_port6 ip6:port6 maxconn 100 check port 8008 inter 5000 rise 2 fall 2
- # server opengauss_ip7_port7 ip7:port7 maxconn 100 check port 8008 inter 5000 rise 2 fall 2
- # server opengauss_ip8_port8 ip8:port8 maxconn 100 check port 8008 inter 5000 rise 2 fall 2
diff --git "a/app/zh/blogs/duanguoqiang/DataKit\346\225\260\346\215\256\350\277\201\347\247\273-1\344\275\277\347\224\250\350\257\264\346\230\216.md" "b/app/zh/blogs/duanguoqiang/DataKit\346\225\260\346\215\256\350\277\201\347\247\273-1\344\275\277\347\224\250\350\257\264\346\230\216.md"
index 69619be55ea33e36a0645dde3fcab8865b966ad8..590af1c03b8cc39c5b8d5952dc62f545be5c93ff 100644
--- "a/app/zh/blogs/duanguoqiang/DataKit\346\225\260\346\215\256\350\277\201\347\247\273-1\344\275\277\347\224\250\350\257\264\346\230\216.md"
+++ "b/app/zh/blogs/duanguoqiang/DataKit\346\225\260\346\215\256\350\277\201\347\247\273-1\344\275\277\347\224\250\350\257\264\346\230\216.md"
@@ -79,10 +79,10 @@ gsql -d postgres -p -r
创建用户并赋予管理员权限
```sql
-create user opengauss_test with password 'Sample@123';
+create user opengauss_test with password '******';
grant all privileges to opengauss_test;
-- 其中,“opengauss_test”为用户名,可自定义,后续此文档中涉及到连接openGauss的用户,便使用此用户。
--- “Sample@123”为用户密码,可自定义。
+-- “******”为用户密码,可自定义。
```
## 3 执行迁移任务
diff --git "a/app/zh/blogs/duanguoqiang/DataKit\346\225\260\346\215\256\350\277\201\347\247\273-2\345\256\236\344\276\213\346\220\255\345\273\272\346\255\245\351\252\244.md" "b/app/zh/blogs/duanguoqiang/DataKit\346\225\260\346\215\256\350\277\201\347\247\273-2\345\256\236\344\276\213\346\220\255\345\273\272\346\255\245\351\252\244.md"
index c11a22f691a6da5e5e400609f14fc9dfbcd44d21..1fe4fc1ba618a830c2b684bdfb8cfb86d61fa71f 100644
--- "a/app/zh/blogs/duanguoqiang/DataKit\346\225\260\346\215\256\350\277\201\347\247\273-2\345\256\236\344\276\213\346\220\255\345\273\272\346\255\245\351\252\244.md"
+++ "b/app/zh/blogs/duanguoqiang/DataKit\346\225\260\346\215\256\350\277\201\347\247\273-2\345\256\236\344\276\213\346\220\255\345\273\272\346\255\245\351\252\244.md"
@@ -180,7 +180,7 @@ gsql -d target_db -p 5680 -r
-- 设置b_compatibility_user_host_auth参数值为on
set b_compatibility_user_host_auth to on;
-- 创建同名用户
-create user 'username'@'%' with password 'Sample@123';
+create user 'username'@'%' with password '******';
-- 给新增用户赋权
grant all privileges to 'username'@'%';
```
diff --git "a/app/zh/blogs/duomibabi/openGauss1-0-1\346\224\257\346\214\201docker\344\270\273\345\244\207\346\220\255\345\273\272.md" "b/app/zh/blogs/duomibabi/openGauss1-0-1\346\224\257\346\214\201docker\344\270\273\345\244\207\346\220\255\345\273\272.md"
index 852a383b268404b0053e88e498bc893ea62c5dd3..94a1e62dc4e80b98841d390d29baaba5381bf4ad 100644
--- "a/app/zh/blogs/duomibabi/openGauss1-0-1\346\224\257\346\214\201docker\344\270\273\345\244\207\346\220\255\345\273\272.md"
+++ "b/app/zh/blogs/duomibabi/openGauss1-0-1\346\224\257\346\214\201docker\344\270\273\345\244\207\346\220\255\345\273\272.md"
@@ -47,7 +47,7 @@ docker run --name op_master \
--hostname op_master --detach \
--env GS_PORT=6432 \
--env OG_SUBNET=***.***.***.***/16 \
---env GS_PASSWORD=Enmotech@2020 \
+--env GS_PASSWORD=****** \
--env NODE_NAME=op_master \
--env REPL_CONN_INFO="replconninfo1 = 'localhost=***.***.***.*** localport=6439 localservice=6432 remotehost=***.***.***.*** remoteport=6439 remoteservice=6432 '\n" \
--cpuset-cpus="1,3" \
@@ -62,7 +62,7 @@ docker run --name op_slave_one \
--hostname op_slave_one --detach \
--env GS_PORT=6432 \
--env OG_SUBNET=***.***.***.***/16 \
---env GS_PASSWORD=Enmotech@2020 \
+--env GS_PASSWORD=****** \
--env NODE_NAME=op_slave_one \
--env REPL_CONN_INFO="replconninfo1 = 'localhost=***.***.***.*** localport=6439 localservice=6432 remotehost=***.***.***.*** remoteport=6439 remoteservice=6432 '\n" \
--cpuset-cpus="2,4" \
diff --git "a/app/zh/blogs/duomibabi/openGauss1-0-1\346\224\257\346\214\201oracle-fdw\345\222\214mysql-fdw.md" "b/app/zh/blogs/duomibabi/openGauss1-0-1\346\224\257\346\214\201oracle-fdw\345\222\214mysql-fdw.md"
index 02161c8f10162e7a481f65921aef892866831666..0f9f3920c5eb4bfb6469ab77424db405dce777ff 100644
--- "a/app/zh/blogs/duomibabi/openGauss1-0-1\346\224\257\346\214\201oracle-fdw\345\222\214mysql-fdw.md"
+++ "b/app/zh/blogs/duomibabi/openGauss1-0-1\346\224\257\346\214\201oracle-fdw\345\222\214mysql-fdw.md"
@@ -163,7 +163,7 @@ CREATE SERVER
普通用户 openGauss 操作创建用户映射。
```
-postgres=> create user mapping for opengauss server server_mysql options(username 'root',password '123456');
+postgres=> create user mapping for opengauss server server_mysql options(username 'root',password '******');
CREATE USER MAPPING
```
@@ -251,7 +251,7 @@ CREATE SERVER
普通用户 openGauss 操作创建用户映射。
```
-postgres=> create user mapping for opengauss server server_oracle options(user 'system',password 'admin');
+postgres=> create user mapping for opengauss server server_oracle options(user 'system',password '******');
CREATE USER MAPPING
```
diff --git a/app/zh/blogs/enmo/FATAL Connection to database failed SCRAM authentication requires libpq version 10 or above.md b/app/zh/blogs/enmo/FATAL Connection to database failed SCRAM authentication requires libpq version 10 or above.md
index 62c9365ff75dbaf696e01352d6eeabc02ba0d893..3b87924061766394e1b9d846eeaa454458a8ffdd 100644
--- a/app/zh/blogs/enmo/FATAL Connection to database failed SCRAM authentication requires libpq version 10 or above.md
+++ b/app/zh/blogs/enmo/FATAL Connection to database failed SCRAM authentication requires libpq version 10 or above.md
@@ -27,7 +27,7 @@ times: '10:20'
在自定义安装好 mogdb2.1 的版本之后,使用 sysbench(sysbench 1.0.17)进行压测 mogdb 数据库时,出现一下的问题
```
-[root@mogdb001 ~]# sysbench /usr/share/sysbench/oltp_common.lua --db-driver=pgsql --pgsql-host=localhost --pgsql-user=user1 --pgsql-password=root123.xxx --pgsql-db=sbtest --tables=16 --table_size=100000 --threads=4 prepare
+[root@mogdb001 ~]# sysbench /usr/share/sysbench/oltp_common.lua --db-driver=pgsql --pgsql-host=localhost --pgsql-user=user1 --pgsql-password=****** --pgsql-db=sbtest --tables=16 --table_size=100000 --threads=4 prepare
```
- sysbench 1.0.17 (using system LuaJIT 2.0.4)
@@ -50,7 +50,7 @@ times: '10:20'
修改参数 password_encryption_type=0。
重新更新一下业务用户的密码,我这边是 user1,replace 密码的语句
-alter user moguser IDENTIFIED BY ‘root123.xxxx’ **REPLACE** ‘root123.xxxx1’;
+alter user moguser IDENTIFIED BY ‘******’ **REPLACE** ‘******1’;
修改 pg_hba.conf 文件,这个文件要想当清楚,需要在(IPv4 local connections)增添一条为
IPv4 local connections:
@@ -60,7 +60,7 @@ IPv4 local connections:
昨晚以上的所有步骤,就可以通过 sysbench 来连接 mogdb 数据库。
```
-root@mogdb001 ~]# sysbench /usr/share/sysbench/oltp_common.lua --db-driver=pgsql --pgsql-host=***.***.***.*** --pgsql-user=user1 --pgsql-password=root123.xxxx --pgsql-db=sbtest --tables=16 --table_size=1000000000 --threads=64 prepare
+root@mogdb001 ~]# sysbench /usr/share/sysbench/oltp_common.lua --db-driver=pgsql --pgsql-host=***.***.***.*** --pgsql-user=user1 --pgsql-password=****** --pgsql-db=sbtest --tables=16 --table_size=1000000000 --threads=64 prepare
sysbench 1.0.17 (using system LuaJIT 2.0.4)
Initializing worker threads…
diff --git "a/app/zh/blogs/enmo/MogDB\346\225\260\346\215\256\345\272\223JDBC\350\257\273\345\206\231\345\210\206\347\246\273\346\265\213\350\257\225.md" "b/app/zh/blogs/enmo/MogDB\346\225\260\346\215\256\345\272\223JDBC\350\257\273\345\206\231\345\210\206\347\246\273\346\265\213\350\257\225.md"
index e4f718a89540cdac17a9819bf689b5c7d11923cc..61983468d61f5cb1a5942121a55ee0a553f4d41b 100644
--- "a/app/zh/blogs/enmo/MogDB\346\225\260\346\215\256\345\272\223JDBC\350\257\273\345\206\231\345\210\206\347\246\273\346\265\213\350\257\225.md"
+++ "b/app/zh/blogs/enmo/MogDB\346\225\260\346\215\256\345\272\223JDBC\350\257\273\345\206\231\345\210\206\347\246\273\346\265\213\350\257\225.md"
@@ -42,7 +42,7 @@ docker run --name mogdb1 \
--hostname mogdb1 --detach \
--env GS_PORT=5432 \
--env OG_SUBNET=***.***.***.***/16 \
---env GS_PASSWORD=Admin@1234 \
+--env GS_PASSWORD=****** \
--env NODE_NAME=mogdb1 \
--env REPL_CONN_INFO="replconninfo1 = 'localhost=***.***.***.***1 localport=5434 localservice=5432 remotehost=***.***.***.***2 remoteport=5434 remoteservice=5432 '\n" \
swr.cn-north-4.myhuaweicloud.com/mogdb/mogdb:2.1.1 -M primary
@@ -58,7 +58,7 @@ docker run --name mogdb2 \
--hostname mogdb2 --detach \
--env GS_PORT=5432 \
--env OG_SUBNET=***.***.***.***/16 \
---env GS_PASSWORD=Admin@1234 \
+--env GS_PASSWORD=****** \
--env NODE_NAME=mogdb2 \
--env REPL_CONN_INFO="replconninfo1 = 'localhost=***.***.***.***2 localport=5434 localservice=5432 remotehost=***.***.***.***1 remoteport=5434 remoteservice=5432 '\n" \
swr.cn-north-4.myhuaweicloud.com/mogdb/mogdb:2.1.1 -M standby
@@ -74,7 +74,7 @@ docker run --name mogdb3 \
--hostname mogdb3 --detach \
--env GS_PORT=5432 \
--env OG_SUBNET=***.***.***.***/16 \
---env GS_PASSWORD=Admin@1234 \
+--env GS_PASSWORD=****** \
--env NODE_NAME=mogdb3 \
--env REPL_CONN_INFO="replconninfo2 = 'localhost=***.***.***.***3 localport=5434 localservice=5432 remotehost=***.***.***.***1 remoteport=5434 remoteservice=5432 '\n" \
swr.cn-north-4.myhuaweicloud.com/mogdb/mogdb:2.1.1 -M standby
@@ -148,7 +148,7 @@ No information
创建远程连接用户及测试表
```
-create user admin password 'Admin@1234'; \c - admin create table test(id int,info varchar);
+create user admin password '******'; \c - admin create table test(id int,info varchar);
```
### 二、JDBC 连接测试
@@ -186,7 +186,7 @@ public class TestFailoverAndLoadbalance {
for (int i = 0; i < 100; i++) {
try (Connection conn = DriverManager.getConnection(
"jdbc:postgresql://***.***.***.***:8001,***.***.***.***:8002,***.***.***.***:8003/postgres?targetServerType=master&loadBalanceHosts=true&loggerLevel=off",
- "admin", "Admin@1234")) {
+ "admin", "******")) {
System.out.println("NO:" + i);
//execSelect(conn);
execInsert(conn);
diff --git "a/app/zh/blogs/enmo/openGauss 3.0.0 docker \345\256\211\350\243\205.md" "b/app/zh/blogs/enmo/openGauss 3.0.0 docker \345\256\211\350\243\205.md"
index 48ae1b8be6e1dec6fa552e30e213ac01d013745e..535fac7b7bd7ff8ec652e2381efadb0c8b2a3f10 100644
--- "a/app/zh/blogs/enmo/openGauss 3.0.0 docker \345\256\211\350\243\205.md"
+++ "b/app/zh/blogs/enmo/openGauss 3.0.0 docker \345\256\211\350\243\205.md"
@@ -44,7 +44,7 @@ read -p "Please input OG_SUBNET (容器所在网段) [***.***.***.***/24]: " OG_
OG_SUBNET=${OG_SUBNET:-***.***.***.***/24}
echo "OG_SUBNET set $OG_SUBNET"
-read -p "Please input GS_PASSWORD (定义数据库密码)[****@***]: " GS_PASSWORD
+read -p "Please input GS_PASSWORD (定义数据库密码)[****@***]: " ******
GS_PASSWORD=${GS_PASSWORD:-****@***}
echo "GS_PASSWORD set $GS_PASSWORD"
diff --git "a/app/zh/blogs/enmo/openGauss--\347\224\250\346\210\267.md" "b/app/zh/blogs/enmo/openGauss--\347\224\250\346\210\267.md"
index 2eefb3ff2d5991c425e57377334c5e3828205bb1..fc779d63e74d9b0f6882bbeafbaac9242d4c6382 100644
--- "a/app/zh/blogs/enmo/openGauss--\347\224\250\346\210\267.md"
+++ "b/app/zh/blogs/enmo/openGauss--\347\224\250\346\210\267.md"
@@ -35,7 +35,7 @@ times: '10:20'
例如:创建用户 joe,并设置用户拥有 CREATEDB 属性。
```
-postgres=# CREATE USER joe WITH CREATEDB PASSWORD "Bigdata@123"; CREATE ROLE
+postgres=# CREATE USER joe WITH CREATEDB PASSWORD "******"; CREATE ROLE
```
- 要创建系统管理员,请使用带有 SYSADMIN 选项的 CREATE USER 语句 。
diff --git "a/app/zh/blogs/enmo/\344\275\277\347\224\250VMworkstation\345\256\211\350\243\205docker\347\211\210\347\232\204MogDB.md" "b/app/zh/blogs/enmo/\344\275\277\347\224\250VMworkstation\345\256\211\350\243\205docker\347\211\210\347\232\204MogDB.md"
index d346191cc8e24fef182fb8abecef9cc0da184988..892a0257069b21ddc3cb8e8ab70631563ee4457b 100644
--- "a/app/zh/blogs/enmo/\344\275\277\347\224\250VMworkstation\345\256\211\350\243\205docker\347\211\210\347\232\204MogDB.md"
+++ "b/app/zh/blogs/enmo/\344\275\277\347\224\250VMworkstation\345\256\211\350\243\205docker\347\211\210\347\232\204MogDB.md"
@@ -119,7 +119,7 @@ WantedBy=multi-user.target
##创建单节点容器
# docker run --name mogdb --privileged=true \
--d -e GS_PASSWORD=Mogdb@1234 \
+-d -e GS_PASSWORD=****** \
-v /dbdata/mogdb_docker:/var/lib/mogdb \
-p 15432:5432 swr.cn-north-4.myhuaweicloud.com/mogdb/mogdb:2.1.1
diff --git "a/app/zh/blogs/enmo/\345\205\263\344\272\216\344\275\277\347\224\250navicat\350\277\236\346\216\245mogdb\346\212\245\351\224\231.md" "b/app/zh/blogs/enmo/\345\205\263\344\272\216\344\275\277\347\224\250navicat\350\277\236\346\216\245mogdb\346\212\245\351\224\231.md"
index 261ad5b8c3b93923c57fa705f53827ebcc403e2b..25a4d7ef2a3d9c40510f14215766a94084d6a33e 100644
--- "a/app/zh/blogs/enmo/\345\205\263\344\272\216\344\275\277\347\224\250navicat\350\277\236\346\216\245mogdb\346\212\245\351\224\231.md"
+++ "b/app/zh/blogs/enmo/\345\205\263\344\272\216\344\275\277\347\224\250navicat\350\277\236\346\216\245mogdb\346\212\245\351\224\231.md"
@@ -43,7 +43,7 @@ su - omm gs_om -t start
#### 2.创建远程连接用户
```
-#本地连接数据库 gsql -d postgres -p 26000 -r #创建用户 create user zb password 'geet@123'; #授予用户管理员权限(如果需要) grant all privileges to zb;
+#本地连接数据库 gsql -d postgres -p 26000 -r #创建用户 create user zb password '******'; #授予用户管理员权限(如果需要) grant all privileges to zb;
```
#### 3.配置客户端接入认证
@@ -83,7 +83,7 @@ gs_guc reload -N all -I all -c 'password_encryption_type=0' #检查配置是否
注:这一步一定要做,否则会导致你远程连接失败,报如下错:
```
-gsql -U zb -W geet@123 -h 10.0.0.100 -p 26000 gsql: FATAL: Invalid username/password,login denied. FATAL: Invalid username/password,login denied.
+gsql -U zb -W ****** -h 10.0.0.100 -p 26000 gsql: FATAL: Invalid username/password,login denied. FATAL: Invalid username/password,login denied.
```
因为该用户之前的密码仍让使用 sha256 进行加密处理,现在你将加密方式改为 MD5,系统就会将你输入的密码使用 md5 加密,然后和使用 sha256 加密的原密码进行比对,肯定会失败呀,所以我们需要修改密码,再次修改的新密码将会使用新设置的 md5 算法进行加密,可以通过如下方式查看指定用户目前的密码加密方式:
diff --git "a/app/zh/blogs/eygle/\344\275\277\347\224\250openGauss jdbc 3.0\346\265\213\350\257\225\345\233\275\345\257\206SM3\347\224\250\346\210\267\350\256\244\350\257\201.md" "b/app/zh/blogs/eygle/\344\275\277\347\224\250openGauss jdbc 3.0\346\265\213\350\257\225\345\233\275\345\257\206SM3\347\224\250\346\210\267\350\256\244\350\257\201.md"
index 18c4c630fb1b62ae222c87222dda8ab5122c9fb5..50665167f8dcc2296e529e127022ea899f7ad4d1 100644
--- "a/app/zh/blogs/eygle/\344\275\277\347\224\250openGauss jdbc 3.0\346\265\213\350\257\225\345\233\275\345\257\206SM3\347\224\250\346\210\267\350\256\244\350\257\201.md"
+++ "b/app/zh/blogs/eygle/\344\275\277\347\224\250openGauss jdbc 3.0\346\265\213\350\257\225\345\233\275\345\257\206SM3\347\224\250\346\210\267\350\256\244\350\257\201.md"
@@ -44,7 +44,7 @@ openGauss=# show password_encryption_type; password_encryption_type
创建用户
```
-openGauss=# create user user_sm3 password 'Admin@1234';
+openGauss=# create user user_sm3 password '******';
CREATE ROLE
```
@@ -69,7 +69,7 @@ host all user_sm3 0/0 sm3
通过 gsql 进行测试可正常连接
```
-[omm@mogdb ~]$ gsql -Uuser_sm3 -p3000 -h***.***.***.*** postgres -r --password='Admin@1234'
+[omm@mogdb ~]$ gsql -Uuser_sm3 -p3000 -h***.***.***.*** postgres -r --password='******'
gsql ((openGauss 3.0.0 build 02c14696) compiled at 2022-04-01 18:12:34 commit 0 last mr )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
@@ -103,7 +103,7 @@ java
public static void main(String[] args) throws Exception{
Class.forName("org.opengauss.Driver");
Connection conn = DriverManager.getConnection("jdbc:opengauss://***.***.***.***:3000/postgres",
- "user_sm3","Admin@1234");
+ "user_sm3","******");
String sql = " insert into t values(?)";
PreparedStatement ps = null;
try{
diff --git "a/app/zh/blogs/foreverdragon/opengauss\345\256\211\350\243\205\344\270\216\344\275\277\347\224\250.md" "b/app/zh/blogs/foreverdragon/opengauss\345\256\211\350\243\205\344\270\216\344\275\277\347\224\250.md"
index 0b8af1ea31873543613ff7591bb691349c28f9e0..6007bfc9ae83155786c73f6229250fea3ab089a9 100644
--- "a/app/zh/blogs/foreverdragon/opengauss\345\256\211\350\243\205\344\270\216\344\275\277\347\224\250.md"
+++ "b/app/zh/blogs/foreverdragon/opengauss\345\256\211\350\243\205\344\270\216\344\275\277\347\224\250.md"
@@ -562,9 +562,9 @@ drwxr-xr-x. 2 root root 115 Dec 31 20:41 simpleInstall
-1. 第一次连接数据库时,需要先修改 omm 用户密码,新密码修改为 Bigdata@123(建议用户自定义密码)。
+1. 第一次连接数据库时,需要先修改 omm 用户密码,新密码修改为 ******(建议用户自定义密码)。
-2. ` postgres=\# **alter role omm identified by 'Bigdata@123' replace '*********@***';**`
+2. ` postgres=\# **alter role omm identified by '******' replace '*********@***';**`
3. ALTER ROLE
@@ -576,13 +576,13 @@ drwxr-xr-x. 2 root root 115 Dec 31 20:41 simpleInstall
7. 默认只有 openGauss 安装时创建的管理员用户可以访问初始数据库,您还可以创建其他数据库用户帐号。
-8. `postgres=\# **CREATE USER joe WITH PASSWORD "Bigdata@123";**`
+8. `postgres=\# **CREATE USER joe WITH PASSWORD "******";**`
9. 当结果显示为如下信息,则表示创建成功。
10. CREATE ROLE
-11. 如上创建了一个用户名为 joe,密码为 Bigdata@123 的用户。
+11. 如上创建了一个用户名为 joe,密码为 ****** 的用户。
结果:
@@ -606,7 +606,7 @@ drwxr-xr-x. 2 root root 115 Dec 31 20:41 simpleInstall
使用新用户连接到此数据库。
-`[omm@ecs-c9bf \~]\$ **gsql -d db_tpcc -p 26000 -U joe -W Bigdata@123 -r**`
+`[omm@ecs-c9bf \~]\$ **gsql -d db_tpcc -p 26000 -U joe -W ****** -r**`
当结果显示为如下信息,则表示连接成功
diff --git "a/app/zh/blogs/gaiguoqiang/\346\226\260\347\224\250\346\210\267\346\235\203\351\231\220\345\222\214permission-denied-for-schema-public.md" "b/app/zh/blogs/gaiguoqiang/\346\226\260\347\224\250\346\210\267\346\235\203\351\231\220\345\222\214permission-denied-for-schema-public.md"
index 8c30973afc1445e077f3e908adc948b3f9cc5152..1eae9909ef6cc9ac2345c3a1e347ce2a336eab51 100644
--- "a/app/zh/blogs/gaiguoqiang/\346\226\260\347\224\250\346\210\267\346\235\203\351\231\220\345\222\214permission-denied-for-schema-public.md"
+++ "b/app/zh/blogs/gaiguoqiang/\346\226\260\347\224\250\346\210\267\346\235\203\351\231\220\345\222\214permission-denied-for-schema-public.md"
@@ -35,7 +35,7 @@ ERROR: The old password is invalid.
omm=# create user enmotech with password 'enmotech';
ERROR: Password must contain at least three kinds of characters.
omm=#
-omm=# create user enmotech with password 'Enm0t3ch';
+omm=# create user enmotech with password '******';
NOTICE: The encrypted password contains MD5 ciphertext, which is not secure.
CREATE ROLE
```
@@ -56,7 +56,7 @@ omm=# \q
在操作系统上,连接到容器数据库中:
```
-[root@ecs-514e-0004 ~]# gsql -d enmotech -U enmotech -W'Enm0t3ch' -h ***.***.***.*** -p 8888
+[root@ecs-514e-0004 ~]# gsql -d enmotech -U enmotech -W'******' -h ***.***.***.*** -p 8888
gsql ((openGauss 1.0 build ec0e781b) compiled at 2020-04-27 17:25:57 commit 2144 last mr 131 )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
diff --git "a/app/zh/blogs/gaoyunlong/MogDB openGauss wal\346\227\245\345\277\227\350\247\243\346\236\220\345\267\245\345\205\267 mog_xlogdump.md" "b/app/zh/blogs/gaoyunlong/MogDB openGauss wal\346\227\245\345\277\227\350\247\243\346\236\220\345\267\245\345\205\267 mog_xlogdump.md"
index 8c32b6ba2e3964c1be649d6d4ec51436fe2b174d..a2d5b7ff821e0fb183f0af64a787be484ba41a23 100644
--- "a/app/zh/blogs/gaoyunlong/MogDB openGauss wal\346\227\245\345\277\227\350\247\243\346\236\220\345\267\245\345\205\267 mog_xlogdump.md"
+++ "b/app/zh/blogs/gaoyunlong/MogDB openGauss wal\346\227\245\345\277\227\350\247\243\346\236\220\345\267\245\345\205\267 mog_xlogdump.md"
@@ -234,7 +234,7 @@ mogdb=# select xmin,xmax,* from xlogdump;
### 解析所有表
--c postgres://yunlong:Yunlong123@***.***.***.***:15500/mogdb
+-c postgres://yunlong:xxx@***.***.***.***:15500/mogdb
建议使用具有 sysadmin 权限的用户连接到数据库,可以获取到所有的数据库对象
```
@@ -244,11 +244,11 @@ mogdb=# select xmin,xmax,* from xlogdump;
{'table_name':'gs_txn_snapshot', 'schema_name':'pg_catalog', 'transaction id':'957987', 'action':'insert','tuple':{'snptime':'2022-04-14 00:18:17.236834-277:46:40','snpxmin':'957986','snpcsn':'938809','snpsnapshot':'xmin:957986
--
-[o3m@mogdb01 pg_xlog]$ mog_xlogdump -c postgres://yunlong:Yunlong123@***.***.***.***:15500/mogdb -s 0/64F8A220 000000010000000000000064 |grep -v gs_txn_snapshot |grep -i table_name
+[o3m@mogdb01 pg_xlog]$ mog_xlogdump -c postgres://yunlong:xxx@***.***.***.***:15500/mogdb -s 0/64F8A220 000000010000000000000064 |grep -v gs_txn_snapshot |grep -i table_name
--
-{'table_name':'pg_authid', 'schema_name':'pg_catalog', 'transaction id':'958293', 'action':'insert','tuple':{'rolname':'yunlong','rolsuper':false,'rolinherit':true,'rolcreaterole':false,'rolcreatedb':false,'rolcatupdate':false,'rolcanlogin':true,'rolreplication':false,'rolauditadmin':false,'rolsystemadmin':true,'rolconnlimit':'-1','rolpassword':'sha2565030b85f459cf837ab2ede05944250b43adda3c2e499a86e1f9fa349d8bc033fb1833614f8c65680bf1ea2047354dbe02493fe13ff8b94a0e2861994f933e40ac0a770e165ab9a7a2eb66ffe8bd4490ceb3f7168d7631b249b4fed559d426e00ecdfecefade',nullnull'rolrespool':'default_pool','roluseft':false,'rolparentid':'0',null'rolkind':'n',nullnullnullnull'rolmonitoradmin':false,'roloperatoradmin':false,'rolpolicyadmin':false}}
-{'table_name':'pg_auth_history', 'schema_name':'pg_catalog', 'transaction id':'958293', 'action':'insert','tuple':{'roloid':'24800','passwordtime':'2022-04-14 00:25:56.896461-277:46:40','rolpassword':'sha2565030b85f459cf837ab2ede05944250b43adda3c2e499a86e1f9fa349d8bc033fb1833614f8c65680bf1ea2047354dbe02493fe13ff8b94a0e2861994f933e40ac0a770e165ab9a7a2eb66ffe8bd4490ceb3f7168d7631b249b4fed559d426e00'}}
+{'table_name':'pg_authid', 'schema_name':'pg_catalog', 'transaction id':'958293', 'action':'insert','tuple':{'rolname':'yunlong','rolsuper':false,'rolinherit':true,'rolcreaterole':false,'rolcreatedb':false,'rolcatupdate':false,'rolcanlogin':true,'rolreplication':false,'rolauditadmin':false,'rolsystemadmin':true,'rolconnlimit':'-1','rolpassword':'xxxxxx',nullnull'rolrespool':'default_pool','roluseft':false,'rolparentid':'0',null'rolkind':'n',nullnullnullnull'rolmonitoradmin':false,'roloperatoradmin':false,'rolpolicyadmin':false}}
+{'table_name':'pg_auth_history', 'schema_name':'pg_catalog', 'transaction id':'958293', 'action':'insert','tuple':{'roloid':'24800','passwordtime':'2022-04-14 00:25:56.896461-277:46:40','rolpassword':'xxxxxx'}}
{'table_name':'pg_namespace', 'schema_name':'pg_catalog', 'transaction id':'958293', 'action':'insert','tuple':{'nspname':'yunlong','nspowner':'24800','nsptimeline':'0','nspacl':'UnSupport Type','in_redistribution':'n','nspblockchain':false}}
{'table_name':'pg_shdepend', 'schema_name':'pg_catalog', 'transaction id':'958293', 'action':'insert','tuple':{'dbid':'16444','classid':'2615','objid':'24802','objsubid':'0','refclassid':'1260','refobjid':'24800','deptype':'o',null}}
{'table_name':'pg_user_status', 'schema_name':'pg_catalog', 'transaction id':'958293', 'action':'insert','tuple':{'roloid':'24800','failcount':'0','locktime':'2022-04-14 00:25:56.904328-277:46:40','rolstatus':'0','permspace':'0','tempspace':'0','passwordexpired':'0'}}
diff --git "a/app/zh/blogs/gaoyunlong/openGauss\347\233\221\346\216\247\344\271\213exporter\351\203\250\347\275\262.md" "b/app/zh/blogs/gaoyunlong/openGauss\347\233\221\346\216\247\344\271\213exporter\351\203\250\347\275\262.md"
index e84551d16e9984b3c1e2a6eb33193dbf2c629bef..885dfcc3f38540855dcd1f37700738697fe65839 100644
--- "a/app/zh/blogs/gaoyunlong/openGauss\347\233\221\346\216\247\344\271\213exporter\351\203\250\347\275\262.md"
+++ "b/app/zh/blogs/gaoyunlong/openGauss\347\233\221\346\216\247\344\271\213exporter\351\203\250\347\275\262.md"
@@ -97,7 +97,7 @@ create database ogexporter DBCOMPATIBILITY='PG';
- 密码复杂度需要符合数据库密码策略。
```
-CREATE USER opengauss_exporter WITH PASSWORD 'opengauss_exporter123' MONADMIN;
+CREATE USER opengauss_exporter WITH PASSWORD 'xxxxxx' MONADMIN;
```
**赋权**
@@ -136,7 +136,7 @@ gs_guc reload -I all -N all -h "host dbname opengauss_exporter x.x.x.x/32 md5"
将以下配置添加到~/.bashrc 文件,也可以在每次执行命令前执行。
```
-export DATA_SOURCE_NAME="host=x.x.x.x user=opengauss_exporter password=opengauss_exporter123 port=9832 dbname=og_pg sslmode=disable"
+export DATA_SOURCE_NAME="host=x.x.x.x user=opengauss_exporter password=xxxxxx port=9832 dbname=og_pg sslmode=disable"
```
**启动 opengauss_exporter**
diff --git "a/app/zh/blogs/jiangdianbin/step-by-step\344\271\213-install-docker\347\211\210\346\234\254opengauss1-0-1\344\270\273\345\244\207\346\234\272\347\276\244.md" "b/app/zh/blogs/jiangdianbin/step-by-step\344\271\213-install-docker\347\211\210\346\234\254opengauss1-0-1\344\270\273\345\244\207\346\234\272\347\276\244.md"
index 63d4303c582170633faaa55309c297293ece8b2d..d4792cf809d3387c06c1bccdf62114f6ce4ff1a7 100644
--- "a/app/zh/blogs/jiangdianbin/step-by-step\344\271\213-install-docker\347\211\210\346\234\254opengauss1-0-1\344\270\273\345\244\207\346\234\272\347\276\244.md"
+++ "b/app/zh/blogs/jiangdianbin/step-by-step\344\271\213-install-docker\347\211\210\346\234\254opengauss1-0-1\344\270\273\345\244\207\346\234\272\347\276\244.md"
@@ -155,7 +155,7 @@ CONTAINER ID IMAGE COMMAND CREATED
创建主节点:
```
-[root@node1 ~]# docker run --name op_master --network myNetwork --ip ***.***.***.*** --privileged=true --hostname op_master --detach --env GS_PORT=6432 --env OG_SUBNET=***.***.***.***/16 --env GS_PASSWORD=Enmotech@2020 --env NODE_NAME=op_master --env REPL_CONN_INFO="replconninfo1 = 'localhost=***.***.***.*** localport=6439 localservice=6432 remotehost=***.***.***.*** remoteport=6439 remoteservice=6432 '\n" --cpuset-cpus="1,3" enmotech/opengauss:1.0.1 -M primary
+[root@node1 ~]# docker run --name op_master --network myNetwork --ip ***.***.***.*** --privileged=true --hostname op_master --detach --env GS_PORT=6432 --env OG_SUBNET=***.***.***.***/16 --env GS_PASSWORD=****** --env NODE_NAME=op_master --env REPL_CONN_INFO="replconninfo1 = 'localhost=***.***.***.*** localport=6439 localservice=6432 remotehost=***.***.***.*** remoteport=6439 remoteservice=6432 '\n" --cpuset-cpus="1,3" enmotech/opengauss:1.0.1 -M primary
775afac757803a51f9e40886a00e8c3014301cd328823e716ec1c1fe39e4f85d
[root@node1 ~]#
```
@@ -168,7 +168,7 @@ docker run --name op_slave_one \
--hostname op_slave_one --detach \
--env GS_PORT=6432 \
--env OG_SUBNET=***.***.***.***/16 \
---env GS_PASSWORD=Enmotech@2020 \
+--env GS_PASSWORD=****** \
--env NODE_NAME=op_slave_one \
--env REPL_CONN_INFO="replconninfo1 = 'localhost=***.***.***.*** localport=6439 localservice=6432 remotehost=***.***.***.*** remoteport=6439 remoteservice=6432 '\n" \
--cpuset-cpus="2,4" \
diff --git "a/app/zh/blogs/jiangdianbin/step-by-step\347\263\273\345\210\227\344\271\213-openGauss1-0-1-Docker\347\211\210\346\234\254\345\215\225\346\234\272\345\256\211\350\243\205\346\214\207\345\215\227.md" "b/app/zh/blogs/jiangdianbin/step-by-step\347\263\273\345\210\227\344\271\213-openGauss1-0-1-Docker\347\211\210\346\234\254\345\215\225\346\234\272\345\256\211\350\243\205\346\214\207\345\215\227.md"
index 48473680a1623923209c4874c4d02b05eb93dcbd..453479d7b50956d9d980b4c165dc17e2a9eddf83 100644
--- "a/app/zh/blogs/jiangdianbin/step-by-step\347\263\273\345\210\227\344\271\213-openGauss1-0-1-Docker\347\211\210\346\234\254\345\215\225\346\234\272\345\256\211\350\243\205\346\214\207\345\215\227.md"
+++ "b/app/zh/blogs/jiangdianbin/step-by-step\347\263\273\345\210\227\344\271\213-openGauss1-0-1-Docker\347\211\210\346\234\254\345\215\225\346\234\272\345\256\211\350\243\205\346\214\207\345\215\227.md"
@@ -305,13 +305,13 @@ CONTAINER ID IMAGE COMMAND CREATED
在下面命令正常启动容器数据库之后,可以通过外部的 gsql 进行数据库访问。
-\# docker run --name opengaussnet --privileged=true -d -e GS_PASSWORD=Passw0rd@1234 \\
+\# docker run --name opengaussnet --privileged=true -d -e GS_PASSWORD=****** \\
-v /enmotech/opengauss:/var/lib/opengauss \\
-p 8888:5432 enmotech/opengauss:latest
-说明:windows 下,C:\\Users\\oldbear2008\>docker run --name opengaussnet --privileged=true -d -e GS_PASSWORD=Passw0rd@1234 -v /enmotech/opengauss:/var/lib/opengauss -p 8888:5432 enmotech/opengauss:latest 05755ccc4abea16bbfff6a361451470069daf2e16c7f551caee3b4bfbd1bbe45
+说明:windows 下,C:\\Users\\oldbear2008\>docker run --name opengaussnet --privileged=true -d -e GS_PASSWORD=****** -v /enmotech/opengauss:/var/lib/opengauss -p 8888:5432 enmotech/opengauss:latest 05755ccc4abea16bbfff6a361451470069daf2e16c7f551caee3b4bfbd1bbe45
**数据持久化:**
diff --git "a/app/zh/blogs/jiwenke/openGauss-RAG\345\256\236\350\267\265.md" "b/app/zh/blogs/jiwenke/openGauss-RAG\345\256\236\350\267\265.md"
index 444fcfcc471008980f69a91548c83b68379ab842..2107a823232535ec8aad5430633086eeaa3b0427 100644
--- "a/app/zh/blogs/jiwenke/openGauss-RAG\345\256\236\350\267\265.md"
+++ "b/app/zh/blogs/jiwenke/openGauss-RAG\345\256\236\350\267\265.md"
@@ -97,7 +97,7 @@ ollama version is 0.5.6
镜像拉取完成后,我们可以启动openGauss服务:
```abap
-[root@localhost ~]$ docker run --name opengauss --privileged=true -d -e GS_PASSWORD=Test@123 -p 8888:5432 -v /home/test/opengauss:/var/lib/opengauss opengauss:7.0.0-RC1
+[root@localhost ~]$ docker run --name opengauss --privileged=true -d -e GS_PASSWORD=****** -p 8888:5432 -v /home/test/opengauss:/var/lib/opengauss opengauss:7.0.0-RC1
```
至此,openGauss已经成功安装部署,我们可以通过psycopg2连接openGauss查看版本信息:
@@ -108,7 +108,7 @@ import psycopg2
conn = psycopg2.connect(
database="postgres",
user="gaussdb",
- password="Test@123",
+ password="******",
host="127.0.0.1",
port="8888"
)
@@ -178,7 +178,7 @@ table_name = "opengauss_data"
conn = psycopg2.connect(
database="postgres",
user="gaussdb",
- password="Test@123",
+ password="******",
host="127.0.0.1",
port="8888"
)
diff --git "a/app/zh/blogs/laishenghao/openGauss\345\237\272\344\272\2164\350\267\257\351\262\262\351\271\217\346\234\215\345\212\241\345\231\250\347\232\204\346\200\247\350\203\275\350\260\203\344\274\230.md" "b/app/zh/blogs/laishenghao/openGauss\345\237\272\344\272\2164\350\267\257\351\262\262\351\271\217\346\234\215\345\212\241\345\231\250\347\232\204\346\200\247\350\203\275\350\260\203\344\274\230.md"
index 34f39bd0ce3b21fe5d02a13c5995c608c32b19e9..1f1b148526b7c4d6892ebe2cfc171c5d4adaadfa 100644
--- "a/app/zh/blogs/laishenghao/openGauss\345\237\272\344\272\2164\350\267\257\351\262\262\351\271\217\346\234\215\345\212\241\345\231\250\347\232\204\346\200\247\350\203\275\350\260\203\344\274\230.md"
+++ "b/app/zh/blogs/laishenghao/openGauss\345\237\272\344\272\2164\350\267\257\351\262\262\351\271\217\346\234\215\345\212\241\345\231\250\347\232\204\346\200\247\350\203\275\350\260\203\344\274\230.md"
@@ -503,7 +503,7 @@ numactl -C 1-28,32-60,64-92,96-124,128-156,160-188,192-220,224-252 gs_ctl start
注意与前面在pg_hba.conf配置的参数保持一致。
```sql
-create user tpcc_bot with sysadmin identified by 'my_password@123';
+create user tpcc_bot with sysadmin identified by '******';
create database tpcc1000 encoding='UTF-8' owner=tpcc_bot;
```
diff --git "a/app/zh/blogs/lihongda/MogDB_openGauss \347\224\237\346\200\201\345\267\245\345\205\267-MTK(Migration ToolKit) \346\225\260\346\215\256\345\272\223\350\277\201\347\247\273.md" "b/app/zh/blogs/lihongda/MogDB_openGauss \347\224\237\346\200\201\345\267\245\345\205\267-MTK(Migration ToolKit) \346\225\260\346\215\256\345\272\223\350\277\201\347\247\273.md"
index d6f091a0adb596d1be48bc074662f86954bbb20e..fbfd0744ed4348f0ab965a2351cd18127541188b 100644
--- "a/app/zh/blogs/lihongda/MogDB_openGauss \347\224\237\346\200\201\345\267\245\345\205\267-MTK(Migration ToolKit) \346\225\260\346\215\256\345\272\223\350\277\201\347\247\273.md"
+++ "b/app/zh/blogs/lihongda/MogDB_openGauss \347\224\237\346\200\201\345\267\245\345\205\267-MTK(Migration ToolKit) \346\225\260\346\215\256\345\272\223\350\277\201\347\247\273.md"
@@ -62,7 +62,7 @@ export LD_LIBRARY_PATH=/usr/lib/oracle/21/client64/lib
"host": "***.***.***.***",
"user": "system",
"port": 1521,
- "password": "system",
+ "password": "******",
"dbName": "LHR11G",
"dsn": ""
},
diff --git a/app/zh/blogs/lihongda/openGauss-ClusterManagerRTO-Test.md b/app/zh/blogs/lihongda/openGauss-ClusterManagerRTO-Test.md
index cf73ebc07228560ca576cc68053cfcc5272ef7fc..b42589856f4343cc630c8122be73c5e362d8f8e9 100644
--- a/app/zh/blogs/lihongda/openGauss-ClusterManagerRTO-Test.md
+++ b/app/zh/blogs/lihongda/openGauss-ClusterManagerRTO-Test.md
@@ -68,7 +68,7 @@ import (
/*
需要有访问dbe_perf.global_instance_time的权限
-CREATE USER dbuser_monitor with login monadmin PASSWORD 'Mon@1234';
+CREATE USER dbuser_monitor with login monadmin PASSWORD '******';
grant usage on schema dbe_perf to dbuser_monitor;
grant select on dbe_perf.global_instance_time to dbuser_monitor;
CGO_ENABLED=0 GOOS=linux GOARCH=arm64
diff --git "a/app/zh/blogs/lihongda/\344\274\230\345\214\226openGauss\345\256\230\346\226\271\345\256\271\345\231\250\346\272\220\347\240\201.md" "b/app/zh/blogs/lihongda/\344\274\230\345\214\226openGauss\345\256\230\346\226\271\345\256\271\345\231\250\346\272\220\347\240\201.md"
index 38b54e5ccd489c33e3d1d3b853cd538856af084f..b99f5c011d4dec678435753cb5ea7159928702ec 100644
--- "a/app/zh/blogs/lihongda/\344\274\230\345\214\226openGauss\345\256\230\346\226\271\345\256\271\345\231\250\346\272\220\347\240\201.md"
+++ "b/app/zh/blogs/lihongda/\344\274\230\345\214\226openGauss\345\256\230\346\226\271\345\256\271\345\231\250\346\272\220\347\240\201.md"
@@ -403,7 +403,7 @@ centos 7.6.1810 f1cb7c7d58b7 3 years ago 202MB
- run
```
-[root@node3 dockerfiles]# docker run --name opengauss_3.0.0 --privileged=true -d -e GS_PASSWORD=GaussDB@123 opengauss:3.0.0
+[root@node3 dockerfiles]# docker run --name opengauss_3.0.0 --privileged=true -d -e GS_PASSWORD=****** opengauss:3.0.0
77e79f91e71082fd0fff3376adb8de2dbfc4eb257ec0fd5c60d4b110c79e8d9f
[root@node3 dockerfiles]# docker logs opengauss_3.0.0 -f
@@ -636,12 +636,12 @@ docker_create_db_directories() {
# `initdb` automatically creates the "postgres", "template0", and "template1" dbnames
# this is also where the database user is created, specified by `GS_USER` env
docker_init_database_dir() {
- # "initdb" is particular about the current user existing in "/etc/passwd", so we use "nss_wrapper" to fake that if necessary
- if ! getent passwd "$(id -u)" &> /dev/null && [ -e /usr/lib/libnss_wrapper.so ]; then
+ # "initdb" is particular about the current user existing in "/etc/******", so we use "nss_wrapper" to fake that if necessary
+ if ! getent ****** "$(id -u)" &> /dev/null && [ -e /usr/lib/libnss_wrapper.so ]; then
export LD_PRELOAD='/usr/lib/libnss_wrapper.so'
- export NSS_WRAPPER_PASSWD="$(mktemp)"
+ export NSS_WRAPPER_******="$(mktemp)"
export NSS_WRAPPER_GROUP="$(mktemp)"
- echo "postgres:x:$(id -u):$(id -g):PostgreSQL:$PGDATA:/bin/false" > "$NSS_WRAPPER_PASSWD"
+ echo "postgres:x:$(id -u):$(id -g):PostgreSQL:$PGDATA:/bin/false" > "$NSS_WRAPPER_******"
echo "postgres:x:$(id -g):" > "$NSS_WRAPPER_GROUP"
fi
@@ -651,8 +651,8 @@ docker_init_database_dir() {
# unset/cleanup "nss_wrapper" bits
if [ "${LD_PRELOAD:-}" = '/usr/lib/libnss_wrapper.so' ]; then
- rm -f "$NSS_WRAPPER_PASSWD" "$NSS_WRAPPER_GROUP"
- unset LD_PRELOAD NSS_WRAPPER_PASSWD NSS_WRAPPER_GROUP
+ rm -f "$NSS_WRAPPER_******" "$NSS_WRAPPER_GROUP"
+ unset LD_PRELOAD NSS_WRAPPER_****** NSS_WRAPPER_GROUP
fi
}
@@ -713,13 +713,13 @@ docker_verify_minimum_env() {
fi
if [ -n "$GS_PASSWORD" ]; then
- cmdbase="$cmdbase --pwpasswd=$GS_PASSWORD"
+ cmdbase="$cmdbase --pw******=$GS_PASSWORD"
echo -e " Message: GS_PASSWORD is ${GS_PASSWORD}"
else
randpw(){ < /dev/urandom tr -dc '^(.*[#?!@$%^&*-]).*$_A-Z-a-z-0-9' | head -c${1:-4};echo;}
GS_PASSWORD=`randpw`"Aa1!"
- cmdbase="$cmdbase --pwpasswd=$GS_PASSWORD"
+ cmdbase="$cmdbase --pw******=$GS_PASSWORD"
echo -e " Message: Default GS_PASSWORD is "${GS_PASSWORD}"."
fi
@@ -814,8 +814,8 @@ docker_process_sql() {
# create initial database
# uses environment variables for input: GS_DB
docker_setup_db() {
- docker_process_sql --set passwd="$GS_PASSWORD" <<-'EOSQL'
- create user opengauss with login password :"passwd" ;
+ docker_process_sql --set ******="$GS_PASSWORD" <<-'EOSQL'
+ create user opengauss with login password :"******" ;
CREATE DATABASE opengauss;
grant all privileges to opengauss;
ALTER USER opengauss MONADMIN;
@@ -828,8 +828,8 @@ EOSQL
docker_setup_user() {
if [ -n "$GS_USERNAME" ]; then
- GS_DB= docker_process_sql --set passwd="$GS_PASSWORD" --set user="$GS_USERNAME" <<-'EOSQL'
- create user :"user" with login password :"passwd" ;
+ GS_DB= docker_process_sql --set ******="$GS_PASSWORD" --set user="$GS_USERNAME" <<-'EOSQL'
+ create user :"user" with login password :"******" ;
EOSQL
else
echo " default user is opengauss"
@@ -840,8 +840,8 @@ EOSQL
docker_setup_rep_user() {
if [ -n "$SERVER_MODE" ] && [ "$SERVER_MODE" = "primary" ]; then
- GS_DB= docker_process_sql --set passwd="$GS_PASSWORD" --set user="repuser" <<-'EOSQL'
- create user :"user" SYSADMIN REPLICATION password :"passwd" ;
+ GS_DB= docker_process_sql --set ******="$GS_PASSWORD" --set user="repuser" <<-'EOSQL'
+ create user :"user" SYSADMIN REPLICATION password :"******" ;
EOSQL
else
echo " default no repuser created"
diff --git "a/app/zh/blogs/lukeman/2024-12-26-\345\237\272\344\272\216openGauss\351\203\250\347\275\262openstack\345\256\236\346\210\230.md" "b/app/zh/blogs/lukeman/2024-12-26-\345\237\272\344\272\216openGauss\351\203\250\347\275\262openstack\345\256\236\346\210\230.md"
index f1ae73eea46732fcc2f0109a37fee7a5a826b61b..424e71e6be957ed2bf610d98ec1543a564f29700 100644
--- "a/app/zh/blogs/lukeman/2024-12-26-\345\237\272\344\272\216openGauss\351\203\250\347\275\262openstack\345\256\236\346\210\230.md"
+++ "b/app/zh/blogs/lukeman/2024-12-26-\345\237\272\344\272\216openGauss\351\203\250\347\275\262openstack\345\256\236\346\210\230.md"
@@ -71,7 +71,7 @@ CREATE DATABASE
openGauss=# \c keystone
Non-SSL connection (SSL connection is recommended when requiring high-security)
-- 可根据实际情况设置keystone数据库用户密码,此处仅为示例,下面的安装步骤同理
-keystone=# CREATE USER keystone WITH PASSWORD 'Proto_test123';
+keystone=# CREATE USER keystone WITH PASSWORD '******';
CREATE ROLE
keystone=# grant all privileges on database keystone to keystone;
GRANT
@@ -88,7 +88,7 @@ yum install openstack-keystone httpd mod_wsgi
```shell
# 修改/etc/keystone/keystone.conf,根据实际情况替换数据库用户密码以及{IP}和{PORT}
[database]
-connection = postgresql://keystone:Proto_test123@{IP}:{PORT}/keystone
+connection = postgresql://keystone:******@{IP}:{PORT}/keystone
[token]
provider = fernet
@@ -240,7 +240,7 @@ openGauss=# create database glance;
CREATE DATABASE
openGauss=# \c glance
Non-SSL connection (SSL connection is recommended when requiring high-security)
-glance=# create user glance with password 'Proto_test123';
+glance=# create user glance with password '******';
NOTICE: The encrypted password contains MD5 ciphertext, which is not secure.
CREATE ROLE
glance=# grant ALL privileges on database glance to glance;
@@ -251,7 +251,7 @@ GRANT
vim /etc/glance/glance-api.conf
#修改glance数据库相关配置,此处仅说明数据库配置,其他配置请参考官方文档
[database]
-connection = postgresql://glance:Proto_test123@{IP}:{PORT}/glance
+connection = postgresql://glance:******@{IP}:{PORT}/glance
```
#### Placement安装
@@ -262,7 +262,7 @@ openGauss=# create database placement dbcompatibility 'B';
CREATE DATABASE
openGauss=# \c placement
Non-SSL connection (SSL connection is recommended when requiring high-security)
-placement=# create user placement with password 'Proto_test123';
+placement=# create user placement with password '******';
NOTICE: The encrypted password contains MD5 ciphertext, which is not secure.
CREATE ROLE
placement=# grant ALL privileges on database placement to placement;
@@ -274,7 +274,7 @@ GRANT
[placement_database]
# ...
-connection = postgresql://placement:Proto_test123@{IP}:{PORT}/placement
+connection = postgresql://placement:******@{IP}:{PORT}/placement
```
@@ -289,7 +289,7 @@ openGauss=# CREATE DATABASE nova_cell0;
CREATE DATABASE
openGauss=# \c nova
Non-SSL connection (SSL connection is recommended when requiring high-security)
-nova=# create user nova with password 'Proto_test123';
+nova=# create user nova with password '******';
NOTICE: The encrypted password contains MD5 ciphertext, which is not secure.
CREATE ROLE
@@ -304,7 +304,7 @@ GRANT
--- 创建Nova用户之后,使用Nova重新连接数据库
-gsql -d postgres -p {port} -r -U nova -W Proto_test123
+gsql -d postgres -p {port} -r -U nova -W ******
--- 在nova_api和nova_cell0中使用Nova用户创建schema
openGauss=> \c nova_api
@@ -325,10 +325,10 @@ CREATE SCHEMA
vim /etc/nova/nova.conf
[api_database]
-connection = postgresql://nova:Proto_test123@{IP}:{PORT}/nova_api
+connection = postgresql://nova:******@{IP}:{PORT}/nova_api
[database]
-connection = postgresql://nova:Proto_test123@{IP}:{PORT}/nova
+connection = postgresql://nova:******@{IP}:{PORT}/nova
```
#### Neutron安装
@@ -338,7 +338,7 @@ openGauss=# create database neutron;
CREATE DATABASE
openGauss=# \c neutron
Non-SSL connection (SSL connection is recommended when requiring high-security)
-neutron=# create user neutron with password 'Proto_test123';
+neutron=# create user neutron with password '******';
NOTICE: The encrypted password contains MD5 ciphertext, which is not secure.
CREATE ROLE
neutron=# grant ALL privileges on database neutron to neutron;
@@ -348,7 +348,7 @@ GRANT
```shell
vim /etc/neutron/neutron.conf
[database]
-connection = postgresql://neutron:Proto_test123@{IP}:{PORT}/neutron
+connection = postgresql://neutron:******@{IP}:{PORT}/neutron
```
#### Cinder安装
@@ -358,7 +358,7 @@ openGauss=# create database cinder;
CREATE DATABASE
openGauss=# \c cinder
Non-SSL connection (SSL connection is recommended when requiring high-security)
-neutron=# create user cinder with password 'Proto_test123';
+neutron=# create user cinder with password '******';
NOTICE: The encrypted password contains MD5 ciphertext, which is not secure.
CREATE ROLE
neutron=# grant ALL privileges on database cinder to cinder;
@@ -369,7 +369,7 @@ GRANT
vim /etc/cinder/cinder.conf
[database]
-connection = postgresql://cinder:Proto_test123@{IP}:{PORT}/cinder
+connection = postgresql://cinder:******@{IP}:{PORT}/cinder
```
#### Horizon安装
安装horizon不涉及数据库操作,安装后可通过前端服务访问openStack的dashboard创建安全组规则、虚拟化网络、虚拟机等。
diff --git "a/app/zh/blogs/muyulinzhong/\350\265\204\346\272\220\346\261\240\345\214\226\345\274\200\345\217\221\350\200\205DD\346\250\241\346\213\237\350\204\232\346\234\254.md" "b/app/zh/blogs/muyulinzhong/\350\265\204\346\272\220\346\261\240\345\214\226\345\274\200\345\217\221\350\200\205DD\346\250\241\346\213\237\350\204\232\346\234\254.md"
index 5fe01edaa55633091a189a2314e7f0bcaec923bc..9456ec3dfcdfe709dee2aea2a182a28baf1ce4bf 100644
--- "a/app/zh/blogs/muyulinzhong/\350\265\204\346\272\220\346\261\240\345\214\226\345\274\200\345\217\221\350\200\205DD\346\250\241\346\213\237\350\204\232\346\234\254.md"
+++ "b/app/zh/blogs/muyulinzhong/\350\265\204\346\272\220\346\261\240\345\214\226\345\274\200\345\217\221\350\200\205DD\346\250\241\346\213\237\350\204\232\346\234\254.md"
@@ -97,7 +97,7 @@ source $dd_home/dd_env
dbhost=127.0.0.1
database=my_test
dbuser=$(whoami)
-password=Huawei@123
+password=******
dbport1=19244
dbport2=19234
dmsurl="0:127.0.0.1:3604,1:127.0.0.1:3605"
diff --git "a/app/zh/blogs/opengauss_deploy/ECS\344\270\212\351\203\250\347\275\262openGauss\346\225\260\346\215\256\345\272\223.md" "b/app/zh/blogs/opengauss_deploy/ECS\344\270\212\351\203\250\347\275\262openGauss\346\225\260\346\215\256\345\272\223.md"
index 1b932c9c82a792c8194c23fc692eddf2b84ff591..290bf614888ce1457ae36e64d06c215ac27e5727 100644
--- "a/app/zh/blogs/opengauss_deploy/ECS\344\270\212\351\203\250\347\275\262openGauss\346\225\260\346\215\256\345\272\223.md"
+++ "b/app/zh/blogs/opengauss_deploy/ECS\344\270\212\351\203\250\347\275\262openGauss\346\225\260\346\215\256\345\272\223.md"
@@ -11,8 +11,6 @@ times: '19:30'
## 在 ECS 上安装部署 openGauss 数据库指导手册
-文档下载:[在 ECS 上安装部署 openGauss 数据库指导手册.docx](./docs/在ECS上安装部署openGauss数据库指导手册.docx)
-
-
-
-
-
-83063C86-4E0A-4954-BF00-620C0D0F02D8
-openGauss 1.1.0
-PGSQL9
-0
-
-1341906213
-mledier
-ANSI
-'******************************************************************************
-'* Purpose: This VB-Script holds global definitions shared by all the custom-
-'* checks scripts of the model extension.
-'******************************************************************************
-
-Option Explicit ' This is to ensure all used variables are defined
-
-
-
-
-F1A020C1-477C-4FE6-B187-7FC7D46FE484
-General
-0
-
-0
-
-Target DBMS identification
-
-
-EA3C706C-F552-4CC5-8A17-AB0A2D0F4BDE
-SqlSupport
-0
-
-0
-
-SQL syntax allowed. This does not impact the script generation, but it impacts the SQL Preview
-1
-
-
-7868A7BA-E474-4E27-BDF3-1104AFABF7C0
-EnableCheck
-0
-
-0
-
-Determines if the generation of check parameters is authorized or not
-1
-
-
-714677D5-B508-4B87-AB65-AF6E66C5C151
-Enableconstname
-0
-
-0
-
-Determines if constraint names are used during the generation
-1
-
-
-AB1F411F-11C4-4EDD-8A76-7A79B81D042D
-UniqConstName
-0
-
-0
-
-Determines if unique constraint names for objects are authorized or not
-
-
-68C5494A-C8AB-4FC7-A431-3EAF5B4C44D6
-EnableIntegrity
-0
-
-0
-
-Allows integrity constraints in the DBMS. This controls whether generation parameters for primary, foreign, and alternate keys are grayed or available
-1
-
-
-09CC7C62-0030-4BD4-BB4D-24373F684A76
-EnableMultiCheck
-0
-
-0
-
-Determines if the generation of multiple check parameters is authorized or not
-1
-
-
-
-
-CC013A88-7C22-4315-9C88-0B17EC54F8D0
-Script
-0
-
-0
-
-DBMS characteristics, command definition, and data type translations for the Script generation and reverse engineering
-
-
-5FD38E36-8DC0-4299-974F-F28B32CCF6C1
-Sql
-0
-
-0
-
-Contains sub-categories Syntax, Format, File and Keywords. Each sub-category contains entries whose values define general syntax for the database
-
-
-5C4F8EE0-FFDE-4901-A42E-08330F43BE4E
-Syntax
-0
-
-0
-
-Contains general parameters for SQL syntax
-
-
-1207496B-6D26-4E86-B310-FC0B82E8E494
-Terminator
-0
-
-0
-
-End of command character
-;
-
-
-30DA977E-0C12-41F8-A871-734B9C92752B
-BlockTerminator
-0
-
-0
-
-End of block character
-
-
-E5E60CF7-3FDB-4F4A-ACFA-E61497BB94F8
-Delimiter
-0
-
-0
-
-Field separation character. Example: col1, col2, col3
-,
-
-
-02FCF451-A3F8-4443-854F-39B46B4E90D0
-Quote
-0
-
-0
-
-Character used to enclose string values
-'
-
-
-53DCF79F-F968-4CFB-8081-100F8BE9598E
-SqlContinue
-0
-
-0
-
-Continuation character
-
-
-941E4818-62E6-468B-AF8F-682C2B802D75
-LineComment
-0
-
-0
-
-Characters used to enclose a single line comment
---
-
-
-EE966B5D-7C62-4EAA-837C-BEEC61F23DD8
-BlockComment
-0
-
-0
-
-Characters used to enclose a multi-line comment
-/* */
-
-
-7A611A4A-F0EF-4AF8-9A14-CACDA6F94A83
-UseBlockTerm
-0
-
-0
-
-Use end of block character by default
-
-
-
-
-B9BD47AF-E067-4888-91D0-369F4FC676FD
-Format
-0
-
-0
-
-Contains entries that define script formatting
-
-
-BE0A4657-577C-40DA-823D-DFE9D65EA0FE
-IllegalChar
-0
-
-0
-
-Invalid characters for names
-" +-*/!=<>'"()[]".
-
-
-884832B1-A23F-4D99-9D32-3300C16BEFCD
-UpperCaseOnly
-0
-
-0
-
-Uppercase only
-
-
-410153CC-039A-4BCC-A9DA-73A14758BB96
-LowerCaseOnly
-0
-
-0
-
-Lowercase only
-
-
-270DB985-97B4-4796-B3AC-8E008529FBC5
-EnableOwnerPrefix
-0
-
-0
-
-Object codes can have a prefix made of the object owner code
-1
-
-
-
-
-3025ED8F-2ED3-44A9-824D-5BCD6D6FD1B9
-File
-0
-
-0
-
-Contains header, footer and usage text entries used during the generation
-
-
-F615AB51-5D07-436F-8C4D-F43C8B7C5FDD
-Header
-0
-
-0
-
-Header text for a database generation script
-
-
-71AC941F-F3B7-4278-BC51-DF34D6EF42CF
-Footer
-0
-
-0
-
-Footer text for a database generation script
-
-
-F43D615E-3EBD-4C14-9199-5914CBEAA5DD
-EnableMultiFile
-0
-
-0
-
-Multi-script allowed
-1
-
-
-FA22FD3F-AB4C-4DC2-86E9-10ED4592C386
-ScriptExt
-0
-
-0
-
-Main script extension in database generation
-sql
-
-
-E532FCE4-F3B1-4CD0-BBD8-6006C09F4ACB
-TableExt
-0
-
-0
-
-Other scripts extension in database generation
-tab
-
-
-7AE42F8F-8544-4AB1-B396-D843BE10CE7E
-StartCommand
-0
-
-0
-
-Command for executing a script
-
-
-8391BA96-63E7-43A6-B37C-7C65B9525CC9
-Usage1
- (1) Go to the directory %PATHSCRIPT%
- (2) Start the SQL interpreter
- (3) Run the database creation script:
- %NAMESCRIPT%
-0
-
-0
-
-Usage for a single script in database generation
-
-
-29E46CF1-DB88-4860-ABD2-09D9933D3FC6
-Usage2
- (1) Go to the directory %PATHSCRIPT%
- (2) Start the SQL interpreter
- (3) Run the database creation scripts
-0
-
-0
-
-Usage for multiple scripts in database generation
-
-
-
-
-CF7B9B8A-86B0-42F1-883E-BB792C02DFE1
-Keywords
-0
-
-0
-
-Contains the list of reserved words and functions available in SQL
-
-
-C65EFCC0-604A-4E47-B059-EA77B400FCDE
-ReservedDefault
-CURRENT_USER
-SESSION_USER
-USER
-CURRENT_DATE
-CURRENT_TIME
-CURRENT_TIMESTAMP
-NULL
-0
-
-0
-
-Reserved default values
-
-
-B8C734A3-0407-4828-A3AF-9EC38A4A7084
-GroupFunc
-avg()
-count()
-max()
-min()
-sum()
-0
-
-0
-
-List of SQL functions to use with group keywords.
-
-
-1997444A-6E38-441F-BB1A-01CFFAC96EC4
-NumberFunc
-abs()
-degrees()
-exp()
-ln()
-log()
-pi()
-pow()
-radians()
-round()
-sqrt()
-cbrt()
-trunc()
-float()
-float4()
-integer()
-
-0
-
-0
-
-List of SQL functions used on numbers
-
-
-08A5913D-0845-4676-B284-5E02B34DFC49
-CharFunc
-char()
-char_length()
-character_length()
-initcap()
-lower()
-lpad()
-ltrim()
-octet_length()
-position()
-rpad()
-rtrim()
-substr()
-substring()
-text()
-textpos()
-translate()
-trim()
-upper()
-varchar()
-
-0
-
-0
-
-List of SQL functions for characters and strings
-
-
-4E9B8DD2-C3C8-431A-83B1-84AEDB98B887
-DateFunc
-abstime()
-age()
-date_part()
-date_trunc()
-interval()
-isfinite()
-reltime()
-timestamp()
-
-0
-
-0
-
-List of SQL functions for dates
-
-
-50363314-58C8-4960-BA9D-4F69F83815FB
-ConvertFunc
-to_char()
-to_date()
-to_timestamp()
-to_number()
-0
-
-0
-
-List of SQL functions used to convert values between hex and integer and handling strings
-
-
-E0B49A16-9386-4F77-ABD8-B00A609C8F41
-OtherFunc
-coalesce()
-nullif()
-area()
-box()
-center()
-circle()
-diameter()
-height()
-isclosed()
-isoldpath()
-isopen()
-length()
-lseg()
-npoint()
-path()
-pclose()
-point()
-polygon()
-popen()
-radius()
-revertpoly()
-upgradepath()
-upgradepoly()
-width()
-broadcast()
-host()
-masklen()
-netmask()
-
-0
-
-0
-
-List of other SQL functions
-
-
-8763140B-F7FB-4D02-9792-2F532B3C42DE
-ListOperators
--
-!
-!!
-#
-%
-&
-*
-*=
-/
-@
-^
-|
-|/
-||
-||/
-~
-+
-<
-< all
-< any
-<<
-<=
-<= all
-<= any
-<>
-<> all
-<> any
-=
-= all
-= any
-=*
->
-> all
-> any
->=
->= all
->= any
->>
-and
-between
-exists
-in
-is
-is not
-like
-not
-not between
-not exists
-not in
-not like
-or
-0
-
-0
-
-List of operators for comparing values, boolean, and various semantic operators
-
-
-6B334218-ED13-4F55-93CC-9B462934CDCD
-Commit
-commit
-0
-
-0
-
-Command for validating the transaction by OBDC
-
-
-F9D5F8F9-A693-4FD9-897D-A61D7150C44E
-ReservedWord
-ALL
-ANALYSE
-ANALYZE
-AND
-ANY
-AS
-ASC
-AUTHORIZATION
-BETWEEN
-BIGINT
-BINARY
-BIT
-BOOLEAN
-BOTH
-CASE
-CAST
-CHAR
-CHARACTER
-CHECK
-COALESCE
-COLLATE
-COLUMN
-CONSTRAINT
-CONVERT
-CREATE
-CROSS
-CURRENT_DATE
-CURRENT_TIME
-CURRENT_TIMESTAMP
-CURRENT_USER
-DEC
-DECIMAL
-DEFAULT
-DEFERRABLE
-DESC
-DISTINCT
-DO
-ELSE
-END
-EXCEPT
-EXISTS
-EXTRACT
-FALSE
-FLOAT
-FOR
-FOREIGN
-FREEZE
-FROM
-FULL
-GRANT
-GROUP
-HAVING
-ILIKE
-IN
-INITIALLY
-INNER
-INT
-INTEGER
-INTERSECT
-INTERVAL
-INTO
-IS
-ISNULL
-JOIN
-LEADING
-LEFT
-LIKE
-LIMIT
-LOCALTIME
-LOCALTIMESTAMP
-NATURAL
-NCHAR
-NEW
-NONE
-NOT
-NOTNULL
-NULL
-NULLIF
-NUMERIC
-OFF
-OFFSET
-OLD
-ON
-ONLY
-OR
-ORDER
-OUTER
-OVERLAPS
-OVERLAY
-PLACING
-POSITION
-PRIMARY
-REAL
-REFERENCES
-RIGHT
-ROW
-SELECT
-SESSION_USER
-SETOF
-SIMILAR
-SMALLINT
-SOME
-SUBSTRING
-TABLE
-THEN
-TIME
-TIMESTAMP
-TO
-TRAILING
-TREAT
-TRIM
-TRUE
-UNION
-UNIQUE
-USER
-USING
-VARCHAR
-VERBOSE
-WHEN
-WHERE
-0
-
-0
-
-Reserved words
-
-
-
-
-
-
-E16BAC33-A1FB-4D41-A754-3AB61E287A6A
-Objects
-0
-
-0
-
-Contains sub-categories for each type of object in the database, for example: Table, or Reference. Each sub-category contains entries whose values define database commands and object-related characteristics
-
-
-5787687A-ED79-4140-AFDB-1BC438B4E1B2
-Table
-TABL
-0
-
-0
-
-The following system variables are available:
- "TABLE" // generated code of the table
- "TNAME" // name of the table
- "TCODE" // code of the table
- "TLABL" // comment of the table
- "PKEYCOLUMNS" // list of primary key columns. Eg: A, B
- "TABLDEFN" // complete body of the table definition. Contains definition of columns, checks and keys
-
-
-
-D25D7DD8-E18F-4E6C-8EDF-9ECED15275D7
-Maxlen
-0
-
-0
-
-Maximum object code length
-31
-
-
-4B9BC540-BD54-44B9-99E6-999BD9EBF5E3
-ConstName
-CKT_%.U26:TABLE%
-0
-
-0
-
-Constraint name template for check of table
-
-
-F5049524-C037-4724-9519-F2C985F2BFD3
-Create
-create [%Temporary% ]table [%QUALIFIER%]%TABLE% (
- %TABLDEFN%
-)
-[%OPTIONS%]
-0
-
-0
-
-Command for creating a table. Example: create table %TABLE%
-
-
-D3C15873-790A-4ACD-BC92-859B7C7C1F0E
-Options
-inherits : composite=yes, parenthesis=yes, separator=yes
-{
- <parent_table> %s : multiple=yes
-}
-<special_columns> %s : list=with oids|without oids
-on commit %s : list=preserve rows|delete rows|drop
-tablespace %s : category=tablespace
-0
-
-0
-
-Available options for creating a table
-
-
-BCC29DEE-6F1F-45EE-B38B-41EFD1FFF636
-TableComment
-comment on table [%QUALIFIER%]%TABLE% is
-%.q:COMMENT%
-0
-
-1244729550
-mledier
-Command for adding a table comment
-
-
-71513402-ADFB-4CE2-A73C-56D3D8E26CC8
-Drop
-drop table [%QUALIFIER%]%TABLE%
-0
-
-0
-
-Command for dropping a table. Example: drop table %TABLE%
-
-
-5A2D175A-FB8B-4182-A24B-3A863BEB2A49
-Rename
-alter table [%QUALIFIER%]%OLDTABL%
- rename to %NEWTABL%
-0
-
-1244729550
-mledier
-Command for renaming a table
-
-
-9E059BBF-C0DD-4A20-85E0-FEBA2D8A9435
-AlterTableHeader
-0
-
-0
-
-Alter table header
-
-
-080E3432-3F41-470A-B7A0-C83594DE3E52
-AlterTableFooter
-0
-
-0
-
-Alter table footer
-
-
-7524AF71-E973-4D57-98BF-86C82A19CF11
-DefineTableCheck
-[constraint %CONSTNAME% ]check (%.A:CONSTRAINT%)
-0
-
-0
-
-Allows to customize the script of table check constraints
-
-
-DC6A6F24-AE59-494D-986E-7727698D9C48
-Enable
-0
-
-0
-
-Table allowed
-1
-
-
-8B726C93-8587-4D14-89DD-AB4744CF7677
-AddTableCheck
-alter table [%QUALIFIER%]%TABLE%
- add [constraint %CONSTNAME% ]check (%.A:CONSTRAINT%)
-0
-
-1244729550
-mledier
-Allows to customize the script for modifying table constraints within an alter table statement
-
-
-BA26AAF4-1E2B-40AF-BE30-F3B8F1BD6E95
-DropTableCheck
-alter table [%QUALIFIER%]%TABLE%
- drop constraint %CONSTNAME%
-0
-
-1244729550
-mledier
-Command for dropping a table check in an alter table statement
-
-
-B99A5700-27CC-45D8-B3C9-04218133C0D9
-SqlListQuery
-{OWNER, TABLE, TABLE_TYPE, COMMENT}
-
-select
- pg_get_userbyid(t.relowner),
- t.relname,
- case substring(t.relname from 1 for 3)
- when 'pg_' then 'SYSTEM TABLE' else 'TABLE'
- end::varchar,
- obj_description(t.oid, 'pg_class')
-from
- pg_class t
-where
- t.relkind = 'r'
-[ and pg_get_userbyid(t.relowner) = %.q:SCHEMA%]
-order by 1, 2
-0
-
-1341908013
-mledier
-SQL query to list objects
-
-
-81F8F744-2727-402B-BC1A-5B056B1E571E
-AfterCreate
-[%OWNER%?%SetOwnership%]
-0
-
-1257761737
-mledier
-Commands executed after create statement
-
-
-D46478F3-F5A2-45CA-811E-BCE8CF3780F0
-SqlChckQuery
-{OWNER, TABLE, CONSTNAME, CONSTRAINT}
-
-select
- pg_get_userbyid(t.relowner),
- t.relname,
- k.conname,
- k.consrc
-from
- pg_constraint k
- join pg_class t on (t.oid = k.conrelid)
-where
- k.contype = 'c'
- and k.conrelid != 0
-[ and pg_get_userbyid(t.relowner) = %.q:OWNER%]
-[ and t.relname = %.q:TABLE%]
- and array_dims(k.conkey) != '[1:1]' -- a table constraint applies on more than one column !
-
-0
-
-1341908522
-mledier
-SQL query to reverse object check constraints
-
-
-3B8C614F-A6CB-47E9-A1C9-4AD0464951C1
-SetOwnership
-.ifnot(%Owner.Schema%)
-[-- set table ownership
-]alter table [%QUALIFIER%]%TABLE% owner to [%R%?%NEWOWNER%:%OWNER%]
-;
-.endif()
-0
-
-1257761811
-mledier
-1
-
-
-070CDD2B-026F-46B2-B53A-F06EB48A65C4
-ReversedStatements
-SetOwnership
-0
-
-0
-
-Additional statements to be reversed by script
-
-
-DCBEC306-5F49-4294-B8B8-CFA0610D68B7
-SqlOptsQuery
-{OWNER, TABLE, OPTIONS}
-
-select
- pg_get_userbyid(t.relowner),
- t.relname,
- case (t.relhasoids) when '1' then 'with oids' else 'without oids' end
- ||case when (t.reltablespace = 0) then '' else ' tablespace ' || (select s.spcname from pg_tablespace s where s.oid = t.reltablespace) end as coln
-from
- pg_class t
-where
- t.relkind = 'r'
-[ and pg_get_userbyid(t.relowner) = %.q:SCHEMA%]
-order by 1, 2
-0
-
-1341908522
-mledier
-SQL query to reverse object physical options
-
-
-
-
-D469C1EC-3699-4486-B3C1-22A547A4D775
-Index
-INDX
-0
-
-0
-
-The following system variables are available:
-(parent table items are also available for indexes)
- "INDEX" // generated code of the index
- "INDEXNAME" // index name
- "INDEXCODE" // index code
- "UNIQUE" // keyword "unique" when the index is unique
- "INDEXTYPE" // index type (available only for a few DBMS)
- "INDEXKEY" // keywords "primary", "unique" or "foreign" depending on the index origin
- "CIDXLIST" // list of index columns. Eg: A asc, B desc, C asc
- "CLUSTER" // keyword "cluster" when the index is cluster
-For index columns, the following system variables are available:
- "ASC" // keywords "ASC" or "DESC" depending on sort order
- "ISASC" // TRUE if the index column sort is ascending
-
-
-
-6A266B2C-8C89-4333-B581-01FE4683BD49
-Maxlen
-0
-
-0
-
-Maximum object code length
-31
-
-
-158351C4-310E-4E60-AD98-A8AE9C963ABF
-MaxColIndex
-0
-
-0
-
-Maximum number of columns in an index
-16
-
-
-A6311922-FFDD-48A8-BFF1-99B7FA752D4D
-Enable
-0
-
-0
-
-Index allowed
-1
-
-
-63D26606-B484-4A2C-AC86-C366BF8E2124
-EnableAscDesc
-0
-
-0
-
-ASC, DESC keywords allowed
-
-
-E67A82C2-24E0-4C5E-AB7C-CAEE31E7DDCF
-UniqName
-0
-
-0
-
-Unique index name in the database
-1
-
-
-C26CDC7E-654B-40BD-AB1E-A55CD2DF68D3
-Create
-create [%UNIQUE%] index %INDEX% on %TABLE%[ using %INDEXTYPE%] (
-%CIDXLIST%
-)
-[%OPTIONS%]
-0
-
-0
-
-Command for creating an index. Example: create index %INDEX%
-
-
-AA8102D0-D4B0-4812-B4F4-25318309F35B
-AddColIndex
-%COLUMN%
-0
-
-0
-
-Command for defining an index column
-
-
-A496C837-C471-4255-A9A1-E7ADA47099A2
-Options
-tablespace %s : category=tablespace
-where %s
-0
-
-0
-
-Default options for creating an index
-
-
-89E10A37-4899-40B7-BDEF-EF62CC4EEA5A
-Drop
-drop index %INDEX%
-0
-
-0
-
-Command for dropping an index. Example: drop index %INDEX%
-
-
-A3892D84-13EC-4B8D-88D6-C7F04A4F2FD7
-IndexType
-BTREE
-RTREE
-HASH
-0
-
-0
-
-List of types available for an index
-
-
-19D48614-2538-48BD-80E4-E9E932CEEDE5
-SqlListQuery
-{OWNER, TABLE, INDEX, UNIQUE, INDEXTYPE, CIDXLIST}
-
-select
- pg_get_userbyid(t.relowner),
- t.relname,
- i.relname,
- case when (x.indisunique) then 'unique' else '' end,
- (select c.amname from pg_am c where c.oid = i.relam),
- pg_get_indexdef(x.indexrelid, 1, True)
- || case when (x.indnatts > 1) then ', ' || pg_get_indexdef(x.indexrelid, 2, True) else '' end
- || case when (x.indnatts > 2) then ', ' || pg_get_indexdef(x.indexrelid, 3, True) else '' end
- || case when (x.indnatts > 3) then ', ' || pg_get_indexdef(x.indexrelid, 4, True) else '' end
- || case when (x.indnatts > 4) then ', ' || pg_get_indexdef(x.indexrelid, 5, True) else '' end
- || case when (x.indnatts > 5) then ', ' || pg_get_indexdef(x.indexrelid, 6, True) else '' end
- || case when (x.indnatts > 6) then ', ' || pg_get_indexdef(x.indexrelid, 7, True) else '' end
- || case when (x.indnatts > 7) then ', ' || pg_get_indexdef(x.indexrelid, 8, True) else '' end as coln
-from
- pg_class t
- join pg_index x on (x.indrelid = t.oid and x.indisprimary is false)
- join pg_class i on (i.oid = x.indexrelid)
-where 1=1
-[ and pg_get_userbyid(t.relowner)=%.q:OWNER%]
-[ and t.relname=%.q:TABLE%]
-order by 1, 2, 3
-
-0
-
-1341908522
-mledier
-SQL query to list objects
-
-
-690BA164-502C-4CD7-87D2-9D103EC03A9D
-EnableFunction
-0
-
-0
-
-Function-based indexes allowed
-1
-
-
-F6066718-C8EF-4569-9A40-03BC0A51237D
-SqlOptsQuery
-{OWNER, TABLE, INDEX, OPTIONS}
-
-select
- pg_get_userbyid(t.relowner),
- t.relname,
- i.relname,
- case when (i.reltablespace = 0) then '' else 'tablespace ' || (select s.spcname from pg_tablespace s where s.oid = i.reltablespace) end
- ||case when (x.indpred is null) then '' else ' where ' || pg_get_expr(x.indpred, t.oid, false) end as coln
-from
- pg_class t
- join pg_index x on (x.indrelid = t.oid and x.indisprimary is false)
- join pg_class i on (i.oid = x.indexrelid)
-where (i.reltablespace != 0) or (x.indpred is not null)
-[ and pg_get_userbyid(t.relowner) = %.q:OWNER%]
-[ and t.relname = %.q:TABLE%]
-[ and i.relname = %.q:INDEX%]
-0
-
-1341908522
-mledier
-SQL query to reverse object physical options
-
-
-
-
-12961F66-AA6A-46EF-B73E-0429D5753729
-Sequence
-SQNC
-0
-
-0
-
-The following system variables are available:
- "SQNC" // generated code of the sequence
-
-
-
-2590B828-ED12-472D-BD57-6C94ACB0018D
-Enable
-0
-
-0
-
-Sequence allowed
-1
-
-
-E8D096B7-6265-4F0A-827E-AA7D09CD2D75
-Create
-create sequence %SQNC%
-[%OPTIONS%]
-0
-
-0
-
-Command to create a sequence
-
-
-04BD7462-001C-4E2A-9549-28DB02D36F04
-Drop
-drop sequence %SQNC%
-0
-
-0
-
-Command to drop a sequence
-
-
-15DD78FF-1E58-44E3-8F0F-3B3B308D4E0F
-Options
-increment %d
-minvalue %d
-maxvalue %d
-start %d
-cache %d
-cycle
-
-0
-
-0
-
-Options for creating a sequence
-
-
-E063B299-96AF-4761-8BAF-F0C68AEBF420
-DefOptions
-0
-
-0
-
-Default values for sequence options
-
-
-1BE49214-419D-45F0-A7C4-5317B5191708
-SqlListQuery
-{SQNC}
-
-select
- s.relname
-from
- pg_class s
-where
- s.relkind = 'S'
-order by 1
-0
-
-0
-
-SQL query to list objects
-
-
-089823CE-5C3C-4E6C-8ADC-853E7EFEB8A5
-SqlAttrQuery
-{SQNC, OPTIONS}
-
-select
- s.sequence_name,
- ('increment ' || (increment_by::varchar))::varchar
-from
- [%QUALIFIER%]%SQNC% s
-
-0
-
-0
-
-SQL query to reverse object attributes
-
-
-780D038C-ECD5-4745-8A4A-101DB3C07F68
-Rename
-rename %OLDNAME% to %NEWNAME%
-0
-
-0
-
-Command for renaming a sequence
-
-
-
-
-FF3844ED-6B0B-40E6-937B-917D5CB424A8
-Column
-COLN
-0
-
-0
-
-The following system variables are available:
-(parent table items are also available for columns)
- "COLUMN" // generated code of the column
- "COLNNO" // position of the column in the list of columns of the table
- "COLNNAME" // name of the column
- "COLNCODE" // code of the column
- "PRIMARY" // keyword "primary" if the column is primary
- "ISPKEY" // TRUE if the column is part of the primary key
- "FOREIGN" // TRUE if the column is part of one foreign key
-
-
-
-828D9749-94BF-484F-A06C-5C7B1F960903
-Maxlen
-0
-
-0
-
-Maximum object code length
-31
-
-
-CB82A9E9-FDD3-49DA-BA2F-8DFF3D31F8B8
-EnableDefault
-0
-
-0
-
-Default values allowed
-1
-
-
-09695073-87B8-48F8-98FF-93E405631B92
-ConstName
-CKC_%.U17:COLUMN%_%.U8:TABLE%
-0
-
-0
-
-Constraint name template for a column check parameter
-
-
-8AC0DE6C-5EC7-4F0D-A25F-9446CC0E9101
-Add
-%20:COLUMN% [%IDENTITY%?SERIAL:%20:DATATYPE%][.Z:[ %NULL%][ %NOTNULL%][ default %DEFAULT%]
- [%CONSTDEFN%]]
-0
-
-0
-
-Command for defining a table column
-
-
-1A0A97C8-7902-4E80-85DE-03EB9F1C78B9
-ColumnComment
-comment on column %TABLE%.%COLUMN% is
-%.q:COMMENT%
-
-0
-
-0
-
-Command for adding a column comment
-
-
-2F9C3E97-9D17-4AA8-A23F-B766F9C7EE8E
-Rename
-alter table %TABLE%
- rename %OLDCOLN% to %NEWCOLN%
-0
-
-0
-
-Command for renaming a column
-
-
-6484FA2C-0C2D-4297-B18B-C4CE8E6E33DB
-Create
-alter table %TABLE%
- add[ column] %COLUMN% %DATATYPE%[%DEFAULT%? default %DEFAULT%]
-0
-
-1370501484
-I063968
-Command for adding a column
-
-
-69CDADE9-BDB7-45A9-9992-0DA3A03A3A37
-Drop
-0
-
-0
-
-Command for dropping a column
-Not yet supported. Should be
-alter table %TABLE% drop[ column] %COLUMN% [restrict | cascade]
-
-
-
-827206FF-8FAC-4D38-A0A3-BEA2E85EBDCC
-Enable
-0
-
-0
-
-Column allowed
-1
-
-
-A0B859F4-3181-4865-9A5B-80B41DA085CA
-ModifyColnDflt
-alter table %TABLE%
- alter[ column] %COLUMN% [%DEFAULT%?set default %DEFAULT%:drop default]
-0
-
-0
-
-Command for modifying a column default in an alter table statement
-
-
-B18B751A-E445-443A-B4C6-99B933BFD22A
-EnableIdentity
-0
-
-0
-
-Identity keyword entry support. Identity columns are serial counters maintains by the database
-1
-
-
-73CB8FE3-BCD6-4A0A-9A77-3370E9690128
-SqlListQuery
-{OWNER, TABLE, COLUMN, DTTPCODE, LENGTH, PREC, ISMAND, DEFAULT, COMMENT}
-
-select
- pg_get_userbyid(t.relowner),
- t.relname,
- c.attname,
- case(c.attndims) when 0 then d.typname else (select x.typname from pg_type x where x.oid = d.typelem) || '[]' end,
- case(c.atttypmod >> 16) when 0 then (c.atttypmod - ((c.atttypmod >> 16)<<16) - 4) else (c.atttypmod >> 16) end,
- case(c.atttypmod >> 16) when 0 then 0 else (c.atttypmod - 65536 * (c.atttypmod / 65536) - 4) end,
- CAST(NULLIF(c.attnotnull,false) as VARCHAR(10)),
- case(c.atthasdef)
- when true then (select adsrc::varchar from pg_attrdef f where f.adrelid = t.oid and f.adnum = c.attnum)::varchar
- else '' end::varchar as coln,
- col_description(t.oid, c.attnum)
-from
- pg_class t
- join pg_attribute c on (c.attrelid = t.oid and c.attnum > 0 and c.attisdropped is false)
- join pg_type d on (d.oid = c.atttypid)
-where t.relkind = 'r'
-[ and pg_get_userbyid(t.relowner) = %.q:OWNER%]
-[ and t.relname = %.q:TABLE%]
-order by 1, 2, c.attnum
-0
-
-1614343383
-w00484080
-SQL query to list objects
-
-
-32224D8A-DF82-45F5-B446-39F2272E16EA
-SqlChckQuery
-{OWNER, TABLE, COLUMN, CONSTNAME, CONSTRAINT}
-
-select
- pg_get_userbyid(t.relowner), t.relname, c.attname, k.conname, k.consrc
-from
- pg_constraint k
- join pg_class t on (t.oid = k.conrelid)
- join pg_attribute c on (c.attrelid = t.oid and c.attnum > 0 and c.attnum = k.conkey[1])
-where
- k.contype = 'c'
- and k.conrelid != 0
- and array_dims(k.conkey) = '[1:1]' -- a column constraint applies on only one column !
-[ and pg_get_userbyid(t.relowner) = %.q:OWNER%]
-[ and t.relname = %.q:TABLE%]
-[ and c.attname = %.q:COLUMN%]
-0
-
-1341909104
-mledier
-SQL query to reverse object check constraints
-
-
-A7FBC232-1BEB-4789-8E22-0148B2ABA21E
-DefineColnChck
-[%R%?[[foreign key (%S%) ]references %S%[(%S%)][ with no index]][%ISPKEY%?[constraint %PKNAME% ]primary key ][%ISAKEY%?[constraint %AKNAME% ]unique ]][[constraint %CONSTNAME%] check (%.A:CONSTRAINT%)]
-
-0
-
-0
-
-Allows to customize the script of column check constraints
-
-
-
-
-4F5CF591-46F1-489C-BB52-8456FC8F6387
-MaxConstLen
-0
-
-0
-
-Maximum constraint name length
-31
-
-
-162F26E6-8FF1-42AD-B4E8-F671074E05DF
-EnableOption
-0
-
-0
-
-Physical options allowed YES/NO
-1
-
-
-00D9D8AE-E5D1-456C-9E00-6413C2F27450
-Reference
-REFR
-0
-
-0
-
-The following system variables are available:
- "REFR" // generated code of the reference
- "REFNAME" // reference name
- "PARENT" // generated code of the parent table
- "PNAME" // name of the parent table
- "PCODE" // code of the parent table
- "CHILD" // generated code of the reference
- "CNAME" // name of the child table
- "CCODE" // code of the child table
- "PQUALIFIER" // qualifier of the parent table. See QUALIFIER
- "CQUALIFIER" // qualifier of the child table. See QUALIFIER
- "REFRNAME" // Reference name
- "REFRCODE" // Reference code
- "FKCONSTRAINT" // Reference constraint name (foreign key)
- "PKCONSTRAINT" // constraint name of the parent key used to reference object
- "CKEYCOLUMNS" // list of parent key columns. Eg: C1, C2, C3
- "FKEYCOLUMNS" // list of child foreign key columns. Eg:
- "UPDCONST" // Update declarative constraint. Keywords "restrict", "cascade", "set null" or "set default"
- "DELCONST" // Delete declarative constraint. Keywords "restrict", "cascade", "set null" or "set default"
- "MINCARD" // Min cardinality
- "MAXCARD" // Max cardinality
- "POWNER" // Parent table owner
- "COWNER" // child table owner
- "CHCKONCMMT" // TRUE when check on commit is selected on the reference (ASA 6.0 specific)
-
-For reference joins (couple of column in a reference),
-the following system variables are available:
- "CKEYCOLUMN" // generated code of the parent table column (primary key)
- "FKEYCOLUMN" // generated code of the child table column (foreign key)
- "PK" // primary key column generated code
- "PKNAME" // primary key column name
- "FK" // foreign key column generated code
- "FKNAME" // foreign key column name
- "AK" // alternate key column code (same as PK)
- "AKNAME" // alternate key column name (same as PKNAME)
- "COLTYPE" // primary column column datatype
- "DEFAULT" // foreign key column default value
-
-
-
-EB1D6CAE-4F39-40A9-A085-7E520D794CC3
-Enable
-0
-
-0
-
-Foreign key allowed
-1
-
-
-9CFA076E-382C-4E94-BD87-C8B9A0279178
-FKAutoIndex
-0
-
-0
-
-Foreign key is auto-indexed
-
-
-2C3A75D2-AF8F-4B73-8811-088384CF5768
-ConstName
-FK_%.U8:CHILD%_%.U9:REFR%_%.U8:PARENT%
-0
-
-0
-
-Constraint name template for foreign keys
-
-
-EC2AEA60-0853-4A0D-A257-CF973D2C1422
-CheckOnCommit
-0
-
-0
-
-Referential integrity test differed after the COMMIT
-
-
-D2D10DAE-E158-45A1-A6C6-494BE005B975
-Add
-[constraint %CONSTNAME% ]foreign key (%FKEYCOLUMNS%)
- references %PARENT%[ (%CKEYCOLUMNS%)]
- [ on delete %DELCONST%][ on update %UPDCONST%]
-0
-
-0
-
-Command for defining a foreign key
-
-
-78ED96D5-7585-4E89-91E2-BAA53B8B5A28
-DclUpdIntegrity
-RESTRICT
-CASCADE
-SET NULL
-SET DEFAULT
-NONE
-0
-
-0
-
-Declarative referential integrity constraint allowed for update
-
-
-317E3894-CA93-4320-8BDD-0B71E3C76394
-DclDelIntegrity
-RESTRICT
-CASCADE
-SET NULL
-SET DEFAULT
-NONE
-0
-
-0
-
-Declarative referential integrity constraint allowed for delete
-
-
-D60B0ACA-00FB-4AB4-809C-38AD4FEADB2D
-Create
-alter table %TABLE%
- add [constraint %CONSTNAME% ]foreign key (%FKEYCOLUMNS%)
- references %PARENT%[ (%CKEYCOLUMNS%)]
- [ on delete %DELCONST%][ on update %UPDCONST%][%Deferrable%? deferrable[%ForeignKeyConstraintDeferred%? initially deferred: initially immediate]]
-
-0
-
-0
-
-Command for adding a foreign key
-
-
-CCBCF292-6A8A-496A-AB10-81DC9B1D60A0
-SqlListQuery
-{POWNER, PARENT, COWNER, CHILD, CONSTNAME, Deferrable, ForeignKeyConstraintDeferred, UPDCONST, DELCONST, FKEYCOLUMNS, CKEYCOLUMNS}
-
-select
- pg_get_userbyid(p.relowner),
- p.relname,
- pg_get_userbyid(c.relowner),
- c.relname,
- k.conname,
- case when (k.condeferrable) then 'true' else 'false' end,
- case when (k.condeferred) then 'true' else 'false' end,
- case(k.confupdtype) when 'r' then 'restrict' when 'c' then 'cascade' when 'n' then 'set null' when 'd' then 'set default' else 'no action' end::varchar as colnA,
- case(k.confdeltype) when 'r' then 'restrict' when 'c' then 'cascade' when 'n' then 'set null' when 'd' then 'set default' else 'no action' end::varchar as colnB,
- substring(substring(pg_get_constraintdef(k.oid) from 'FOREIGN KEY (.*) REFERENCES') from 2 for char_length(substring(pg_get_constraintdef(k.oid) from 'FOREIGN KEY (.*) REFERENCES')) - 2) as colnC,
- substring(substring(pg_get_constraintdef(k.oid) from 'REFERENCES '||p.relname||'(.*)') from 2 for position(')' in substring(pg_get_constraintdef(k.oid) from 'REFERENCES '||p.relname||'(.*)') ) - 2) as colnD
-from
- pg_constraint k
- join pg_class p on (p.oid = k.confrelid)
- join pg_class c on (c.oid = k.conrelid)
-where
- k.contype = 'f'
-[ and pg_get_userbyid(c.relowner) = %.q:OWNER%]
-[ and c.relname=%.q:TABLE%]
-order by 1, 2, 3, 4, 5
-0
-
-1341908522
-mledier
-SQL query to list objects
-
-
-
-
-394D6E77-60DA-41C7-89D4-FB9783581615
-PKey
-PKEY
-0
-
-0
-
-The following system variables are available:
-(parent table items are also available for keys)
- "PKEYCOLUMNS" // list of primary key columns. Eg: A, B
- "ISPKEY" // TRUE when the key is the primary key of the table
- "KEY" // constraint name
- "PKEY" // constraint name for primary key
- "AKEY" // constraint name for alternate key
- "ISMULTICOLN" // TRUE if key has more than one column
- "CLUSTER" // keyword cluster
-
-
-FD4344E9-E9CC-4B7C-9BB0-4E4EED0CEE72
-Enable
-0
-
-0
-
-Primary key allowed
-1
-
-
-35F0CA00-8A94-4D42-A911-F9BCFF8C206D
-PkAutoIndex
-0
-
-0
-
-Primary key is auto-indexed
-
-
-9E64641C-FC08-4E73-9433-D69D614EC61D
-ConstName
-PK_%.U27:TABLE%
-0
-
-0
-
-Constraint name template for primary keys
-
-
-7F2E72C1-2E4C-4159-8942-AAFA742A4131
-Add
-[constraint %CONSTNAME% ]primary key (%PKEYCOLUMNS%)
-0
-
-0
-
-Command for defining a primary key
-
-
-303ED984-E4BB-4FAA-BF86-95DBBBCCF697
-Create
-alter table %TABLE%
- add [constraint %CONSTNAME% ]primary key (%PKEYCOLUMNS%)
-
-0
-
-0
-
-Command for adding a primary key
-
-
-C02EC114-6CBB-45B1-B4B5-6B7E3CEBED89
-Options
-using index tablespace %s
-0
-
-0
-
-Available options for creating a primary key
-
-
-6CBAA878-3E66-4E06-B35F-9BCA1250C13A
-Drop
-alter table %TABLE%
- drop constraint %CONSTNAME%
-0
-
-0
-
-Command for dropping a primary key
-
-
-
-
-5CA1DDBD-771A-4DEE-99A2-325F82A15288
-Key
-KEY
-0
-
-0
-
-The following system variables are available:
-(parent table items are also available for keys)
- "COLUMNS" // List of columns of the key. Eg: "A, B, C"
- "ISPKEY" // TRUE when the key is the primary key of the table
- "KEY" // constraint name
- "PKEY" // constraint name for primary key
- "AKEY" // constraint name for alternate key
- "ISMULTICOLN" // TRUE if key has more than one column
- "CLUSTER" // keyword cluster
-
-
-
-B6AA8161-11E3-42C4-AD8C-5B8E0804508A
-Enable
-0
-
-0
-
-UNIQUE constraint allowed for tables
-1
-
-
-29F6C46C-6412-4DE9-97FC-6BF9ED12C4F6
-UniqConstAutoIndex
-0
-
-0
-
-UNIQUE constraint is auto-indexed
-1
-
-
-FE710D18-9664-4853-860B-089C2AC56D43
-ConstName
-AK_%.U18:AKEY%_%.U8:TABLE%
-0
-
-0
-
-Constraint name template for alternate keys
-
-
-3E8D0AD3-B254-4556-9885-B6D603C45759
-Add
-[constraint %CONSTNAME% ]unique (%COLUMNS%)
-0
-
-0
-
-Command for defining an alternate key
-
-
-B946017B-7EB2-4E25-8864-27BFB6774ED0
-Create
-alter table %TABLE%
- add [constraint %CONSTNAME% ]unique (%COLUMNS%)
-0
-
-0
-
-Command for adding an alternate key
-
-
-BDE692C1-B51D-48EB-81FB-0BFCF3B49572
-Options
-using index tablespace %s
-
-0
-
-0
-
-Available options for an alternate key
-
-
-619ECBA7-A1D2-4EE3-B8C9-F811E7CC0290
-SqlListQuery
-{OWNER ID, TABLE ID, CONSTNAME ID, ISPKEY ID, COLUMNS ...}
-
-select
- pg_get_userbyid(t.relowner),
- t.relname,
- i.relname,
- CAST(NULLIF(x.indisprimary,false) as VARCHAR(10)),
- a.attname || ','::varchar
-from
- pg_index x
- join pg_class t on (t.oid = x.indrelid and t.relkind = 'r')
- join pg_class i on (i.oid = x.indexrelid)
- join pg_attribute a on (a.attrelid = i.oid)
-where x.indisprimary is true
-[ and pg_get_userbyid(t.relowner)=%.q:OWNER%]
-[ and t.relname=%.q:TABLE%]
-order by 1, 2, 3, a.attnum
-
-0
-
-1614343383
-w00484080
-SQL query to list objects
-
-
-C32D12FB-648F-4281-B1D7-0BE9540242C9
-Drop
-alter table %TABLE%
- drop constraint %CONSTNAME%
-0
-
-0
-
-Command for dropping an alternate key
-
-
-
-
-5C93D4F0-AD9E-4ACC-90D2-F4A90002BE81
-Database
-DTBS
-0
-
-0
-
-The following system variables are available:
- "DATABASE" // generated code of the database
-
-
-
-D00C6FC9-2B52-4462-B5B2-C46605197C05
-Create
-create database %DATABASE%
-[ [%R%?with ][.Z:[ template[ =] %Template%][ encoding[ =] %.q:Encoding%][ tablespace[ =] %OPTIONS%]]]
-0
-
-0
-
-Command for creating a database. Example: create database %DATABASE%
-
-
-1347A7DC-CC8D-4365-B8B7-AC815C936A87
-OpenDatabase
-0
-
-0
-
-Command for opening a database. Example: open database %DATABASE%
-
-
-883CDA80-551C-43E7-A0FA-19468A55E254
-CloseDatabase
-0
-
-0
-
-Command for closing a database. Example: close database
-
-
-527489B6-A8CA-491E-82A9-FB300D10904D
-Drop
-drop database %DATABASE%
-0
-
-0
-
-Command for dropping a database. Example: drop database %DATABASE%
-
-
-6271B61C-5571-4923-AD35-50AE6044E279
-Enable
-0
-
-0
-
-Database allowed
-1
-
-
-7B94D113-E137-4FF2-B383-A8FB0E129E1D
-EnableManyDatabases
-0
-
-0
-
-Many databases allowed
-1
-
-
-43028201-52E6-4DC1-B48D-EBECCDC7EE94
-Options
-<tablespace> %s : category=TABLESPACE
-0
-
-0
-
-Available options for creating a database
-
-
-E616EC6E-2767-4410-BC15-764AA6B67647
-SqlListQuery
-{DATABASE, COMMENT, Encoding, OPTIONS}
-
-select
- d.datname,
- obj_description(d.oid, 'pg_database'),
- pg_encoding_to_char(d.encoding),
- (select t.spcname from pg_tablespace t where t.oid = d.dattablespace)
-from
- pg_database d
-order by 1
-0
-
-0
-
-SQL query to list objects
-
-
-
-
-6D6DC36E-2660-47B5-9731-E97BB1AFC19C
-View
-VIEW
-0
-
-0
-
-The following system variables are available:
- "VIEW" // generated code of the view
- "VIEWNAME" // view name
- "VIEWCODE" // view code
- "VIEWCOLN" // List of columns of the view. Eg: "A, B, C"
- "SQL" // SQL text of the view. Eg: Select * from T1
- "VIEWCHECK" // Keyword "with check option" if selected on the view
- "SCRIPT" // complete view creation order. Eg: create view V1 as select * from T1
-
-
-
-60C4C986-06CB-4FB0-80C1-7444D0E2DD0F
-Create
-create[ or replace] view %VIEW%[ (%VIEWCOLN%)] as
-%SQL%
-0
-
-0
-
-Command for creating a view. Example: create view %VIEW%
-
-
-D7F80660-A729-463E-8715-6602F92DAA4A
-Drop
-drop view %VIEW%
-0
-
-0
-
-Command for dropping a view. Example: drop view %VIEW%
-
-
-A2DF1F7F-1FE8-4053-898C-741F30BD0E32
-ViewComment
-comment on view %VIEW% is
-%.q:COMMENT%
-
-0
-
-0
-
-Command for adding a view comment.
-
-
-A65C3C8D-4FF8-4BAC-B525-7B7C0A85BA0E
-SqlListQuery
-{OWNER, VIEW}
-
-select
- pg_get_userbyid(t.relowner),
- t.relname
-from
- pg_class t
-where t.relkind = 'v'
-[ and pg_get_userbyid(t.relowner) = %.q:SCHEMA%]
-order by 1, 2
-0
-
-1341908522
-mledier
-SQL query to list objects
-
-
-9E32900C-BF73-416C-8A2B-EF1770CB4D13
-Enable
-0
-
-0
-
-View allowed
-1
-
-
-FAED4860-650D-4088-B0E6-574FD05B32A5
-SqlAttrQuery
-{OWNER, VIEW, SQL}
-
-select
- pg_get_userbyid(v.relowner),
- v.relname,
- pg_get_viewdef(v.oid)
-from
- pg_class v
-where v.relkind = 'v'
-[ and pg_get_userbyid(v.relowner) = %.q:OWNER%]
-[ and v.relname = %.q:VIEW%]
-
-0
-
-1341908522
-mledier
-SQL query to reverse object attributes
-
-
-7B673B74-71BD-423E-80F6-670FFCDA0C25
-SetOwnership
-[-- set view ownership
-]alter table %VIEW% owner to %OWNER%
-;
-0
-
-0
-
-1
-
-
-4AD2B5CD-4B14-41DE-AA40-2A9977165E28
-AfterCreate
-[%OWNER%?%SetOwnership%]
-0
-
-0
-
-Commands executed after create statement
-
-
-B5AABC8F-D6D9-49DE-8200-FC6813E9259F
-ReversedStatements
-SetOwnership
-0
-
-0
-
-Additional statements to be reversed by script
-
-
-
-
-315292D9-F98A-4EE5-B761-6515CB98B37C
-Domain
-PDMDOMN
-0
-
-0
-
-The following system variables are available:
- "DOMAIN" // generated code of the domain (also available for columns)
-SQL Server specific domain system variables:
- "RULENAME" // name of the rule object associated with the domain
- "DEFAULTNAME" // name of the default object associated with the domain
-
-
-
-609E7A72-CC2A-4D04-A138-92795CBEACC9
-Create
-[%Stereotype%=CompositeType?create type [%QUALIFIER%]%DOMAIN% as (%CompositeDefinition%):[%Stereotype%=BaseType?create type [%QUALIFIER%]%DOMAIN% ([.Z:[
- input=%ExtTypeInput%,][
- output=%ExtTypeOutput%,][
- internallength=%ExtTypeLength%][,
- default=%DEFAULT%][,
- element=%ExtTypeElement%][,
- delimiter=%.q:ExtTypeDelimiter%][,
- send=%ExtTypeSend%][,
- receive=%ExtTypeReceive%][%ExtTypePassedByValue%?, passedbyvalue]]
-):create domain [%QUALIFIER%]%DOMAIN%[ as] %DATATYPE%]]
-
-0
-
-0
-
-Command for creating a user defined data type
-
-
-C4EF9C30-D684-4430-AE35-A4EE0A89648B
-Maxlen
-0
-
-0
-
-Maximum object code length
-30
-
-
-EB4A3477-D194-4ADC-8684-4E398F454C2E
-Enable
-0
-
-0
-
-User defined data types allowed
-1
-
-
-46CB428B-DC23-4DBE-98CB-EA7BD9DA1E64
-Drop
-[%Stereotype%=BaseType?drop type %DOMAIN%:drop domain %DOMAIN%]
-0
-
-0
-
-Command for dropping a user defined data type
-
-
-F776AAE4-1B7D-4417-ADA0-925918FA8C46
-SqlListQuery
-{OWNER, DOMAIN, DTTPCODE, Stereotype}
-
-select
- pg_get_userbyid(d.typowner),
- d.typname,
- case (d.typtype) when 'd' then (select t.typname from pg_type t where t.oid = d.typBaseType) else '' end,
- case (d.typtype) when 'b' then 'BaseType' when 'c' then 'CompositeType' else '' end
-from
- pg_type d
- left outer join pg_class r on (r.oid = d.typrelid)
-where
- (d.typtype in ('b', 'd') or (d.typtype = 'c' and r.relkind = 'c'))
-[ and pg_get_userbyid(d.typowner) = %.q:SCHEMA%]
-order by 1, 2
-0
-
-1341908522
-mledier
-SQL query to list objects
-
-
-AFA53FAE-E05C-4C4B-BB73-A8EC404CFFE6
-EnableOwner
-0
-
-0
-
-Owner allowed
-1
-
-
-E2BAA09E-4664-4153-A28C-A206743C8BD5
-EnableCheck
-0
-
-0
-
-Allows the creation of checks on the domain
-1
-
-
-DA4BAC34-7D11-4D74-9A58-5142566F9D88
-SqlCompositeTypeColnList
-{OWNER ID, DOMAIN ID, CompositeDefinition ...}
-
-select
- pg_get_userbyid(r.relowner),
- r.relname,
- c.attname || ' ' || t.typname || ', '
-from
- pg_class r
- join pg_attribute c on (c.attrelid = r.oid)
- join pg_type t on (t.oid = c.atttypid)
-where
- r.relkind = 'c'
-[ and r.relname = %.q:DOMAIN%]
-[ and pg_get_userbyid(r.relowner) = %.q:OWNER%]
-order by 1, 2, c.attnum
-0
-
-0
-
-1
-
-
-F67508D3-3C78-4C24-BC4B-55D90C64689A
-ReversedQueries
-SqlCompositeTypeColnList
-0
-
-0
-
-Additional attributes queries to be called by ODBC
-
-
-330B7CDB-EF27-4ADE-BBFB-56329E4AE80A
-UddtComment
-comment on [%Stereotype%=BaseType?type:[%Stereotype%=CompositeType?type:domain]] %DOMAIN% is
-%.q:COMMENT%
-0
-
-0
-
-command for adding a user-defined data type comment
-
-
-
-
-2D803C02-6E8E-42E3-884C-99D8D9D11B0A
-Procedure
-PROC
-0
-
-0
-
-The following system variables are available:
- "PROC" // generated code of the procedure (also available for trigger when the trigger is implemented with a procedure)
- "FUNC" // generated code of the procedure if the procedure is a function (with return value)
- "PROCPRMS" // list of parameters of the procedure (also available for function)
-
-
-
-4975CC75-CAB7-4FAC-9989-EC181498F4EB
-Enable
-0
-
-0
-
-Procedure allowed
-1
-
-
-B227AD93-0969-43CE-B311-735CF6FA3BA7
-EnableFunc
-0
-
-0
-
-Function allowed
-1
-
-
-FDA1A9E3-3694-48FD-A788-228D53B19829
-Maxlen
-0
-
-0
-
-Maximum object code length
-31
-
-
-567B59B0-D391-4E8B-B6EB-F9280D8458C8
-MaxFuncLen
-0
-
-0
-
-Function name length
-31
-
-
-93FB86F2-AFA3-40FB-A122-704F47E14567
-DropFunc
-drop function %FUNC% ( <type> )
-0
-
-0
-
-Command for dropping a function. Example: drop function %FUNC%
-
-
-68DA6237-E801-4609-8DF3-9913541D763C
-CustomFunc
-CREATE FUNCTION %FUNC% ( <type> )
- RETURNS <type>
- AS '%SCRIPT%'
- LANGUAGE '%ProcLanguage%'
-;
-0
-
-0
-
-Command for creating a function
-
-
-251982F3-DE0C-4FAA-A131-7DBFE0759575
-SqlListQuery
-{OWNER, PROC, FUNC}
-
-select
- pg_get_userbyid(p.proowner),
- p.proname,
- case(pronargs) when 0 then '' else p.proname end
-from
- pg_proc p
- join pg_language l on (l.oid = p.prolang and l.lanname <> 'internal')
-[where pg_get_userbyid(p.proowner) = %.q:SCHEMA%]
-order by 1, 2, 3
-0
-
-0
-
-SQL query to list objects
-
-
-192AC9A1-15B6-4DF7-BC4C-B516BDAF88FB
-SqlAttrQuery
-{OWNER, PROC, ProcLanguage, TRGDEFN}
-
-select
- pg_get_userbyid(p.proowner),
- p.proname,
- l.lanname,
- p.prosrc::varchar
-from
- pg_proc p
- join pg_language l on (l.oid = p.prolang and l.lanname <> 'internal')
-where 1=1
-[ and pg_get_userbyid(p.proowner) = %.q:OWNER%]
-[ and p.proname = %.q:PROC%]
-0
-
-0
-
-SQL query to reverse object attributes
-
-
-40FF2B3A-67ED-44EF-A265-8A9E228E7687
-Create
-create procedure %PROC%[(%PROCPRMS%)]
-as %.q:TRGDEFN%
-0
-
-0
-
-Command for creating a procedure. Example: create procedure %PROC% %TRGDEFN%
-
-
-AAEB8CBB-C876-4B6D-BE50-E6E73BC964D8
-CreateFunc
-create[ or replace] function %FUNC%[(%PROCPRMS%)]
-%TRGDEFN%
-0
-
-0
-
-Command for creating a function. Example: create function %FUNC% %TRGDEFN%
-
-
-
-
-8FF2CB5D-C3CB-4D91-BE5B-64EE3E717750
-User
-USER
-0
-
-0
-
-The following system variables are available:
- "USER" // generated code of the user
-
-
-
-E6F5A60D-CA9F-44E1-8E1C-126237EE8264
-Maxlen
-0
-
-0
-
-Maximum object code length
-31
-
-
-D9017676-BDD5-453E-924C-0D0D36CC2448
-Enable
-0
-
-0
-
-User allowed
-1
-
-
-F8617015-368F-4D56-9D87-9FE3DADBC19A
-SqlListQuery
-{USER, Schema, SysId, CreateDB, CreateUser, Validity, Owner}
-
-select
- usename, 'false',
- usesysid,
- case (usecreatedb) when true then 'true' else 'false' end,
- case (usesuper) when true then 'true' else 'false' end,
- to_char(valuntil, 'DD/MM/YYYY HH24:MI:SS'),
- ''
-from
- pg_user
-[where
- UPPER(usename) = %.qU:SCHEMA%]
-union select
- nspname, 'true',
- 0,
- '',
- '',
- '',
- pg_get_userbyid(nspowner)
-from
- pg_namespace
-[where UPPER(nspname) = %.qU:SCHEMA%]
-order by 1
-0
-
-0
-
-SQL query to list objects
-
-
-AE3804C2-2F0E-498E-AE13-BFE9F75A1DB7
-Create
-[%CanCreate%?[%Schema%?create schema %USER%[ authorization %Owner.Code%]:create user %USER%[%R%? with][.Z:[ sysid %SysId%][%CreateDB%? createdb:[%R%? nocreatedb]][%CreateUser%? createuser:[%R%? nocreateuser]][
- [%EncryptedPassword%? encrypted: unencrypted] password %.q:PASSWORD%][ valid until %.q:Validity%]]
-]]
-
-0
-
-1246366826
-mledier
-Command for creating a user
-
-
-0C08C855-C137-4B0C-91DD-5C84925F17C8
-Drop
-[%CanCreate%?drop [%Schema%?schema:user] %USER%]
-0
-
-1246367139
-mledier
-Command for dropping a user
-
-
-
-
-3F101A42-CA85-4BEA-A518-927051455323
-Trigger
-TRGR
-0
-
-0
-
-The following system variables are available:
-(parent table items are also available for indexes)
- trigger object specific items
- "ORDER" // order number of the trigger (to sort the triggers when the DBMS supports more than one trigger of one type)
- "TRIGGER" // generated code of trigger
- "TRGTYPE" // trigger type (keywords "beforeinsert", "afterupdate", ...)
- "TRGEVENT" // trigger event (keywords "insert", "update", "delete")
- "TRGTIME" // trigger time (keywords NULL, "before", "after")
- inside the body of the trigger, macros redefine variables on objects
- "REFNO" // reference position in the list of references of the table
- customized error messages management
- "ERRNO" // error number for standard error
- "ERRMSG" // error message for standard error
- "MSGTAB" // name of the table containing user-defined error messages
- "MSGNO" // in the user-defined error table, name of the column containing the error numbers
- "MSGTXT" // in the user-defined error table, name of the column containing the error messages
- "SCRIPT" // body of trigger or procedure
- "TRGDEFN" // complete body of the trigger definition. Contains variable declarations and body of trigger or procedure
-
-
-
-E19DFCA9-7B9C-4C66-94E1-6219E6D60F2A
-EnableMultiEvent
-0
-
-0
-
-Multiple event allowed
-1
-
-
-7F592BF2-1A0B-45C8-85FC-65AB6BF27D7A
-Drop
-drop trigger %TRIGGER% on [%QUALIFIER%]%TABLE%
-0
-
-0
-
-Command for dropping a trigger. Example: drop trigger %TRIGGER%
-
-
-6D51FD27-F0DA-4172-B79C-881FD8691D28
-SqlListQuery
-{OWNER, TABLE, TRIGGER, TRGEVENT, TRGTIME}
-
-select
- pg_get_userbyid(t.relowner),
- t.relname,
- g.tgname,
- case (g.tgtype & 28)
- when 4 then 'insert' when 8 then 'delete' when 16 then 'update'
- when 12 then 'insert or delete' when 20 then 'insert or update' when 24 then 'delete or update'
- when 28 then 'insert or delete or update' else '' end::varchar as coln,
- case (g.tgtype & 2)
- when 2 then 'before' when 0 then 'after' else '' end::varchar
-from
- pg_trigger g
- join pg_class t on (t.oid = g.tgrelid and t.relkind = 'r')
-where g.tgconstraint = 0
-[ and pg_get_userbyid(t.relowner) = %.q:SCHEMA%]
-order by 1, 2
-0
-
-1341907281
-mledier
-SQL query to list objects
-
-
-1A74C1FB-8DBF-49E1-8CC1-C218CBB058A6
-SqlAttrQuery
-{OWNER, TABLE, TRIGGER, SCRIPT}
-
-select
- pg_get_userbyid(t.relowner),
- t.relname,
- g.tgname,
- pg_get_triggerdef(g.oid)
-from
- pg_trigger g
- join pg_class t on (t.oid = g.tgrelid and t.relkind = 'r')
-where g.tgconstraint = 0
-[ and pg_get_userbyid(t.relowner) = %.q:SCHEMA%]
-[ and t.relname = %.q:TABLE%]
-[ and g.tgname = %.q:TRIGGER%]
-order by 1, 2
-0
-
-1341909260
-mledier
-SQL query to reverse object attributes
-
-
-CE4F0440-B491-4676-9435-73737B55A8FF
-UseErrorMsgTable
-let errno = %ERRNO%;
-select %MSGTXT%
-into errmsg
-from %MSGTAB%
-where %MSGNO% = %ERRNO%;
-raise exception -746, 0, errmsg;
-0
-
-0
-
-Errors handling using an error messages table
-
-
-5989F402-A130-4D39-AA84-E13023A49577
-UseErrorMsgText
-let errno = %ERRNO%;
-let errmsg = "%ERRMSG%";
-raise exception -746, 0, errmsg;
-0
-
-0
-
-Errors handling using fixed error messages
-
-
-00CC31F8-67B8-419E-82C9-CB8BDBE3C7ED
-Create
-create trigger %TRIGGER% %TRGTIME% %TRGEVENT% on %TABLE%
-%TRGDEFN%
-0
-
-0
-
-Command for creating a trigger. Example: create trigger on [%QUALIFIER%]%TABLE% %TRGDEFN%
-
-
-BCE86A5F-400D-4EF5-AFEA-7A66DE9E65D1
-Maxlen
-0
-
-0
-
-Maximum object code length
-30
-
-
-5D052D24-6CFE-4A8F-8662-E5599DBEB469
-DefaultTriggerName
-%TEMPLATE%_%.L:TABLE%
-0
-
-0
-
-Default trigger name
-
-
-802E3B4B-7A6E-451C-B065-37C52B07E693
-Enable
-0
-
-0
-
-Trigger allowed
-1
-
-
-34C945EE-91C3-44A0-990B-52391394D184
-EventDelimiter
-0
-
-0
-
-Events separation character.
-or
-
-
-DE6F260F-ADD8-4CE8-8FC3-58D9D68CE6C0
-Time
-before
-after
-0
-
-0
-
-Extended trigger times list.
-
-
-A19C9B0A-3FF2-43AE-8340-BF77D513A2E9
-Event
-insert
-delete
-update
-0
-
-0
-
-Extended trigger events list.
-
-
-
-
-7D1D2CDF-E58B-42B2-9016-5108F01CE18C
-Tablespace
-TSPC
-0
-
-0
-
-The following system variables are available:
- "TABLESPACE" // generated code of the tablespace
-
-
-
-0000D97B-6EF3-4C81-AC59-0AC769EF1889
-Enable
-0
-
-0
-
-Tablespace allowed
-1
-
-
-2BE7A654-B74D-4D5B-AA49-D6D2A546B6FE
-Create
-create tablespace %TABLESPACE%
-[ owner %TbspOwner%
-] location %.q:TbspLocation%
-0
-
-0
-
-Command for creating a tablespace. Example: create tablespace %TABLESPACE%
-
-
-0E7909E4-9E5E-4A10-80C0-CC8E1F8DD69C
-Drop
-drop tablespace %TABLESPACE%
-0
-
-0
-
-Command for dropping a tablespace. Example: drop tablespace %TABLESPACE%
-
-
-CD05E302-8958-41BF-9042-81185E8C6753
-SqlListQuery
-{TABLESPACE, TbspOwner, TbspLocation}
-
-select
- t.spcname,
- pg_get_userbyid(t.spcowner),
- t.spclocation
-from
- pg_tablespace t
-order by 1
-0
-
-0
-
-SQL query to list objects
-
-
-
-
-7837BA9D-D967-437A-95C3-C44DA43469A8
-Group
-GRPE
-0
-
-0
-
-Manages the group object.
-
-
-B2F69FF7-ECB8-4F16-82E5-E8BE6E333B20
-Enable
-0
-
-0
-
-Group allowed
-1
-
-
-92FE7ABE-3D9C-4D59-BBB1-0AE7F543E719
-Create
-create group %GROUP%
-[ [%R%?with ] sysid %SysId%]
-0
-
-0
-
-Command for creating a group.
-
-
-6B19B14B-B135-4310-9025-3783B7F72E25
-Drop
-drop group %GROUP%
-0
-
-0
-
-Command for dropping a group.
-
-
-BCE6A1C0-AD38-4AF6-8918-112A9109D421
-SqlListQuery
-{GROUP}
-
-select
- groname
-from
- pg_group
-order by 1
-0
-
-0
-
-SQL query to list objects
-
-
-44322879-5000-42F5-AB39-4DE022512CA5
-Bind
-alter group %GROUP% add user %USER%
-0
-
-0
-
-Command for adding a member to a group
-
-
-880E598B-C369-4F64-8BEF-85689387E12A
-Unbind
-alter group %GROUP% drop user %USER%
-0
-
-0
-
-Command for removing a member from a group
-
-
-B29585AC-4B80-456A-97F0-5FBCD48641A5
-SqlListChildrenQuery
-{GROUP, MEMBER}
-select
- g.groname,
- u.usename
-from
- pg_group g
- join pg_user u on (u.usesysid = any(g.grolist))
-[where g.groname = %.q:GROUP%]
-
-0
-
-0
-
-SQL query to list members of the group
-
-
-
-
-EDE2756E-AD00-4A2F-B677-CF1436597E81
-GenerationOrder
-<Order>
-<Metaclass Name="Storage" />
-<Metaclass Name="Tablespace" />
-<Metaclass Name="Database">
- <Metaclass Name="Database::Permission" />
-</Metaclass>
-<Metaclass Name="Role" />
-<Metaclass Name="Group" />
-<Metaclass Name="User" />
-<Metaclass Name="BusinessRule" />
-<Metaclass Name="Sequence">
- <Metaclass Name="Sequence::Permission" />
-</Metaclass>
-<Metaclass Name="AbstractDataType">
- <Metaclass Name="AbstractDataType::Permission" />
-</Metaclass>
-<Metaclass Name="PhysicalDefault" />
-<Metaclass Name="PhysicalDomain" />
-<Metaclass Name="Table">
- <Metaclass Name="Table::Key" />
- <Metaclass Name="Table::Index" />
- <Metaclass Name="Table::Permission" />
-</Metaclass>
-<Metaclass Name="View">
- <Metaclass Name="View::ViewIndex" />
- <Metaclass Name="View::Permission" />
-</Metaclass>
-<Metaclass Name="Reference" />
-<Metaclass Name="JoinIndex" />
-<Metaclass Name="Synonym">
- <Metaclass Name="Synonym::Permission" />
-</Metaclass>
-<Metaclass Name="Dimension" />
-<Metaclass Name="Procedure">
- <Metaclass Name="Procedure::Permission" />
-</Metaclass>
-<Metaclass Name="DatabasePackage">
- <Metaclass Name="DatabasePackage::Permission" />
-</Metaclass>
-<Metaclass Name="Table::Trigger" />
-<Metaclass Name="View::Trigger" />
-<Metaclass Name="WebService" />
-</Order>
-0
-
-1263300423
-mledier
-This list defines the objects generation order.
-
-
-
-
-1C9264F0-50A8-45F8-BAB8-A6810D27D506
-DataType
-0
-
-0
-
-Contains data type translation entries. These entries list the correspondence between internal data types and the target database data types
-
-
-0BBE373C-5AAD-4A7A-853A-7BE50EA05FC0
-AmcdDataType
-0
-
-1240989401
-mledier
-Data types translation table from internal data types to target database data types.
- %n is the length of the data type
- %s is the size of the data type
- %p is the precision of the data type
-<UNDEF>=<Undefined>
-A=CHAR(1)
-A%n=CHAR(%n)
-VA%n=VARCHAR(%n)
-LA=VARCHAR(1)
-LA%n=VARCHAR(%n)
-LVA=VARCHAR(1)
-LVA%n=VARCHAR(%n)
-BT=INT2
-BT%n=INT2
-SI=INT2
-I=INT4
-LI=INT8
-N=NUMERIC
-N%n=NUMERIC(%n)
-N%s,%p=NUMERIC(%s,%p)
-DC=DECIMAL
-DC%n=DECIMAL(%n)
-DC%s,%p=DECIMAL(%s,%p)
-SF=FLOAT4
-F=FLOAT8
-F%n=FLOAT8
-LF=FLOAT8
-MN=MONEY
-MN%n=MONEY
-MN%s,%p=MONEY
-D=DATE
-T=TIME
-DT=DATE
-TS=DATE
-BL=BOOL
-NO=SERIAL
-NO%n=SERIAL
-BIN%n=CHAR(%n)
-LBIN=CHAR
-LBIN%n=CHAR(%n)
-TXT=TEXT
-TXT%n=TEXT
-MBT=CHAR
-MBT%n=CHAR(%n)
-VMBT=VARCHAR(254)
-VMBT%n=VARCHAR(%n)
-PIC=CHAR(254)
-PIC%n=CHAR(%n)
-BMP=CHAR(254)
-BMP%n=CHAR(%n)
-OLE=CHAR(254)
-OLE%n=CHAR(%n)
-*=CHAR(10)
-POINT=POINT
-LINE=LINE
-SEGMENT=LSEG
-RECTANGLE=BOX
-POLYGON=POLYGON
-CIRCLE=CIRCLE
-<UNDEF>
-A
-A%n
-VA%n
-LA
-LA%n
-LVA
-LVA%n
-BT
-BT%n
-SI
-I
-LI
-N
-N%n
-N%s,%p
-DC
-DC%n
-DC%s,%p
-SF
-F
-F%n
-LF
-MN
-MN%n
-MN%s,%p
-D
-T
-DT
-TS
-BL
-NO
-NO%n
-BIN%n
-LBIN
-LBIN%n
-TXT
-TXT%n
-MBT
-MBT%n
-VMBT
-VMBT%n
-PIC
-PIC%n
-BMP
-BMP%n
-OLE
-OLE%n
-POINT
-LINE
-SEGMENT
-RECTANGLE
-POLYGON
-CIRCLE
-
-
-
-8152888C-EC21-4CE9-BE44-BB0185B56336
-PhysDataType
-0
-
-1240989401
-mledier
-Data types translation table from target database data types to internal data types.
-<Undefined>=<UNDEF>
-DECIMAL=DC
-DECIMAL(%n)=DC%n
-DECIMAL(%s,%p)=DC%s,%p
-FLOAT4=F7
-FLOAT8=F16
-INT2=SI
-INT4=I
-INT8=LI
-NUMERIC=N
-NUMERIC(%n)=N%n
-NUMERIC(%s,%p)=N%s,%p
-SERIAL=NO
-MONEY=MN
-CHAR=A1
-CHAR(%n)=A%n
-TEXT=TXT
-VARCHAR(%n)=VA%n
-TIMESTAMP=TS
-TIMESTAMP WITH TIME ZONE=TS
-INTERVAL=DT
-DATE=D
-TIME=T
-TIME WITH TIME ZONE=T
-BOOL=BL
-POINT=POINT
-LINE=LINE
-LSEG=SEGMENT
-BOX=RECTANGLE
-PATH=A248
-POLYGON=POLYGON
-CIRCLE=CIRCLE
-CIDR=A10
-INET=A10
-*=A10
-<Undefined>
-DECIMAL
-DECIMAL(%n)
-DECIMAL(%s,%p)
-FLOAT4
-FLOAT8
-INT2
-INT4
-INT8
-NUMERIC
-NUMERIC(%n)
-NUMERIC(%s,%p)
-SERIAL
-MONEY
-CHAR
-CHAR(%n)
-TEXT
-VARCHAR(%n)
-TIMESTAMP
-TIMESTAMP WITH TIME ZONE
-INTERVAL
-DATE
-TIME
-TIME WITH TIME ZONE
-BOOL
-POINT
-LINE
-LSEG
-BOX
-PATH
-POLYGON
-CIRCLE
-CIDR
-INET
-
-
-
-7743713B-3320-4EE4-9E87-3AFB729355D7
-PhysDttpSize
-0
-
-0
-
-Table of storage sizes of target database data type
-
-
-87D4DC23-7078-4D7D-94A4-B3210DA8CC3E
-OdbcPhysDataType
-0
-
-0
-
-Data types translation table from ODBC data types to target database data types.
-bpchar(%n)=char(%n)
-bpchar(%n)
-
-
-
-
-
-
-
-CDC2B06C-5AC1-4D4C-88AF-2C88898BDB26
-Profile
-0
-
-0
-
-1
-
-
-815871BB-A068-41E2-BA52-205B50A0AD52
-Shared
-Shared
-0
-
-0
-
-1
-
-
-ExtendedAttributeTypeTargetItem
-8995054D-72B6-4201-B86A-98DB680FB1BD
-Extended Attribute Types
-0
-
-0
-
-1
-
-
-94C33C46-EC2F-4743-8D37-18C5B6666938
-ProcLanguageList
-0
-
-0
-
-Predefined list of language that the function is implemented in. (See also Extended Attribute ProcLanguage.)
-1
-sql
-sql
-c
-internal
-
-
-9984F847-6977-4648-826F-78BC26C6C4CD
-TemporaryState
-0
-
-0
-
-This list stores all possible states for Temporary attribute.
-Optionally, GLOBAL or LOCAL can be written before TEMPORARY or TEMP. This makes no difference in opengauss.
-1
-temp
-temporary
-local temp
-local temporary
-global temp
-global temporary
-
-
-
-
-
-
-1C98415B-16D6-425F-8303-C2FF48130BBE
-PhysicalDomain
-0
-
-0
-
-1
-
-
-StereotypeTargetItem
-ADAC425E-EB22-4640-8A4F-D9CD71687A79
-Stereotypes
-0
-
-0
-
-1
-
-
-0F50EE1C-651C-4508-B05E-AA4FB19D3130
-BaseType
-0
-
-0
-
-1
-
-
-ExtendedAttributeTargetItem
-7C56205A-F82D-4439-9C47-AA7E39B8C1B9
-Extended Attributes
-0
-
-0
-
-1
-
-
-3954A652-B44B-4642-88E7-CE8099392324
-ExtTypeInput
-0
-
-0
-
-The name of a function, created by CREATE FUNCTION, which converts data from its external form to the type's internal form.
-1
-12
-0
-
-
-D596DD04-D85D-4A04-A7EC-349BC723BD2F
-ExtTypeOutput
-0
-
-0
-
-The name of a function, created by CREATE FUNCTION, which converts data from its internal form to a form suitable for display.
-1
-12
-0
-
-
-B5F0DA75-D422-4AE5-97E2-7379ACA74F9D
-ExtTypeLength
-0
-
-0
-
-A literal value, which specifies the internal length of the new type.
-1
-10
-0
-
-
-BE7B22DF-64C1-4C0B-B2EA-AF35795600FA
-ExtTypeElement
-0
-
-0
-
-The type being created is an array; this specifies the type of the array elements.
-1
-12
-0
-
-
-DE189C84-B4B4-44F5-80D7-794AE7E5FAA8
-ExtTypeDelimiter
-0
-
-0
-
-The delimiter character for the array.
-1
-12
-0
-
-
-00878568-A073-4D54-A848-DD34908584D5
-ExtTypeSend
-0
-
-0
-
-The name of a function, created by CREATE FUNCTION, which converts data of this type into a form suitable for transmission to another machine.
-1
-12
-0
-
-
-A557019E-E970-424C-8772-69236830584E
-ExtTypeReceive
-0
-
-0
-
-The name of a function, created by CREATE FUNCTION, which converts data of this type from a form suitable for transmission from another machine to internal form.
-1
-12
-0
-
-
-DA5B44D4-E590-4A53-828F-EC8963669BB2
-ExtTypePassedByValue
-0
-
-0
-
-indicates that operators and functions which use this data type should be passed an argument by value rather than by reference.
-1
-FALSE
-0
-
-
-
-
-FormTargetItem
-EBF9D66B-A877-4182-902E-FDD810E82BF1
-Forms
-0
-
-0
-
-1
-
-
-1402B726-1615-42A2-9D4D-DFD6811689A2
-opengauss
-<Form >
- <ExtendedAttribute Attribute="ExtTypeLength" AttributeID="{B5F0DA75-D422-4AE5-97E2-7379ACA74F9D}" Name="ExtTypeLength" Caption="Length" GrayHiddenAttributes="No" />
- <ExtendedAttribute Attribute="ExtTypeElement" AttributeID="{BE7B22DF-64C1-4C0B-B2EA-AF35795600FA}" Name="ExtTypeElement" Caption="Array Element type" GrayHiddenAttributes="No" />
- <ExtendedAttribute Attribute="ExtTypeDelimiter" AttributeID="{DE189C84-B4B4-44F5-80D7-794AE7E5FAA8}" Name="ExtTypeDelimiter" Caption="Array delimiter" GrayHiddenAttributes="No" />
- <ExtendedAttribute Attribute="ExtTypePassedByValue" AttributeID="{DA5B44D4-E590-4A53-828F-EC8963669BB2}" Name="ExtTypePassedByValue" Caption="By Value" GrayHiddenAttributes="No" />
- <Separator Name="Separator1" />
- <ExtendedAttribute Attribute="ExtTypeInput" AttributeID="{3954A652-B44B-4642-88E7-CE8099392324}" Name="ExtTypeInput" Caption="Input function" GrayHiddenAttributes="No" />
- <ExtendedAttribute Attribute="ExtTypeOutput" AttributeID="{D596DD04-D85D-4A04-A7EC-349BC723BD2F}" Name="ExtTypeOutput" Caption="Output function" GrayHiddenAttributes="No" />
- <ExtendedAttribute Attribute="ExtTypeSend" AttributeID="{00878568-A073-4D54-A848-DD34908584D5}" Name="ExtTypeSend" Caption="Send function" GrayHiddenAttributes="No" />
- <ExtendedAttribute Attribute="ExtTypeReceive" AttributeID="{A557019E-E970-424C-8772-69236830584E}" Name="ExtTypeReceive" Caption="Receive function" GrayHiddenAttributes="No" />
-</Form>
-
-0
-
-1276524800
-obalen
-1
-24912
-
-
-
-
-
-
-6DAAC25D-4FAB-425C-A545-5C5DD08DCFFF
-CompositeType
-0
-
-0
-
-1
-
-
-ExtendedAttributeTargetItem
-4F0F83D1-D45D-4A84-9904-35BB9E96F981
-Extended Attributes
-0
-
-0
-
-1
-
-
-F09B1253-9E0E-48DD-94C5-7EB645E424C9
-CompositeDefinition
-0
-
-0
-
-The composite type is specified by a list of attribute names and data types. This is essentially the same as the row type of a table, but using CREATE TYPE avoids the need to create an actual table when all that is wanted is to define a type. A stand-alone composite type is useful as the argument or return type of a function.
-1
-12
-0
-
-
-
-
-FormTargetItem
-EF4CD3F3-26DA-4F9D-8318-D1BBA1AFE4EB
-Forms
-0
-
-0
-
-1
-
-
-166747AD-2DF7-46FB-A33D-1DF60DFCFADB
-opengauss
-<Form >
- <ExtendedAttribute Attribute="CompositeDefinition" AttributeID="{F09B1253-9E0E-48DD-94C5-7EB645E424C9}" Name="Definition" Caption="Definition" GrayHiddenAttributes="No" />
-</Form>
-
-0
-
-1276524800
-obalen
-1
-24912
-
-
-
-
-
-
-
-
-
-
-CCF5FE55-2BCB-4591-A512-B232444428CF
-Procedure
-0
-
-0
-
-1
-
-
-ExtendedAttributeTargetItem
-08020C9D-AE04-4063-ADDF-3BB6FB1FF63D
-Extended Attributes
-0
-
-0
-
-1
-
-
-09E77E7F-0834-4FFF-A0EB-3FE1A3FA16B1
-ProcLanguage
-0
-
-0
-
-The name of the language that the function is implemented in. May be SQL, C, internal, or the
-name of a user-defined procedural language. (See also extended attribute type ProcLanguageList.)
-1
--1
-sql
-0
-
-
-
-
-
-
-
-FormTargetItem
-0BA45BFD-1CF5-4D99-B6FB-AB6E8B510D0F
-Forms
-0
-
-0
-
-1
-
-
-632C0A96-5390-4ABF-B891-B723954AFA3D
-opengauss
-<Form >
- <GroupBox Name="GroupBox1" Caption="Language" ControlAsLabel="No" >
- <StaticText Name="StaticText1" Caption="Choose here the name of the language that the function is implemented in." />
- <StaticText Name="StaticText3" Caption="May be SQL, C, internal, or the name of a user-defined procedural language." />
- <ExtendedAttribute Name="ProcLanguage" Caption="Language" Attribute="ProcLanguage" AttributeID="{09E77E7F-0834-4FFF-A0EB-3FE1A3FA16B1}" GrayHiddenAttributes="Yes" />
- </GroupBox>
-</Form>
-
-0
-
-1276524800
-obalen
-1
-24912
-
-
-
-
-
-
-D6A943D2-2621-4BAD-8B30-F90E7FC2FB95
-Tablespace
-0
-
-0
-
-1
-
-
-ExtendedAttributeTargetItem
-8BA82F30-4EA2-4A6D-B7B9-D5EDE8FBA4C6
-Extended Attributes
-0
-
-0
-
-1
-
-
-6A4623D4-04FD-49E4-BBB2-26B246E58EAF
-TbspLocation
-0
-
-0
-
-The directory that will be used for the tablespace. The directory must be specified by an absolute path name.
-1
-12
-0
-
-
-8B7D44B4-EC82-41B9-9443-CC961DEE9E81
-TbspOwner
-0
-
-0
-
-The name of the user who will own the tablespace. If omitted, defaults to the user executing the command. Only superusers may create tablespaces, but they can assign ownership of tablespaces to non-superusers.
-1
-12
-0
-
-
-
-
-FormTargetItem
-8C308551-D020-4376-A081-F598F6B78A23
-Forms
-0
-
-0
-
-1
-
-
-83A3A92E-36CE-46F3-A9F6-F04DBFBAC1C4
-opengauss
-<Form >
- <ExtendedAttribute Attribute="TbspLocation" AttributeID="{6A4623D4-04FD-49E4-BBB2-26B246E58EAF}" Name="TbspLocation" Caption="Location" GrayHiddenAttributes="No" />
- <ExtendedAttribute Attribute="TbspOwner" AttributeID="{8B7D44B4-EC82-41B9-9443-CC961DEE9E81}" Name="TbspOwner" Caption="Owner" GrayHiddenAttributes="No" />
-</Form>
-
-0
-
-1276524800
-obalen
-1
-24912
-
-
-
-
-CustomCheckTargetItem
-A643B629-0C06-4935-97B2-BECCC51FA9D4
-Custom Checks
-0
-
-0
-
-1
-
-
-4447EEA6-F62F-416E-9A45-E707E0A8A3EF
-Mandatory Tablespace Location
-0
-
-0
-
-1
-This check ensures that the Location extended attribute is set for the tablespace
-The following tablespaces have no location defined
-Function %Check%(obj)
- ' Check that the extended attribute "TbspLocation" is filled.
- ' The contents of the attribute is not controlled.
- %Check% = (obj.GetExtendedAttribute("TbspLocation") <> "")
-End Function
-Function %Fix%(obj, outmsg)
- ' Implement your automatic correction on <obj> here
- ' filling <outmsg> as you wish
- ' and return True if successful.
-
- outmsg = "Automatic correction not implemented"
-
- %Fix% = False
-End Function
-
-
-
-
-
-
-C5C915C9-3817-4DDB-95E2-5CCBD01C091C
-IndexColumn
-0
-
-0
-
-1
-
-
-CustomCheckTargetItem
-6B0A0403-6F86-4876-9CB0-9AED66E3CA2E
-Custom Checks
-0
-
-0
-
-1
-
-
-8422D3FA-4033-45AA-95A4-F0DDA1A40A64
-Index expression enclosed in parenthesis
-0
-
-0
-
-1
-This check ensures that index column expression are always enclosed in parenthesis
-The following indexes column have an invalid expression:
-Function %Check%(obj)
- if (obj.Expression <> "") then
- %Check% = (left(obj.Expression, 1) & right(obj.Expression, 1) = "()")
- else
- %Check% = True
- end if
-End Function
-Function %Fix%(obj, outmsg)
- obj.Expression = "( " & obj.Expression & " )"
- outmsg = "Parenthesis have been added around column index expression"
-
- %Fix% = True
-End Function
-1
-1
-
-
-
-
-
-
-ACD56323-30AB-4823-B61B-03AD25AF177B
-Table
-0
-
-0
-
-1
-
-
-ExtendedAttributeTargetItem
-7FB938DF-E6B5-4DFA-A865-A7175805E4D6
-Extended Attributes
-0
-
-0
-
-1
-
-
-04B573C8-8062-4FFC-8C07-AA34F76050C2
-Temporary
-0
-
-0
-
-If specified, the table is created as a temporary table. Temporary tables are automatically dropped at the end of a session, or optionally at the end of the current transaction
-1
--1
-0
-
-
-
-
-
-
-
-FormTargetItem
-033A27B6-2884-45DD-83BC-65E79E967C47
-Forms
-0
-
-0
-
-1
-
-
-4E49596A-0533-4E72-8AE6-1315208D0BBF
-opengauss
-<Form >
- <ExtendedAttribute Name="Temporary" Caption="Temporary state" Attribute="Temporary" AttributeID="{04B573C8-8062-4FFC-8C07-AA34F76050C2}" GrayHiddenAttributes="Yes" />
-</Form>
-
-0
-
-1276524800
-obalen
-1
-24912
-
-
-
-
-MethodTargetItem
-B74022BD-ECA7-4557-B8D0-8713FD87874B
-Methods
-0
-
-0
-
-1
-
-
-3C7A869B-607A-433B-859A-748E99F6EAEE
-SetPublicSchema
-0
-
-1244729286
-mledier
-1
-Sub %Method%(obj)
- Dim pub
- for each pub in obj.Model.Users
- if (LCase(pub.Code) = "public") then Exit For
- next
- if Not(isObject(pub)) then
- Set pub = obj.Model.Users.CreateNew()
- pub.SetExtendedAttribute "%CurrentTargetCode%.Schema", True
- pub.SetNameAndCode "public", "public", False
- end if
- Set obj.Owner = pub
-End Sub
-
-
-
-
-
-
-269A9BBC-165B-467F-ABC9-DD53C67FC88F
-Reference
-0
-
-0
-
-1
-
-
-ExtendedAttributeTargetItem
-FB33CA15-0879-43BA-8B1F-545AD3EAFDFA
-Extended Attributes
-0
-
-0
-
-1
-
-
-6D3919F1-F3EA-49D8-8E50-7AC8380DC462
-Deferrable
-0
-
-0
-
-This controls whether the constraint can be deferred. A constraint that is not deferrable will be checked immediately after every command. Checking of constraints that are deferrable may be postponed until the end of the transaction.
-Only foreign key constraints currently accept this clause. All other constraint types are not deferrable.
-1
-false
-0
-
-
-E93DB726-E4A4-46A4-9219-548CAA66F2A0
-ForeignKeyConstraintDeferred
-0
-
-0
-
-If a constraint is deferrable, this clause specifies the default time to check the constraint.
-False means the constraint is INITIALLY IMMEDIATE, it is checked after each statement. This is the default.
-True means the constraint is INITIALLY DEFERRED, it is checked only at the end of the transaction.
-1
-false
-0
-
-
-
-
-FormTargetItem
-E4F188B9-21A4-4DC5-B9D0-1298AAC67E48
-Forms
-0
-
-0
-
-1
-
-
-86AF89FA-E313-4725-AE1E-08C0AAFEE0BB
-opengauss
-<Form >
- <ExtendedAttribute Name="Deferrable" Caption="Deferrable" Attribute="Deferrable" AttributeID="{6D3919F1-F3EA-49D8-8E50-7AC8380DC462}" GrayHiddenAttributes="Yes" />
- <ExtendedAttribute Name="ForeignKeyConstraintDeferred" Caption="Foreign key constraint deferred" Attribute="ForeignKeyConstraintDeferred" AttributeID="{E93DB726-E4A4-46A4-9219-548CAA66F2A0}" GrayHiddenAttributes="Yes" />
-</Form>
-
-0
-
-1276524800
-obalen
-1
-24912
-
-
-
-
-
-
-7F47B72E-AE21-435D-83AC-1FCFD007BBEB
-Database
-0
-
-0
-
-1
-
-
-ExtendedAttributeTargetItem
-8AB877B5-6E4E-424A-A234-6DD9DC4D6EB4
-Extended Attributes
-0
-
-0
-
-1
-
-
-406ADDC6-D29B-4555-A539-15BC5B712A26
-Template
-0
-
-0
-
-The name of the template from which to create the new database, or DEFAULT to use the default template
-1
-12
-0
-
-
-5B507946-57A3-42B3-BEBF-00E549563D32
-Encoding
-0
-
-0
-
-Character set encoding to use in the new database. Specify a string constant (e.g., 'SQL_ASCII'), or an integer encoding number, or DEFAULT to use the default encoding
-1
-12
-0
-
-
-
-
-FormTargetItem
-9EAAD069-88CB-4CAC-8765-F86B5891DCBA
-Forms
-0
-
-0
-
-1
-
-
-81D28ABD-0696-418A-9A37-43CC32CDE7DC
-opengauss
-<Form >
- <ExtendedAttribute Name="Template" Caption="Template" Attribute="Template" AttributeID="{406ADDC6-D29B-4555-A539-15BC5B712A26}" GrayHiddenAttributes="Yes" />
- <ExtendedAttribute Name="Encoding" Caption="Encoding" Attribute="Encoding" AttributeID="{5B507946-57A3-42B3-BEBF-00E549563D32}" GrayHiddenAttributes="Yes" />
-</Form>
-
-0
-
-1276524800
-obalen
-1
-24912
-
-
-
-
-
-
-16AB5309-2509-4C3E-AE19-BB18CC382404
-Group
-0
-
-0
-
-1
-
-
-ExtendedAttributeTargetItem
-96DD5873-228F-460D-9602-0A3CF94FABF1
-Extended Attributes
-0
-
-0
-
-1
-
-
-E6FC2DB5-17D5-4FD1-B8DE-A0ED011588DE
-SysId
-0
-
-0
-
-The SYSID clause can be used to choose the opengauss group ID of the new group. This is normally not necessary, but may be useful if you need to recreate a group referenced in the permissions of some object.
-1
-10
-0
-
-
-
-
-FormTargetItem
-8BB37684-F2F8-4866-8F43-5ABC9B681689
-Forms
-0
-
-0
-
-1
-
-
-FE43BCEE-E961-4DFE-B597-7C5B3D57F55A
-opengauss
-<Form >
- <ExtendedAttribute Attribute="SysId" AttributeID="{E6FC2DB5-17D5-4FD1-B8DE-A0ED011588DE}" Name="SysId" Caption="Group identifier (id)" GrayHiddenAttributes="Yes" />
-</Form>
-
-0
-
-1276524800
-obalen
-1
-24912
-
-
-
-
-
-
-EEA405CC-F187-4546-909F-60D33599A4DF
-User
-0
-
-0
-
-1
-
-
-ExtendedAttributeTargetItem
-CC851CCE-CF77-4A16-9215-E9408BE04646
-Extended Attributes
-0
-
-1246366865
-mledier
-1
-
-
-947DD0F5-B5A2-4BF9-BA50-736D57126F7B
-Schema
-0
-
-0
-
-Indicates if selected user is a schema or not.
-1
-false
-Is schema
-0
-
-
-FAFA5191-4B2E-4087-BCE3-6EF3058B19BA
-CanCreate
-1246366826
-mledier
-1246367214
-mledier
-If user can be created in database.
-1
-1
-RO
-Function %Get%(obj)
- %Get% = (LCase(obj.Code) <> "public")
-End Function
-Can create
-0
-
-
-
-
-FormTargetItem
-A68579A4-53A6-4AEE-81DB-6DF3BC0C6E9C
-Forms
-0
-
-1246366881
-mledier
-1
-
-
-A1FB5438-65BB-48B7-A086-FF0BDB9FF81D
-General
-GENERAL
-<Form >
- <StandardNameAndCode Attribute="NameAndCode" SizeInChars="1" HorizontalResize="true" />
- <StandardAttribute Attribute="Comment" Caption="Comment:" SizeInChars="1" LineNumber="3" HorizontalResize="true" VerticalResize="true" LeftText="false" />
- <StandardAttribute Attribute="Stereotype" Caption="Stereotype:" SizeInChars="1" LineNumber="3" HorizontalResize="true" VerticalResize="true" LeftText="false" />
- <StandardAttribute Attribute="Password" Caption="Password:" SizeInChars="1" LineNumber="3" HorizontalResize="true" VerticalResize="true" LeftText="false" />
- <HorizontalLayout Name="HorizontalLayout1" >
- <ExtendedAttribute Attribute="Schema" Caption="Is schema" AttributeID="{947DD0F5-B5A2-4BF9-BA50-736D57126F7B}" GrayHiddenAttributes="Yes" SizeInChars="1" LineNumber="3" HorizontalResize="true" VerticalResize="true" Display="Checkbox" LeftText="Yes" />
- <ExtendedAttribute Attribute="Owner" Caption="Owner" AttributeID="{3358B5FA-08C0-4DFB-869C-FEEFEB1C49BB}" GrayHiddenAttributes="No" SizeInChars="1" HorizontalResize="Yes" />
- </HorizontalLayout> <StandardAttribute Attribute="KeywordList" Caption="Keywords" SizeInChars="1" LineNumber="3" HorizontalResize="Yes" VerticalResize="true" LeftText="false" />
-</Form>
-
-0
-
-1276524800
-obalen
-1
-GENERAL
-24912
-
-
-8E605CC9-9153-4D30-96C1-0B0D713729C0
-Hidden
-<Form >
- <ExtendedAttribute Attribute="CanCreate" Caption="Can create" AttributeID="{FAFA5191-4B2E-4087-BCE3-6EF3058B19BA}" GrayHiddenAttributes="Yes" Display="Checkbox" LeftText="No" />
-</Form>
-
-1246366865
-mledier
-1257761859
-mledier
-1
-Dialog
-
-
-
-
-CriterionTargetItem
-B186F72A-EBB8-4762-AEE6-A159D0BD2065
-Criteria
-0
-
-0
-
-1
-
-
-066ABFE6-7605-44F9-9247-10E90A158571
-isSchema
-(%Schema%)
-0
-
-0
-
-1
-
-
-ExtendedAttributeTargetItem
-F855AC43-4986-451F-AD18-2B3151BF9597
-Extended Attributes
-0
-
-0
-
-1
-
-
-3358B5FA-08C0-4DFB-869C-FEEFEB1C49BB
-Owner
-0
-
-0
-
-Owner of the schema
-1
-15
-4BA9F642-DAB1-11D1-9944-006097355D9B
-Owner
-0
-
-
-
-
-
-
-
-ExtendedCollectionTargetItem
-AC0619DB-1C44-4A62-9746-D9EE1B446AD7
-Extended Collections
-0
-
-0
-
-1
-
-
-4E7637E8-52C0-48F5-9218-E17C22025290
-Owner
-0
-
-0
-
-1
-Schemas
-4BA9F642-DAB1-11D1-9944-006097355D9B
-
-
-
-
-
-
-60BBFAB7-C4BD-449F-AA31-C2ABF4D22667
-isUser
-(%Schema%==false)
-0
-
-0
-
-1
-
-
-FormTargetItem
-D36A8DBE-B11A-4D49-B6AB-1081192A5722
-Forms
-0
-
-0
-
-1
-
-
-002FACA9-83F6-4E6C-B3A7-5E79A15E210F
-opengauss
-<Form >
- <ExtendedAttribute Attribute="SysId" Caption="User identifier (id)" AttributeID="{8F48507A-7C0D-4822-A566-2D7767715205}" GrayHiddenAttributes="Yes" SizeInChars="1" LineNumber="3" HorizontalResize="true" VerticalResize="true" LeftText="false" />
- <GroupBox Name="GroupBox2" Caption="Special permission" ControlAsLabel="No" >
- <HorizontalLayout Name="HorizontalLayout1" Indentation="0" >
- <ExtendedAttribute Attribute="CreateDB" Caption="Create database" AttributeID="{8A4EBE2D-8EDB-438E-8160-E66B06BDED64}" GrayHiddenAttributes="Yes" SizeInChars="1" LineNumber="3" HorizontalResize="true" VerticalResize="true" LeftText="false" />
- <ExtendedAttribute Attribute="CreateUser" Caption="Create user" AttributeID="{664FD4CF-0D90-4BA0-B7EF-A21C2C16B995}" GrayHiddenAttributes="Yes" SizeInChars="1" LineNumber="3" HorizontalResize="true" VerticalResize="true" LeftText="false" />
- </HorizontalLayout>
- </GroupBox>
- <GroupBox Name="GroupBox1" Caption="Security" ControlAsLabel="No" >
- <ExtendedAttribute Attribute="Validity" Caption="Validity" AttributeID="{E21C45EE-516B-4540-9EC1-B88EFE86A7C9}" GrayHiddenAttributes="Yes" SizeInChars="1" LineNumber="3" HorizontalResize="true" VerticalResize="true" LeftText="false" />
- <ExtendedAttribute Attribute="EncryptedPassword" Caption="Encrypted password" AttributeID="{89E80C1A-9E8C-4BD5-BCA4-8FCE7EB7D6D7}" GrayHiddenAttributes="Yes" SizeInChars="1" LineNumber="3" HorizontalResize="true" VerticalResize="true" LeftText="false" />
- </GroupBox>
-</Form>
-
-0
-
-0
-
-1
-
-
-
-
-ExtendedAttributeTargetItem
-5D39E586-E369-4646-BA41-950BF52CEE33
-Extended Attributes
-0
-
-0
-
-1
-
-
-8A4EBE2D-8EDB-438E-8160-E66B06BDED64
-CreateDB
-0
-
-0
-
-Defines a user's ability to create databases.
-If TRUE, the user is allowed to create databases.
-1
-false
-0
-
-
-664FD4CF-0D90-4BA0-B7EF-A21C2C16B995
-CreateUser
-0
-
-0
-
-If TRUE, the user is allowed to create new users.
-This option also turns the user into a superuser who can override all access restrictions.
-1
-false
-0
-
-
-89E80C1A-9E8C-4BD5-BCA4-8FCE7EB7D6D7
-EncryptedPassword
-0
-
-0
-
-Control whether the password is stored encrypted in the system catalogs.
-1
-true
-0
-
-
-8F48507A-7C0D-4822-A566-2D7767715205
-SysId
-0
-
-0
-
-The SYSID clause can be used to choose the opengauss user ID of the new user. This is normally not necessary, but may be useful if you need to recreate the owner of an orphaned object.
-1
-10
-0
-
-
-E21C45EE-516B-4540-9EC1-B88EFE86A7C9
-Validity
-0
-
-0
-
-This clause sets an absolute time after which the user's password is no longer valid. If this clause is omitted the password will be valid for all time.
-1
-2
-0
-
-
-
-
-
-
-
-
-
-
-62B3BA47-41C9-42A1-B298-23FF4E128490
-Model
-0
-
-0
-
-1
-
-
-EventHandlerTargetItem
-128243FB-D24B-4635-B002-E7705C4500CF
-Event Handlers
-0
-
-0
-
-1
-
-
-CEE1267A-8981-4459-9BA1-2D512C7DB04D
-AfterDatabaseReverseEngineer
-0
-
-0
-
-1
-Function %AfterDatabaseReverseEngineer%(model)
- Dim tab
- For each tab in model.Tables
- if (tab.Owner is Nothing) then
- tab.ExecuteCustomMethod("%CurrentTargetCode%.SetPublicSchema")
- end if
- Next
- %AfterDatabaseReverseEngineer% = True
-End Function
-
-
-
-
-
-
-
-
-F45EAD0C-A5E6-4DA5-BF2C-D37E197C36B6
-Odbc
-0
-
-0
-
-DBMS characteristics, command definition, and data type translations for the ODBC generation and reverse engineering
-
-
-93397FEC-B239-43E0-808E-6C37FE1D55D9
-Objects
-0
-
-0
-
-Contains sub-categories for each type of object in the database, for example: Table, or Reference. Each sub-category contains entries whose values define database commands and object-related characteristics
-
-
-B561F06F-8EA2-4923-9026-BA6D50FCC935
-Qualifier
-0
-
-0
-
-Manages the use of qualifier in ODBC reverse engineering
-
-
-D3ECF29D-3212-414B-B983-755D3A28E865
-Enable
-0
-
-0
-
-Allows using the qualifier combo box during ODBC reverse engineering
-
-
-6DBE6644-748C-411E-8D24-C9762EF859BA
-SqlListQuery
-0
-
-0
-
-Query to retrieve qualifier during ODBC reverse engineering
-
-
-69A5288F-87C6-4041-A68A-E9DDCC5629A4
-Label
-0
-
-0
-
-Label for <All> in qualifier selection list
-All catalogs
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git "a/app/zh/blogs/wangshanshan/IndexOnlyScan\346\237\245\350\257\242\347\273\223\346\236\234\345\274\202\345\270\270.md" "b/app/zh/blogs/wangshanshan/IndexOnlyScan\346\237\245\350\257\242\347\273\223\346\236\234\345\274\202\345\270\270.md"
index 97975be6c28da505842922bbf97b1bcb8df1c0a7..5eec5b7cfc5671ca0fdff19a3de2d43b061fc579 100644
--- "a/app/zh/blogs/wangshanshan/IndexOnlyScan\346\237\245\350\257\242\347\273\223\346\236\234\345\274\202\345\270\270.md"
+++ "b/app/zh/blogs/wangshanshan/IndexOnlyScan\346\237\245\350\257\242\347\273\223\346\236\234\345\274\202\345\270\270.md"
@@ -9,35 +9,48 @@ summary: '一次线上查询结果问题分析诊断:Index Only Scan查询结
img: ''
times: '10:30'
---
+
中国移动磐维数据是基于openGauss定制开发的中国移动自用版OLTP数据库。自去年12月发布以来,受到广泛关注,目前已成功上线百余套。
在产品落地的过程中,我们积累了大量的迁移、适配,以及问题分析诊断的经验。
本文分享我们在用户环境发现的一个数据查询结果异常问题的分析诊断过程。
社区issue:https://gitee.com/opengauss/openGauss-server/issues/I72FHP
+
## **【1. 问题现象】**
+
### 用户环境
- - 系统环境:openEuler 20.03_x86
+
+ - 系统环境:openEuler 20.03_x86
- 数据库版本:PanWeiDB 1.0.0(基于openGauss v3.0.1)
-### 现象描述
+
+### 现象描述
+
查询表记录数,通过表扫描(Seq Scan)和纯索引扫描(Index Only Scan),查询结果不一致,如下图所示:

+
## **【2. 场景分析】**
+
1. 表上定义有btree索引。
2. 表上有较高并发的写,更新表和索引。
3. 对表进行vacuum freeze后索引数据不一致问题恢复,但有warning报错,如下图所示:

+
## **【3. 问题复现】**
+
### 复现思路
+
1. 采用用户环境相同的数据库配置。
2. 创建表和btree索引,插入测试数据。
-3. 并发执行两组写:
+3. 并发执行两组写:
- 多次更新某一条数据,不涉及索引更新。
- 多次更新某一条数据,每次都更加索引键值。
+
### 测试用例
+
1. 创建用户、数据库、模式
- create user testusr password 'Test@123';
+ create user testusr password '******';
grant all privileges to testusr;
\c postgres
drop database if exists testdb;
@@ -45,7 +58,7 @@ times: '10:30'
\c testdb
create schema wss_test;
set search_path to wss_test;
-
+
2. 编译
javac -cp .jar insert.java update_dup.java update_diff.java
@@ -62,56 +75,56 @@ times: '10:30'
6. 多次执行update_diff和update_dup
java -cp .:postgresql.jar update_diff(多次更新某一条数据,每次都更加索引键值)
java -cp .:postgresql.jar update_dup(多次更新某一条数据,不涉及索引更新)
-
+
7. 在主从节点查询count(*),可以看到主从节点查询结果出现差异
select count(*) from wss_test.t_m_resource_monitor_test2;
explain analyze select count(*) from wss_test.t_m_resource_monitor_test2;
-[insert.java](./files/insert.java)
-
-[update_dup.java](./files/update_dup.java)
-[update_diff.java](./files/update_diff.java)
### 复现结果
+
#### 主节点

+
#### 备节点

+
### 复现说明
+
1. 复现过程中发现,主节点查询结果始终正确,仅备节点查询结果出现不一致。
2. 仅在PanWeiDB 1.0.0(基于opengauss v3.0.1)复现,PanWeiDB 2.0.0(基于opengauss v5.0.0)未复现。
+
## **【4. 问题诊断】**
+
由于结果出现偏差的是备节点的Index Only Scan查询,所以排查该查询计划的优化逻辑,
发现Index Only Scan查询使用了数据表的VM(visibility map)文件来判断数据元组的可见性,
即是否应该包含在结果集当中,因此怀疑VM文件的数据页可见性标志位是否准确。
+
1. 查询数据表和索引的filepath。
-
-2. 用pagehack工具打印数据表,查看数据页标志位,发现主备节点有PD_ALL_VISIBLE标志的数据页均为42个。
+ 2. 用pagehack工具打印数据表,查看数据页标志位,发现主备节点有PD_ALL_VISIBLE标志的数据页均为42个。
-```./pagehack -f /data/pwdb/data/base/24597/50856 -t heap -v```
+`./pagehack -f /data/pwdb/data/base/24597/50856 -t heap -v`
-
-3. 用pagehack工具用十六进制的方式打印VM文件,查看数据页可见性标志位,发现主节点为42个完全可见页,备节点有72个。
+ 3. 用pagehack工具用十六进制的方式打印VM文件,查看数据页可见性标志位,发现主节点为42个完全可见页,备节点有72个。
## **【5. 代码分析】**
+
由上述诊断可见,确实是备节点VM文件数据页可见性标志位的问题导致了备节点Index Only Scan查询结果出现偏差,
因此怀疑备节点VM文件的数据页可见性标志位修改(清理)逻辑是否有问题。
+
1. 相关的VM修改接口如下图所示:

-
-2. 由于复现过程中仅涉及insert、update两类操作,因此主要排查这两类xlog日志回放逻辑,
+ 2. 由于复现过程中仅涉及insert、update两类操作,因此主要排查这两类xlog日志回放逻辑,
其中clear清除接口在备节点回放insert、update xlog日志时都会被调用。
-
-3. 回放update时,会从update xlog日志头位置添加两个偏移量,分别是sizeof(TransactionId)和sizeof(CommitSeqNo),
+ 3. 回放update时,会从update xlog日志头位置添加两个偏移量,分别是sizeof(TransactionId)和sizeof(CommitSeqNo),
然后读取日志的标志位,根据标志位判断是否修改VM文件,清理数据页可见性标志位,如下图所示:
-
-4. 然而在写update xlog日志时,CommitSeqNo字段写入位置是在日志数据的尾部,如下图所示:
+ 4. 然而在写update xlog日志时,CommitSeqNo字段写入位置是在日志数据的尾部,如下图所示:

@@ -120,13 +133,19 @@ times: '10:30'
但heap_xlog_update接口读取xlog时误认为CSN在xlog的头部,因此添加了该字段的偏移量来获取标志位,
根据标志位判断是否修改VM文件,清理数据页可见性标志位,导致备节点的VM文件错误。
相关逻辑仅在wal_level设置为logical时生效,且若主备发生切换,该问题在主节点也有几率出现,与用户场景相符。
+
## **【6. 代码修复】**
+
1. 删除heap_xlog_update接口中添加长度为sizeof(CommitSeqNo)的偏移量的代码。
2. openGauss 3.1.0已修复该问题,但没有bug相关的描述,提交记录如下:
-https://gitee.com/opengauss/openGauss-server/commit/b919f404e8d9acff1824d299dccecd9f2c741b43
+ https://gitee.com/opengauss/openGauss-server/commit/b919f404e8d9acff1824d299dccecd9f2c741b43
+
## **【7. 解决方案】**
+
1. 该问题只wal_level设置为logical的情况下才会发生,若无需使用逻辑复制功能,可以将wal_level设置为hot_standby并对主备节点执行vacuum。
2. 或者关闭enable_indexonlyscan参数,禁用纯索引扫描,一般情况下实际生产环境中能使用Index Only Scan的情况比较少,可以考虑在用户环境关闭该参数后测试影响。
3. 彻底修复客户环境问题,可以考虑代码修复合入后,打补丁或者大版本升级。
+
## **【8. 致谢】**
-感谢海量数据库内核专家协助分析!
\ No newline at end of file
+
+感谢海量数据库内核专家协助分析!
diff --git a/app/zh/blogs/wangshanshan/files/insert.java b/app/zh/blogs/wangshanshan/files/insert.java
deleted file mode 100644
index 78cbc031a71e1fdd4b0cf4c2d6d66b0f189b9c99..0000000000000000000000000000000000000000
--- a/app/zh/blogs/wangshanshan/files/insert.java
+++ /dev/null
@@ -1,299 +0,0 @@
-//insert.java
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.sql.ResultSet;
-import java.io.*;
-
-public class insert {
-
- //创建数据库连接。
- public static Connection GetConnection(String username, String passwd) {
- String driver = "org.postgresql.Driver";
- String sourceURL = "jdbc:postgresql://***.***.***.***:5432/testdb";
- Connection conn = null;
- try {
- //加载数据库驱动。
- Class.forName(driver).newInstance();
- } catch (Exception e) {
- e.printStackTrace();
- return null;
- }
- try {
- //创建数据库连接。
- conn = DriverManager.getConnection(sourceURL, username, passwd);
- System.out.println("Connection succeed!");
- } catch (Exception e) {
- e.printStackTrace();
- return null;
- }
- return conn;
- }
-
- //执行普通SQL语句,查询测试表。
- public static void QueryTable(Connection conn) {
- Statement stmt = null;
- try {
- stmt = conn.createStatement();
- //执行普通SQL语句。
- stmt.setFetchSize(50);
-
- int ret = 0;
-
- ret = stmt.executeUpdate("drop table if exists wss_test.t_m_resource_monitor_test2;");
- ret = stmt.executeUpdate("CREATE TABLE wss_test.t_m_resource_monitor_test2 (\n" +
- "\tid varchar(36) NOT NULL,\n" +
- "\tip varchar(50) NOT NULL DEFAULT '',\n" +
- "\tipv6 varchar(50) NOT NULL DEFAULT '',\n" +
- "\tfull_ipv6 varchar(50) NOT NULL DEFAULT '',\n" +
- "\ttarget_ip varchar(50) NOT NULL DEFAULT '',\n" +
- "\tname varchar(1024) NULL,\n" +
- "\tresource_name varchar(1024) NULL,\n" +
- "\talias varchar(1024) NULL,\n" +
- "\tmodel_id varchar(36) NULL,\n" +
- "\tmodel_name varchar(150) NULL,\n" +
- "\tis_model int4 NOT NULL,\n" +
- "\tgroup_id varchar(36) NULL,\n" +
- "\tgroup_name varchar(150) NULL,\n" +
- "\tconf_group varchar(32) NULL,\n" +
- "\tlogo_id varchar(64) NULL,\n" +
- "\timage_base64 text NULL,\n" +
- "\tmonitor_item int4 NULL,\n" +
- "\tgather_strategy int4 NULL,\n" +
- "\talarm_strategy int4 NULL,\n" +
- "\tstate int4 NULL DEFAULT 0,\n" +
- "\tauto_state int4 NULL DEFAULT 1,\n" +
- "\trelation_state int4 NULL DEFAULT 1,\n" +
- "\tamdb_state varchar(64) NULL,\n" +
- "\tmodifier varchar(64) NULL DEFAULT 'admin'::character varying,\n" +
- "\tmodify_time timestamp(6) NULL,\n" +
- "\tcreater varchar(64) NULL DEFAULT 'admin'::character varying,\n" +
- "\tcreate_time timestamp(6) NULL,\n" +
- "\tdisplay int4 NULL DEFAULT 1,\n" +
- "\tappchecker_state int4 NULL DEFAULT 0,\n" +
- "\tagent_state int4 NULL DEFAULT 0,\n" +
- "\tobserve_state int4 NULL DEFAULT 3,\n" +
- "\tmanual_state int4 NULL DEFAULT -1,\n" +
- "\tagent_process_info varchar(1024) DEFAULT NULL,\n" +
- "\tagent_version varchar(64) DEFAULT NULL,\n" +
- "\tagent_operation_type int4 DEFAULT 0,\n" +
- "\tterminal_state int4 NULL DEFAULT 0,\n" +
- "\treport_state int4 NULL DEFAULT 1,\n" +
- "\tup_time varchar(64) NULL,\n" +
- "\tboot_time timestamp(6) NULL,\n" +
- "\ttenant varchar(2000) NOT NULL DEFAULT '',\n" +
- "\tattr_destroy_time timestamp(6) DEFAULT NULL,\n" +
- "\tattr_agent_id varchar(50) NOT NULL DEFAULT '',\n" +
- " attr_app_type varchar(32) NOT NULL DEFAULT '',\n" +
- " attr_parent_system varchar(64) NOT NULL DEFAULT '',\n" +
- " attr_port varchar(2000) NOT NULL DEFAULT '',\n" +
- " amdb_update_time timestamp(6) DEFAULT NULL,\n" +
- " attr_instance_type varchar(32) default '',\n" +
- "\tCONSTRAINT t_m_resource_monitor_pkey_test2 PRIMARY KEY (id));");
-
- System.out.format("Table created: %d\n", ret);
-
- ret = stmt.executeUpdate("CREATE INDEX attr_agent_id_index_test2 ON wss_test.t_m_resource_monitor_test2 USING btree (attr_agent_id);");
- ret = stmt.executeUpdate("CREATE INDEX is_model_index_test2 ON wss_test.t_m_resource_monitor_test2 USING btree (is_model);");
- ret = stmt.executeUpdate("CREATE INDEX model_id_index_test2 ON wss_test.t_m_resource_monitor_test2 USING btree (model_id);");
- ret = stmt.executeUpdate("CREATE INDEX model_name_index_test2 ON wss_test.t_m_resource_monitor_test2 USING btree (model_name);");
- ret = stmt.executeUpdate("CREATE INDEX monitor_groupid_targetid_indx_test2 ON wss_test.t_m_resource_monitor_test2 USING btree (group_id);");
-
- System.out.format("Indexes created: %d\n", ret);
-
- for (int i = 1; i <= 777; i++) {
- ret = stmt.executeUpdate("insert into wss_test.t_m_resource_monitor_test2\n" +
- "\t(id,\n" +
- " name,\n" +
- " resource_name,\n" +
- " model_id,\n" +
- " model_name,\n" +
- " is_model,\n" +
- " group_id,\n" +
- " group_name,\n" +
- " conf_group,\n" +
- " logo_id,\n" +
- " image_base64,\n" +
- " ip,\n" +
- " ipv6,\n" +
- " full_ipv6,\n" +
- " target_ip,\n" +
- " state,\n" +
- " amdb_state,\n" +
- " monitor_item,\n" +
- " gather_strategy,\n" +
- " alarm_strategy,\n" +
- " tenant,\n" +
- " attr_destroy_time,\n" +
- " attr_agent_id,\n" +
- " attr_app_type,\n" +
- " attr_parent_system,\n" +
- " attr_port,\n" +
- " amdb_update_time,\n" +
- " modify_time,\n" +
- " create_time,\n" +
- " appchecker_state,\n" +
- " attr_instance_type) \n" +
- "\tvalues\n" +
- "\t('6a0813c6-b4d4-4b9a-b2d6-diff" + i + "',\n" +
- " '容器_apisix_docker://314b4850be647d3e1342f6aaf643e0b0742d5a0e8a5dd2c902f20a1a6a1c8dfe',\n" +
- " 'apisix',\n" +
- " '176f7ae1-65eb-4626-82bc-diff" + i + "',\n" +
- " '容器',\n" +
- " " + i + ",\n" +
- " '0bdbae71-9546-4513-988b-diff" + i + "',\n" +
- " 'Kubernetes',\n" +
- " '默认配置组',\n" +
- " ' ',\n" +
- " ' ',\n" +
- " ' ',\n" +
- " ' ',\n" +
- " ' ',\n" +
- " ' ',\n" +
- " 1,\n" +
- " '下线',\n" +
- " 0,\n" +
- " 0,\n" +
- " 0,\n" +
- " '平台运营租户',\n" +
- " '2023-06-30 19:59:10',\n" +
- " ' ',\n" +
- " ' ',\n" +
- " ' ',\n" +
- " ' ',\n" +
- " '2023-06-30 19:59:14',\n" +
- " '2023-06-30 20:05:00.292',\n" +
- " '2023-06-30 19:59:14',\n" +
- " 0,\n" +
- " ' ');");
- }
-
- System.out.format("Data loaded: %d\n", ret);
-
- ret = stmt.executeUpdate("insert into wss_test.t_m_resource_monitor_test2\n" +
- "\t(id,\n" +
- " name,\n" +
- " resource_name,\n" +
- " model_id,\n" +
- " model_name,\n" +
- " is_model,\n" +
- " group_id,\n" +
- " group_name,\n" +
- " conf_group,\n" +
- " logo_id,\n" +
- " image_base64,\n" +
- " ip,\n" +
- " ipv6,\n" +
- " full_ipv6,\n" +
- " target_ip,\n" +
- " state,\n" +
- " amdb_state,\n" +
- " monitor_item,\n" +
- " gather_strategy,\n" +
- " alarm_strategy,\n" +
- " tenant,\n" +
- " attr_destroy_time,\n" +
- " attr_agent_id,\n" +
- " attr_app_type,\n" +
- " attr_parent_system,\n" +
- " attr_port,\n" +
- " amdb_update_time,\n" +
- " modify_time,\n" +
- " create_time,\n" +
- " appchecker_state,\n" +
- " attr_instance_type) \n" +
- "\tvalues\n" +
- "\t('6a0813c6-b4d4-4b9a-b2d6-5f3c1d23a646',\n" +
- " '容器_apisix_docker://314b4850be647d3e1342f6aaf643e0b0742d5a0e8a5dd2c902f20a1a6a1c8dfe',\n" +
- " 'apisix',\n" +
- " '176f7ae1-65eb-4626-82bc-687c1cd112d1',\n" +
- " '容器',\n" +
- " 0,\n" +
- " '0bdbae71-9546-4513-988b-d1d2f920065c',\n" +
- " 'Kubernetes',\n" +
- " '默认配置组',\n" +
- " ' ',\n" +
- " ' ',\n" +
- " ' ',\n" +
- " ' ',\n" +
- " ' ',\n" +
- " ' ',\n" +
- " 1,\n" +
- " '下线',\n" +
- " 0,\n" +
- " 0,\n" +
- " 0,\n" +
- " '平台运营租户',\n" +
- " '2023-06-30 19:59:10',\n" +
- " ' ',\n" +
- " ' ',\n" +
- " ' ',\n" +
- " ' ',\n" +
- " '2023-06-30 19:59:14',\n" +
- " '2023-06-30 20:05:00.292',\n" +
- " '2023-06-30 19:59:14',\n" +
- " 0,\n" +
- " ' ')\n" +
- "\tON DUPLICATE KEY UPDATE\n" +
- "\t name = '容器_apisix_docker://314b4850be647d3e1342f6aaf643e0b0742d5a0e8a5dd2c902f20a1a6a1c8dfe',\n" +
- "\t resource_name = 'apisix',\n" +
- "\t model_id = '176f7ae1-65eb-4626-82bc-687c1cd112d1',\n" +
- "\t model_name = '容器',\n" +
- "\t is_model = 0,\n" +
- "\t group_id = '0bdbae71-9546-4513-988b-d1d2f920065c',\n" +
- "\t group_name = 'Kubernetes',\n" +
- "\t conf_group = '默认配置组',\n" +
- "\t logo_id = ' ',\n" +
- "\t image_base64 = ' ',\n" +
- "\t ip = ' ',\n" +
- "\t ipv6 = ' ',\n" +
- "\t full_ipv6 = ' ',\n" +
- "\t target_ip = ' ',\n" +
- "\t amdb_state = '下线',\n" +
- "\t tenant = '平台运营租户',\n" +
- "\t attr_destroy_time = '2023-06-30 19:59:10',\n" +
- "\t attr_agent_id = ' ',\n" +
- "\t attr_app_type = ' ',\n" +
- "\t attr_parent_system = ' ',\n" +
- "\t attr_port = ' ',\n" +
- "\t amdb_update_time = '2023-06-30 19:59:14',\n" +
- "\t modify_time = '2023-06-30 20:05:00.292',\n" +
- "\t modifier = 'wss_insert',\n" +
- "\t appchecker_state = 0,\n" +
- "\t attr_instance_type = ' ';");
-
- System.out.format("Row inserted: %d\n", ret);
-
- ResultSet rs = stmt.executeQuery("select count(*) from wss_test.t_m_resource_monitor_test2");
- while (rs.next()) {
- System.out.format("Row count: %d\n", rs.getInt(1));
- }
-
- rs.close();
- stmt.close();
- } catch (SQLException e) {
- if (stmt != null) {
- try {
- stmt.close();
- } catch (SQLException e1) {
- e1.printStackTrace();
- }
- }
- e.printStackTrace();
- }
- }
-
- public static void main(String[] args) {
- //创建数据库连接。
- Connection conn = GetConnection("testusr", "Test@123");
- //查询表。
- QueryTable(conn);
- //关闭数据库连接。
- try {
- conn.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
-}
diff --git a/app/zh/blogs/wangshanshan/files/update_diff.java b/app/zh/blogs/wangshanshan/files/update_diff.java
deleted file mode 100644
index df8a1b099d3546b5f1d3ea774d55886e05372156..0000000000000000000000000000000000000000
--- a/app/zh/blogs/wangshanshan/files/update_diff.java
+++ /dev/null
@@ -1,178 +0,0 @@
-//update.java
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.sql.ResultSet;
-import java.io.*;
-
-public class update_dup {
-
- //创建数据库连接。
- public static Connection GetConnection(String username, String passwd) {
- String driver = "org.postgresql.Driver";
- String sourceURL = "jdbc:postgresql://***.***.***.***:5432/testdb";
- Connection conn = null;
- try {
- //加载数据库驱动。
- Class.forName(driver).newInstance();
- } catch (Exception e) {
- e.printStackTrace();
- return null;
- }
- try {
- //创建数据库连接。
- conn = DriverManager.getConnection(sourceURL, username, passwd);
- System.out.println("Connection succeed!");
- } catch (Exception e) {
- e.printStackTrace();
- return null;
- }
- return conn;
- }
-
- //执行普通SQL语句,查询测试表。
- public static void QueryTable(Connection conn) {
- Statement stmt = null;
- try {
- stmt = conn.createStatement();
- //执行普通SQL语句。
- stmt.setFetchSize(50);
-
- int ret = 0;
-
- for (int i = 1; i <= 777; i++){
- ret = stmt.executeUpdate("insert into wss_test.t_m_resource_monitor_test2\n" +
- "\t(id,\n" +
- " name,\n" +
- " resource_name,\n" +
- " model_id,\n" +
- " model_name,\n" +
- " is_model,\n" +
- " group_id,\n" +
- " group_name,\n" +
- " conf_group,\n" +
- " logo_id,\n" +
- " image_base64,\n" +
- " ip,\n" +
- " ipv6,\n" +
- " full_ipv6,\n" +
- " target_ip,\n" +
- " state,\n" +
- " amdb_state,\n" +
- " monitor_item,\n" +
- " gather_strategy,\n" +
- " alarm_strategy,\n" +
- " tenant,\n" +
- " attr_destroy_time,\n" +
- " attr_agent_id,\n" +
- " attr_app_type,\n" +
- " attr_parent_system,\n" +
- " attr_port,\n" +
- " amdb_update_time,\n" +
- " modify_time,\n" +
- " create_time,\n" +
- " appchecker_state,\n" +
- " attr_instance_type) \n" +
- "\tvalues\n" +
- "\t('6a0813c6-b4d4-4b9a-b2d6-5f3c1d23a646',\n" +
- " '容器_apisix_docker://314b4850be647d3e1342f6aaf643e0b0742d5a0e8a5dd2c902f20a1a6a1c8dfe',\n" +
- " 'apisix',\n" +
- " '176f7ae1-65eb-4626-82bc-687c1cd112d1',\n" +
- " '容器',\n" +
- " 0,\n" +
- " '0bdbae71-9546-4513-988b-d1d2f920065c',\n" +
- " 'Kubernetes',\n" +
- " '默认配置组',\n" +
- " ' ',\n" +
- " ' ',\n" +
- " ' ',\n" +
- " ' ',\n" +
- " ' ',\n" +
- " ' ',\n" +
- " 1,\n" +
- " '下线',\n" +
- " 0,\n" +
- " 0,\n" +
- " 0,\n" +
- " '平台运营租户',\n" +
- " '2023-06-30 19:59:10',\n" +
- " ' ',\n" +
- " ' ',\n" +
- " ' ',\n" +
- " ' ',\n" +
- " '2023-06-30 19:59:14',\n" +
- " '2023-06-30 20:05:00.292',\n" +
- " '2023-06-30 19:59:14',\n" +
- " 0,\n" +
- " ' ')\n" +
- "\tON DUPLICATE KEY UPDATE\n" +
- "\t name = '容器_apisix_docker://314b4850be647d3e1342f6aaf643e0b0742d5a0e8a5dd2c902f20a1a6a1c8dfe',\n" +
- "\t resource_name = 'apisix',\n" +
- "\t model_id = '176f7ae1-65eb-4626-82bc-diff" + i + "',\n" +
- "\t model_name = '容器-diff" + i + "',\n" +
- "\t is_model = " + i + ",\n" +
- "\t group_id = '0bdbae71-9546-4513-988b-diff" + i + "',\n" +
- "\t group_name = 'Kubernetes',\n" +
- "\t conf_group = '默认配置组',\n" +
- "\t logo_id = ' ',\n" +
- "\t image_base64 = ' ',\n" +
- "\t ip = ' ',\n" +
- "\t ipv6 = ' ',\n" +
- "\t full_ipv6 = ' ',\n" +
- "\t target_ip = ' ',\n" +
- "\t amdb_state = '下线',\n" +
- "\t tenant = '平台运营租户',\n" +
- "\t attr_destroy_time = '2023-06-30 19:59:10',\n" +
- "\t attr_agent_id = 'diff-" + i + "',\n" +
- "\t attr_app_type = ' ',\n" +
- "\t attr_parent_system = ' ',\n" +
- "\t attr_port = ' ',\n" +
- "\t amdb_update_time = '2023-06-30 19:59:14',\n" +
- "\t modify_time = '2023-06-30 20:05:00.292',\n" +
- "\t modifier = 'wss_update-diff" + i + "',\n" +
- "\t appchecker_state = 0,\n" +
- "\t attr_instance_type = ' ';");
-
- ResultSet rs = stmt.executeQuery("select xmin, xmax, modifier from wss_test.t_m_resource_monitor_test2 where id = '6a0813c6-b4d4-4b9a-b2d6-5f3c1d23a646'");
- while (rs.next())
- {
- System.out.format("xmin=%d, xmax=%d, modifier=%s\n", rs.getInt(1), rs.getInt(2), rs.getString(3));
- }
- }
-
- System.out.format("Row updated with diff: %d\n", ret);
-
- ResultSet rs = stmt.executeQuery("select count(*) from wss_test.t_m_resource_monitor_test2");
- while (rs.next())
- {
- System.out.format("Row count: %d\n", rs.getInt(1));
- }
-
- rs.close();
- stmt.close();
- } catch (SQLException e) {
- if (stmt != null) {
- try {
- stmt.close();
- } catch (SQLException e1) {
- e1.printStackTrace();
- }
- }
- e.printStackTrace();
- }
- }
-
- public static void main(String[] args) {
- //创建数据库连接。
- Connection conn = GetConnection("testusr", "Test@123");
- //查询表。
- QueryTable(conn);
- //关闭数据库连接。
- try {
- conn.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
-}
diff --git a/app/zh/blogs/wangshanshan/files/update_dup.java b/app/zh/blogs/wangshanshan/files/update_dup.java
deleted file mode 100644
index d33c105251d4a933f4f2fb54e9f815dbf2820244..0000000000000000000000000000000000000000
--- a/app/zh/blogs/wangshanshan/files/update_dup.java
+++ /dev/null
@@ -1,178 +0,0 @@
-//update.java
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.sql.ResultSet;
-import java.io.*;
-
-public class update_dup {
-
- //创建数据库连接。
- public static Connection GetConnection(String username, String passwd) {
- String driver = "org.postgresql.Driver";
- String sourceURL = "jdbc:postgresql://***.***.***.***:5432/testdb";
- Connection conn = null;
- try {
- //加载数据库驱动。
- Class.forName(driver).newInstance();
- } catch (Exception e) {
- e.printStackTrace();
- return null;
- }
- try {
- //创建数据库连接。
- conn = DriverManager.getConnection(sourceURL, username, passwd);
- System.out.println("Connection succeed!");
- } catch (Exception e) {
- e.printStackTrace();
- return null;
- }
- return conn;
- }
-
- //执行普通SQL语句,查询测试表。
- public static void QueryTable(Connection conn) {
- Statement stmt = null;
- try {
- stmt = conn.createStatement();
- //执行普通SQL语句。
- stmt.setFetchSize(50);
-
- int ret = 0;
-
- for (int i = 1; i <= 777; i++){
- ret = stmt.executeUpdate("insert into wss_test.t_m_resource_monitor_test2\n" +
- "\t(id,\n" +
- " name,\n" +
- " resource_name,\n" +
- " model_id,\n" +
- " model_name,\n" +
- " is_model,\n" +
- " group_id,\n" +
- " group_name,\n" +
- " conf_group,\n" +
- " logo_id,\n" +
- " image_base64,\n" +
- " ip,\n" +
- " ipv6,\n" +
- " full_ipv6,\n" +
- " target_ip,\n" +
- " state,\n" +
- " amdb_state,\n" +
- " monitor_item,\n" +
- " gather_strategy,\n" +
- " alarm_strategy,\n" +
- " tenant,\n" +
- " attr_destroy_time,\n" +
- " attr_agent_id,\n" +
- " attr_app_type,\n" +
- " attr_parent_system,\n" +
- " attr_port,\n" +
- " amdb_update_time,\n" +
- " modify_time,\n" +
- " create_time,\n" +
- " appchecker_state,\n" +
- " attr_instance_type) \n" +
- "\tvalues\n" +
- "\t('6a0813c6-b4d4-4b9a-b2d6-5f3c1d23a646',\n" +
- " '容器_apisix_docker://314b4850be647d3e1342f6aaf643e0b0742d5a0e8a5dd2c902f20a1a6a1c8dfe',\n" +
- " 'apisix',\n" +
- " '176f7ae1-65eb-4626-82bc-687c1cd112d1',\n" +
- " '容器',\n" +
- " 0,\n" +
- " '0bdbae71-9546-4513-988b-d1d2f920065c',\n" +
- " 'Kubernetes',\n" +
- " '默认配置组',\n" +
- " ' ',\n" +
- " ' ',\n" +
- " ' ',\n" +
- " ' ',\n" +
- " ' ',\n" +
- " ' ',\n" +
- " 1,\n" +
- " '下线',\n" +
- " 0,\n" +
- " 0,\n" +
- " 0,\n" +
- " '平台运营租户',\n" +
- " '2023-06-30 19:59:10',\n" +
- " ' ',\n" +
- " ' ',\n" +
- " ' ',\n" +
- " ' ',\n" +
- " '2023-06-30 19:59:14',\n" +
- " '2023-06-30 20:05:00.292',\n" +
- " '2023-06-30 19:59:14',\n" +
- " 0,\n" +
- " ' ')\n" +
- "\tON DUPLICATE KEY UPDATE\n" +
- "\t name = '容器_apisix_docker://314b4850be647d3e1342f6aaf643e0b0742d5a0e8a5dd2c902f20a1a6a1c8dfe',\n" +
- "\t resource_name = 'apisix',\n" +
- "\t model_id = '176f7ae1-65eb-4626-82bc-687c1cd112d1',\n" +
- "\t model_name = '容器',\n" +
- "\t is_model = 0,\n" +
- "\t group_id = '0bdbae71-9546-4513-988b-d1d2f920065c',\n" +
- "\t group_name = 'Kubernetes',\n" +
- "\t conf_group = '默认配置组',\n" +
- "\t logo_id = ' ',\n" +
- "\t image_base64 = ' ',\n" +
- "\t ip = ' ',\n" +
- "\t ipv6 = ' ',\n" +
- "\t full_ipv6 = ' ',\n" +
- "\t target_ip = ' ',\n" +
- "\t amdb_state = '下线',\n" +
- "\t tenant = '平台运营租户',\n" +
- "\t attr_destroy_time = '2023-06-30 19:59:10',\n" +
- "\t attr_agent_id = ' ',\n" +
- "\t attr_app_type = ' ',\n" +
- "\t attr_parent_system = ' ',\n" +
- "\t attr_port = ' ',\n" +
- "\t amdb_update_time = '2023-06-30 19:59:14',\n" +
- "\t modify_time = '2023-06-30 20:05:00.292',\n" +
- "\t modifier = 'wss_update-dup" + i + "',\n" +
- "\t appchecker_state = 0,\n" +
- "\t attr_instance_type = ' ';");
-
- ResultSet rs = stmt.executeQuery("select xmin, xmax, modifier from wss_test.t_m_resource_monitor_test2 where id = '6a0813c6-b4d4-4b9a-b2d6-5f3c1d23a646'");
- while (rs.next())
- {
- System.out.format("xmin=%d, xmax=%d, modifier=%s\n", rs.getInt(1), rs.getInt(2), rs.getString(3));
- }
- }
-
- System.out.format("Row updated with dup: %d\n", ret);
-
- ResultSet rs = stmt.executeQuery("select count(*) from wss_test.t_m_resource_monitor_test2");
- while (rs.next())
- {
- System.out.format("Count: %d\n", rs.getInt(1));
- }
-
- rs.close();
- stmt.close();
- } catch (SQLException e) {
- if (stmt != null) {
- try {
- stmt.close();
- } catch (SQLException e1) {
- e1.printStackTrace();
- }
- }
- e.printStackTrace();
- }
- }
-
- public static void main(String[] args) {
- //创建数据库连接。
- Connection conn = GetConnection("testusr", "Test@123");
- //查询表。
- QueryTable(conn);
- //关闭数据库连接。
- try {
- conn.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
-}
diff --git "a/app/zh/blogs/wangshifei/DBeaver\350\277\234\347\250\213\350\277\236\346\216\245openGauss\346\225\260\346\215\256\345\272\223\346\212\245\351\224\231\346\261\207\346\200\273" "b/app/zh/blogs/wangshifei/DBeaver\350\277\234\347\250\213\350\277\236\346\216\245openGauss\346\225\260\346\215\256\345\272\223\346\212\245\351\224\231\346\261\207\346\200\273"
index a29c7a942adf5a0c48f68a124a80c85fe709dc3e..9c2df435d5f00a3953e59d4a954e95bcbf4ebb92 100644
--- "a/app/zh/blogs/wangshifei/DBeaver\350\277\234\347\250\213\350\277\236\346\216\245openGauss\346\225\260\346\215\256\345\272\223\346\212\245\351\224\231\346\261\207\346\200\273"
+++ "b/app/zh/blogs/wangshifei/DBeaver\350\277\234\347\250\213\350\277\236\346\216\245openGauss\346\225\260\346\215\256\345\272\223\346\212\245\351\224\231\346\261\207\346\200\273"
@@ -73,7 +73,7 @@ host all all 192.168.181.0/24 sha256
这种情况应该是我们遇到该问题的时候,首先应该检查输入是否正确。如果在不确认密码是否正确的时候,建议可以先修改密码,然后再测试是否可以正确连接数据库。
```
-alter user test identified by 'openGauss@2024';
+alter user test identified by '******';
```
### 认证加密方式配置是否正确
@@ -91,7 +91,7 @@ show password_encryption_type;
(2)、修改password_encryption_type的参数值为1或0,这个时候我们配置md5,其实也是可以适用。但是需要注意修改password_encryption_type参数的配置不会自动触发已有用户密码加密方式的修改,只会影响新创建用户或修改用户密码操作。所以我们需要在修改参数后并重启数据库使参数生效,然后还需要修改数据库用户口令。
```
-alter user test identified by 'openGauss@0430';
+alter user test identified by '******';
```
该问题可以详细查看《DBeaver连接openGauss报错Invalid username/password问题排查》https://www.modb.pro/db/1784591381011976192文章中详细介绍。
diff --git "a/app/zh/blogs/weizishuo/2024-10-19-openGauss6.0.0-LTS\351\203\250\347\275\262\345\256\235\345\205\270\350\275\273\346\235\276\346\216\214\346\217\241\346\225\260\346\215\256\345\272\223\351\203\250\347\275\262\347\232\204\346\240\270\345\277\203\346\212\200\345\267\247.md" "b/app/zh/blogs/weizishuo/2024-10-19-openGauss6.0.0-LTS\351\203\250\347\275\262\345\256\235\345\205\270\350\275\273\346\235\276\346\216\214\346\217\241\346\225\260\346\215\256\345\272\223\351\203\250\347\275\262\347\232\204\346\240\270\345\277\203\346\212\200\345\267\247.md"
index dc1de2cfb8a80574a88d93951e75130ed9294d91..59840373b54aa9f5753e90eaf2cd5ba82f22a79d 100644
--- "a/app/zh/blogs/weizishuo/2024-10-19-openGauss6.0.0-LTS\351\203\250\347\275\262\345\256\235\345\205\270\350\275\273\346\235\276\346\216\214\346\217\241\346\225\260\346\215\256\345\272\223\351\203\250\347\275\262\347\232\204\346\240\270\345\277\203\346\212\200\345\267\247.md"
+++ "b/app/zh/blogs/weizishuo/2024-10-19-openGauss6.0.0-LTS\351\203\250\347\275\262\345\256\235\345\205\270\350\275\273\346\235\276\346\216\214\346\217\241\346\225\260\346\215\256\345\272\223\351\203\250\347\275\262\347\232\204\346\240\270\345\277\203\346\212\200\345\267\247.md"
@@ -412,7 +412,7 @@ PermitRootLogin yes # 修改为yes
[root@openGauss openGauss]# useradd -g dbgroup omm
# 为用户设置密码
-[root@openGauss openGauss]# echo 'Huawei12#$' | passwd --stdin omm
+[root@openGauss openGauss]# echo '******' | passwd --stdin omm
Changing password for user omm.
passwd: all authentication tokens updated successfully.
diff --git "a/app/zh/blogs/ysl/MOGDB openGauss\346\225\260\346\215\256\345\272\223gs_dump\345\244\207\344\273\275\350\204\232\346\234\254\345\217\212\345\244\207\344\273\275\346\270\205\347\220\206.md" "b/app/zh/blogs/ysl/MOGDB openGauss\346\225\260\346\215\256\345\272\223gs_dump\345\244\207\344\273\275\350\204\232\346\234\254\345\217\212\345\244\207\344\273\275\346\270\205\347\220\206.md"
index 213c703158d02ffc6d3b3a36b9a2355a55f303ff..5732c588e1d3b76b844449680f2c2aa6ee70d106 100644
--- "a/app/zh/blogs/ysl/MOGDB openGauss\346\225\260\346\215\256\345\272\223gs_dump\345\244\207\344\273\275\350\204\232\346\234\254\345\217\212\345\244\207\344\273\275\346\270\205\347\220\206.md"
+++ "b/app/zh/blogs/ysl/MOGDB openGauss\346\225\260\346\215\256\345\272\223gs_dump\345\244\207\344\273\275\350\204\232\346\234\254\345\217\212\345\244\207\344\273\275\346\270\205\347\220\206.md"
@@ -40,7 +40,7 @@ export GAUSSPORT=26000
export GAUSSDATA=/gaussdb/data/dn1
export PATH=$PGHOME/bin:$PATH
DUMP_USER=ysla
-DUMP_PASSWORD='1qaz@WSX'
+DUMP_PASSWORD='******'
CUR_DATE=`date "+%Y-%m-%d-%H%M"`
dbnamelist=`cat oo.txt`
diff --git "a/app/zh/blogs/zhangcuiping/openGauss\344\270\255\345\246\202\344\275\225\347\256\241\347\220\206\350\241\250\347\251\272\351\227\264.md" "b/app/zh/blogs/zhangcuiping/openGauss\344\270\255\345\246\202\344\275\225\347\256\241\347\220\206\350\241\250\347\251\272\351\227\264.md"
index e38eb7573acd158fb0616b4d3caeaf0571e78bcf..6a840d786e4b97da0ed89e5a1e3d3111ecf5efa6 100644
--- "a/app/zh/blogs/zhangcuiping/openGauss\344\270\255\345\246\202\344\275\225\347\256\241\347\220\206\350\241\250\347\251\272\351\227\264.md"
+++ "b/app/zh/blogs/zhangcuiping/openGauss\344\270\255\345\246\202\344\275\225\347\256\241\347\220\206\350\241\250\347\251\272\351\227\264.md"
@@ -27,7 +27,7 @@ times: '14:20'
1. 执行如下命令创建用户 jack。
```sql
- openGauss=#CREATE USER jack IDENTIFIED BY 'Bigdata@123';
+ openGauss=#CREATE USER jack IDENTIFIED BY '******';
NOTICE: The encrypted password contains MD5 ciphertext, which is not secure.
CREATE ROLE
```
diff --git "a/app/zh/blogs/zhangfan/JDBC\351\251\261\345\212\250\350\277\236\346\216\245MogDB openGauss.md" "b/app/zh/blogs/zhangfan/JDBC\351\251\261\345\212\250\350\277\236\346\216\245MogDB openGauss.md"
index 93a419a0d496484585a926983c98b461832e579c..4c373252c721e11e2504bcc0ea312a4242758260 100644
--- "a/app/zh/blogs/zhangfan/JDBC\351\251\261\345\212\250\350\277\236\346\216\245MogDB openGauss.md"
+++ "b/app/zh/blogs/zhangfan/JDBC\351\251\261\345\212\250\350\277\236\346\216\245MogDB openGauss.md"
@@ -53,7 +53,7 @@ gs_om -t start
```
postgres=# create database jdbc_db;
CREATE DATABASE
-postgres=# create user jdbc_usr password 'jdbc@123';
+postgres=# create user jdbc_usr password '******';
NOTICE: The encrypted password contains MD5 ciphertext, which is not secure.
CREATE ROLE
postgres=# alter user jdbc_usr sysadmin;
@@ -86,7 +86,7 @@ public class ConnTest {
try {
//创建数据库连接。
- conn = DriverManager.getConnection(sourceURL,"jdbc_usr", "jdbc@123");
+ conn = DriverManager.getConnection(sourceURL,"jdbc_usr", "******");
System.out.println("连接成功!");
} catch (Exception e) {
e.printStackTrace();
@@ -127,7 +127,7 @@ public class ConnTest {
*/
public static void main(String[] args) {
//创建数据库连接。
- Connection conn = GetConnection("jdbc_usr", "jdbc@123");
+ Connection conn = GetConnection("jdbc_usr", "******");
Select(conn);
//关闭数据库连接。
try {
diff --git "a/app/zh/blogs/zhangsir/\343\200\220\346\210\221\345\222\214openGauss\347\232\204\346\225\205\344\272\213\343\200\221\345\234\250Docker\347\216\257\345\242\203\344\270\213\346\265\213\350\257\225openGauss\347\232\204MOT\347\211\271\346\200\247.md" "b/app/zh/blogs/zhangsir/\343\200\220\346\210\221\345\222\214openGauss\347\232\204\346\225\205\344\272\213\343\200\221\345\234\250Docker\347\216\257\345\242\203\344\270\213\346\265\213\350\257\225openGauss\347\232\204MOT\347\211\271\346\200\247.md"
index 03c93018e6e873e12059aeb59e1fa6094f12ee5a..db5f7c1d41992777be5cf19d9408d3567ba6c704 100644
--- "a/app/zh/blogs/zhangsir/\343\200\220\346\210\221\345\222\214openGauss\347\232\204\346\225\205\344\272\213\343\200\221\345\234\250Docker\347\216\257\345\242\203\344\270\213\346\265\213\350\257\225openGauss\347\232\204MOT\347\211\271\346\200\247.md"
+++ "b/app/zh/blogs/zhangsir/\343\200\220\346\210\221\345\222\214openGauss\347\232\204\346\225\205\344\272\213\343\200\221\345\234\250Docker\347\216\257\345\242\203\344\270\213\346\265\213\350\257\225openGauss\347\232\204MOT\347\211\271\346\200\247.md"
@@ -25,7 +25,7 @@ times: '16:20'
- 4、启动镜像,指定下密码就行,如果密码太简单会报错。
- `docker run --name myopengauss --privileged=true -d -e GS_PASSWORD=Gauss@123 enmotech/opengauss:3.0.0`
+ `docker run --name myopengauss --privileged=true -d -e GS_PASSWORD=****** enmotech/opengauss:3.0.0`
## 二、测试 MOT 表
diff --git "a/app/zh/blogs/zhangxb/openGauss\345\256\271\347\201\276\351\233\206\347\276\244\345\273\272\347\253\213\345\245\275\344\272\206\345\220\216\344\277\256\346\224\271\345\257\206\347\240\201.md" "b/app/zh/blogs/zhangxb/openGauss\345\256\271\347\201\276\351\233\206\347\276\244\345\273\272\347\253\213\345\245\275\344\272\206\345\220\216\344\277\256\346\224\271\345\257\206\347\240\201.md"
index 26743aedfb66033e35bd98a47e6da32dde43a8dc..5b4ecce182ccd26ea7f531ea7d9747c2b98bae54 100644
--- "a/app/zh/blogs/zhangxb/openGauss\345\256\271\347\201\276\351\233\206\347\276\244\345\273\272\347\253\213\345\245\275\344\272\206\345\220\216\344\277\256\346\224\271\345\257\206\347\240\201.md"
+++ "b/app/zh/blogs/zhangxb/openGauss\345\256\271\347\201\276\351\233\206\347\276\244\345\273\272\347\253\213\345\245\275\344\272\206\345\220\216\344\277\256\346\224\271\345\257\206\347\240\201.md"
@@ -21,9 +21,9 @@ times: '18:40'
## 1. 搭建灾备集群
```
-gsql -d postgres -p 2400 -c "create user sdru1 with replication password 'opengauss@123';"
+gsql -d postgres -p 2400 -c "create user sdru1 with replication password '******';"
- gs_sdr -t start -m primary -X /opt/sdrmain.xml --time-out=7200 -U 'sdru1' -W 'opengauss@123'
+ gs_sdr -t start -m primary -X /opt/sdrmain.xml --time-out=7200 -U 'sdru1' -W '******'
```

@@ -80,13 +80,13 @@ om工具在搭建灾备涉及加密的如下几步:
1. 在主节点修改sdr用户密码
```
- alter user sdru1 password 'abc@1234567';
+ alter user sdru1 password '******';
```
2. 生成密码的密文,保存在系统表里面
```
-gs_encrypt -f 'hadr' "sdru1|abc@1234567"
+gs_encrypt -f 'hadr' "sdru1|******"
ALTER GLOBAL CONFIGURATION with(hadr_user_info ='kPuk8ITNo1JKS3xrs/VgQhJim4sGVkGkj8hxxNBvtibC6Du26xdRe8N5WuYPITAGdeYxAgTnsAlAOjhsouB7/Q==');
```
diff --git "a/app/zh/blogs/zhaoyanliang/openGauss\345\255\246\344\271\240\344\272\214-openGauss\346\225\260\346\215\256\345\272\223\345\256\211\350\243\205.md" "b/app/zh/blogs/zhaoyanliang/openGauss\345\255\246\344\271\240\344\272\214-openGauss\346\225\260\346\215\256\345\272\223\345\256\211\350\243\205.md"
index b29f7521fe890027594f4abde9e63a6d7d9d175e..7a572f2a407168394112038a955e9b430d613887 100644
--- "a/app/zh/blogs/zhaoyanliang/openGauss\345\255\246\344\271\240\344\272\214-openGauss\346\225\260\346\215\256\345\272\223\345\256\211\350\243\205.md"
+++ "b/app/zh/blogs/zhaoyanliang/openGauss\345\255\246\344\271\240\344\272\214-openGauss\346\225\260\346\215\256\345\272\223\345\256\211\350\243\205.md"
@@ -246,9 +246,9 @@ curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.huaweicloud.com/reposi
使用数据库前,需先使用客户端程序或工具连接到数据库,然后就可以通过客户端程序或工具执行 SQL 来使用数据库了。gsql 是 openGauss 数据库提供的命令行方式的数据库连接工具。
-4. **第一次连接数据库时,需要先修改 omm 用户密码,新密码修改为 Bigdata@123(建议用户自定义密码)**
+4. **第一次连接数据库时,需要先修改 omm 用户密码,新密码修改为 ******(建议用户自定义密码)**
-**alter role omm identified by _'Bigdata@123_' replace _'*********@***'_;**
+**alter role omm identified by _'******_' replace _'*********@***'_;**
显示“ALTER ROLE”则成功
@@ -256,11 +256,11 @@ curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.huaweicloud.com/reposi
默认只有 openGauss 安装时创建的管理员用户可以访问初始数据库,您还可以创建其他数据库用户帐号。
-指令:**CREATE USER joe WITH PASSWORD "Bigdata@123";**
+指令:**CREATE USER joe WITH PASSWORD "******";**
- 如上创建了一个用户名为joe,密码为Bigdata@123的用户。
+ 如上创建了一个用户名为joe,密码为******的用户。
6. **创建数据库。**
@@ -274,7 +274,7 @@ curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.huaweicloud.com/reposi
使用新用户连接到此数据库:
-指令: **gsql -d db_tpcc -p 26000 -U joe -W Bigdata@123 -r**
+指令: **gsql -d db_tpcc -p 26000 -U joe -W ****** -r**
显示如下内容表示成功:
diff --git "a/app/zh/blogs/zhengwen2/openGauss\345\234\250kubernetes\351\233\206\347\276\244\347\216\257\345\242\203\344\270\212\347\232\204\351\203\250\347\275\262.md" "b/app/zh/blogs/zhengwen2/openGauss\345\234\250kubernetes\351\233\206\347\276\244\347\216\257\345\242\203\344\270\212\347\232\204\351\203\250\347\275\262.md"
index 23184908d5d897b30cffbf566898583bb622278f..fee773cefa0519a576b46cdc1a31fa59dcc7b45d 100644
--- "a/app/zh/blogs/zhengwen2/openGauss\345\234\250kubernetes\351\233\206\347\276\244\347\216\257\345\242\203\344\270\212\347\232\204\351\203\250\347\275\262.md"
+++ "b/app/zh/blogs/zhengwen2/openGauss\345\234\250kubernetes\351\233\206\347\276\244\347\216\257\345\242\203\344\270\212\347\232\204\351\203\250\347\275\262.md"
@@ -142,7 +142,7 @@ spec:
imagePullPolicy: IfNotPresent
env:
- name: GS_PASSWORD
- value: Gauss@123
+ value: ******
ports:
- containerPort: 5432
name: opengauss
diff --git "a/app/zh/blogs/zhoucong/openlooking-\345\256\211\350\243\205\346\214\207\345\215\227.md" "b/app/zh/blogs/zhoucong/openlooking-\345\256\211\350\243\205\346\214\207\345\215\227.md"
index 136e4debef11a0a28861d8cd0acc19f29dfcc7d5..63c123f57baf6e05979da215ad792eca89b36b11 100644
--- "a/app/zh/blogs/zhoucong/openlooking-\345\256\211\350\243\205\346\214\207\345\215\227.md"
+++ "b/app/zh/blogs/zhoucong/openlooking-\345\256\211\350\243\205\346\214\207\345\215\227.md"
@@ -122,7 +122,7 @@ dataSources:
maxLifetimeMilliseconds: 1800000
maxPoolSize: 260
minPoolSize: 1
- password: Test@123
+ password: ******
username: test
ds_1:
url: jdbc:opengauss://xxx.xxx.x.33:16000/test?loggerLevel=OFF #数据库2 IP:port
@@ -131,7 +131,7 @@ dataSources:
maxLifetimeMilliseconds: 1800000
maxPoolSize: 260
minPoolSize: 1
- password: Test@123
+ password: ******
username: test
rules:
diff --git "a/app/zh/blogs/zhoujingbnu/2023-09-01-Mysql\345\215\217\350\256\256\345\205\274\345\256\271\347\211\271\346\200\247\345\205\245\351\227\250.md" "b/app/zh/blogs/zhoujingbnu/2023-09-01-Mysql\345\215\217\350\256\256\345\205\274\345\256\271\347\211\271\346\200\247\345\205\245\351\227\250.md"
index c9806854c4fab38429fac67d90d5309f42bdba22..b6265033f84bfd96feccad13447549a82a7d6ea0 100644
--- "a/app/zh/blogs/zhoujingbnu/2023-09-01-Mysql\345\215\217\350\256\256\345\205\274\345\256\271\347\211\271\346\200\247\345\205\245\351\227\250.md"
+++ "b/app/zh/blogs/zhoujingbnu/2023-09-01-Mysql\345\215\217\350\256\256\345\205\274\345\256\271\347\211\271\346\200\247\345\205\245\351\227\250.md"
@@ -33,9 +33,9 @@ Non-SSL connection (SSL connection is recommended when requiring high-security)
You are now connected to database "mysql_test" as user "zhoujing".
mysql_test=# create schema mysql_test;
CREATE SCHEMA
-mysql_test=# create user adminusr sysadmin password 'Cmcc@123!';
+mysql_test=# create user adminusr sysadmin password '******';
CREATE ROLE
-mysql_test=# select set_native_password('adminusr','Cmcc@123!');
+mysql_test=# select set_native_password('adminusr','******');
set_native_password
------------------------------------------
324e9019e7e4181b70321f5844c4c761cd1ae725
@@ -45,7 +45,7 @@ mysql_test=# select set_native_password('adminusr','Cmcc@123!');
3.使用mysql-client连接openGauss的Mysql协议兼容端口。在其中可以访问到磐维数据库mysql_test库(B库),中mysql_test schema下的表。注意mysql中的database对应openGauss中的schema
```
-mysql -h***.***.***.*** -uadminusr -pCmcc@123! -P3307 -Dmysql_test
+mysql -h***.***.***.*** -uadminusr -p****** -P3307 -Dmysql_test
```
4.使用jdbc方式连接,连接串类似如下形式:
@@ -91,6 +91,6 @@ tcp6 0 0 :::3307 :::* LISTEN
3.是否已经为登录用户设置了密码
```
-select set_native_password('adminusr','Cmcc@123!');
+select set_native_password('adminusr','******');
```
diff --git "a/app/zh/blogs/\344\274\201\351\271\205\345\234\210/\343\200\220\346\210\221\344\270\216openGauss\347\232\204\346\225\205\344\272\213\343\200\221\345\246\202\344\275\225\347\256\241\347\220\206\346\225\260\346\215\256\345\272\223\345\256\211\345\205\250(\347\254\254\344\270\200\351\203\250\345\210\206).md" "b/app/zh/blogs/\344\274\201\351\271\205\345\234\210/\343\200\220\346\210\221\344\270\216openGauss\347\232\204\346\225\205\344\272\213\343\200\221\345\246\202\344\275\225\347\256\241\347\220\206\346\225\260\346\215\256\345\272\223\345\256\211\345\205\250(\347\254\254\344\270\200\351\203\250\345\210\206).md"
index 132884a734f6bd5c295878a13795d930605525bf..45105c677218f5df10f6079f1a1030255592d709 100644
--- "a/app/zh/blogs/\344\274\201\351\271\205\345\234\210/\343\200\220\346\210\221\344\270\216openGauss\347\232\204\346\225\205\344\272\213\343\200\221\345\246\202\344\275\225\347\256\241\347\220\206\346\225\260\346\215\256\345\272\223\345\256\211\345\205\250(\347\254\254\344\270\200\351\203\250\345\210\206).md"
+++ "b/app/zh/blogs/\344\274\201\351\271\205\345\234\210/\343\200\220\346\210\221\344\270\216openGauss\347\232\204\346\225\205\344\272\213\343\200\221\345\246\202\344\275\225\347\256\241\347\220\206\346\225\260\346\215\256\345\272\223\345\256\211\345\205\250(\347\254\254\344\270\200\351\203\250\345\210\206).md"
@@ -68,7 +68,7 @@ gs_guc set -N all -I all -h "host all jack ***.***.***.***/24 sha256"
# 建立用户
-CREATE USER hack PASSWORD 'Test@123';
+CREATE USER hack PASSWORD '******';
#N all表示openGauss的所有主机。
@@ -208,11 +208,11 @@ Generating RSA private key, 2048 bit long modulus
e is 65537 (0x10001)
---设置根私钥的保护密码,假设为Test@123
+--设置根私钥的保护密码,假设为******
Enter pass phrase for demoCA/private/cakey.pem:
---再次输入私钥密码 Test@123
+--再次输入私钥密码 ******
Verifying - Enter pass phrase for demoCA/private/cakey.pem:
@@ -225,7 +225,7 @@ openssl req -config openssl.cnf -new -key demoCA/private/cakey.pem -out demoCA/c
Enter pass phrase for demoCA/private/cakey.pem:
---输入根私钥密码 Test@123
+--输入根私钥密码 ******
You are about to be asked to enter information that will be incorporated
@@ -284,7 +284,7 @@ Using configuration from openssl.cnf
Enter pass phrase for demoCA/private/cakey.pem:
---输入根私钥密码 Test@123
+--输入根私钥密码 ******
Check that the request matches the signature
@@ -359,11 +359,11 @@ e is 65537 (0x10001)
Enter pass phrase for server.key:
---服务端私钥的保护密码,假设为Test@123
+--服务端私钥的保护密码,假设为******
Verifying - Enter pass phrase for server.key:
---再次确认服务端私钥的保护密码,即为Test@123
+--再次确认服务端私钥的保护密码,即为******
#生成服务端证书请求文件
diff --git "a/app/zh/blogs/\347\254\254\344\272\224\345\261\212opengauss/\345\237\272\344\272\216DAS\347\256\241\347\220\206\344\272\221\346\225\260\346\215\256\345\272\223GaussDB(for openGauss)\347\232\204\344\270\200\344\272\233\346\223\215\344\275\234.md" "b/app/zh/blogs/\347\254\254\344\272\224\345\261\212opengauss/\345\237\272\344\272\216DAS\347\256\241\347\220\206\344\272\221\346\225\260\346\215\256\345\272\223GaussDB(for openGauss)\347\232\204\344\270\200\344\272\233\346\223\215\344\275\234.md"
index 132884a734f6bd5c295878a13795d930605525bf..45105c677218f5df10f6079f1a1030255592d709 100644
--- "a/app/zh/blogs/\347\254\254\344\272\224\345\261\212opengauss/\345\237\272\344\272\216DAS\347\256\241\347\220\206\344\272\221\346\225\260\346\215\256\345\272\223GaussDB(for openGauss)\347\232\204\344\270\200\344\272\233\346\223\215\344\275\234.md"
+++ "b/app/zh/blogs/\347\254\254\344\272\224\345\261\212opengauss/\345\237\272\344\272\216DAS\347\256\241\347\220\206\344\272\221\346\225\260\346\215\256\345\272\223GaussDB(for openGauss)\347\232\204\344\270\200\344\272\233\346\223\215\344\275\234.md"
@@ -68,7 +68,7 @@ gs_guc set -N all -I all -h "host all jack ***.***.***.***/24 sha256"
# 建立用户
-CREATE USER hack PASSWORD 'Test@123';
+CREATE USER hack PASSWORD '******';
#N all表示openGauss的所有主机。
@@ -208,11 +208,11 @@ Generating RSA private key, 2048 bit long modulus
e is 65537 (0x10001)
---设置根私钥的保护密码,假设为Test@123
+--设置根私钥的保护密码,假设为******
Enter pass phrase for demoCA/private/cakey.pem:
---再次输入私钥密码 Test@123
+--再次输入私钥密码 ******
Verifying - Enter pass phrase for demoCA/private/cakey.pem:
@@ -225,7 +225,7 @@ openssl req -config openssl.cnf -new -key demoCA/private/cakey.pem -out demoCA/c
Enter pass phrase for demoCA/private/cakey.pem:
---输入根私钥密码 Test@123
+--输入根私钥密码 ******
You are about to be asked to enter information that will be incorporated
@@ -284,7 +284,7 @@ Using configuration from openssl.cnf
Enter pass phrase for demoCA/private/cakey.pem:
---输入根私钥密码 Test@123
+--输入根私钥密码 ******
Check that the request matches the signature
@@ -359,11 +359,11 @@ e is 65537 (0x10001)
Enter pass phrase for server.key:
---服务端私钥的保护密码,假设为Test@123
+--服务端私钥的保护密码,假设为******
Verifying - Enter pass phrase for server.key:
---再次确认服务端私钥的保护密码,即为Test@123
+--再次确认服务端私钥的保护密码,即为******
#生成服务端证书请求文件
diff --git "a/app/zh/blogs/\351\243\216\344\270\200\346\240\267\350\207\252\347\224\261/openGauss 6.0.0-RC1\351\200\273\350\276\221\345\244\215\345\210\266\347\211\271\346\200\247\346\265\213\350\257\225.md" "b/app/zh/blogs/\351\243\216\344\270\200\346\240\267\350\207\252\347\224\261/openGauss 6.0.0-RC1\351\200\273\350\276\221\345\244\215\345\210\266\347\211\271\346\200\247\346\265\213\350\257\225.md"
index 34be888136bff4d11b8f05cb5944110d30042d01..ec3dbfe8532e215dca8c0716a208547739090e7d 100644
--- "a/app/zh/blogs/\351\243\216\344\270\200\346\240\267\350\207\252\347\224\261/openGauss 6.0.0-RC1\351\200\273\350\276\221\345\244\215\345\210\266\347\211\271\346\200\247\346\265\213\350\257\225.md"
+++ "b/app/zh/blogs/\351\243\216\344\270\200\346\240\267\350\207\252\347\224\261/openGauss 6.0.0-RC1\351\200\273\350\276\221\345\244\215\345\210\266\347\211\271\346\200\247\346\265\213\350\257\225.md"
@@ -65,10 +65,10 @@ gs_om -t restart
```
-gsql -d postgres -p 15000 -c "CREATE USER repl REPLICATION SYSADMIN LOGIN ENCRYPTED PASSWORD 'repl@123'"
+gsql -d postgres -p 15000 -c "CREATE USER repl REPLICATION SYSADMIN LOGIN ENCRYPTED PASSWORD '******'"
[omm@yf4 opt]$ gsql -d postgres -p 15000 -c "CREATE USER repl REPLICATION SYSADMIN
-LOGIN ENCRYPTED PASSWORD 'repl@123'"
+LOGIN ENCRYPTED PASSWORD '******'"
CREATE ROLE
```
@@ -125,9 +125,9 @@ CREATE TABLE
## 6.订阅端创建加密文件
```
-gs_ssh -c "gs_guc generate -S repl@123 -D $GAUSSHOME/bin -o subscription"
+gs_ssh -c "gs_guc generate -S ****** -D $GAUSSHOME/bin -o subscription"
-[omm@yf5 ~]$ gs_ssh -c "gs_guc generate -S repl@123 -D $GAUSSHOME/bin -o subscription"Successfully execute command on all nodes.
+[omm@yf5 ~]$ gs_ssh -c "gs_guc generate -S ****** -D $GAUSSHOME/bin -o subscription"Successfully execute command on all nodes.
Output:[SUCCESS] yf5:
The gs_guc run with the following arguments: [gs_guc -S *** -D /opt/openGauss/install/app/bin -o subscription generate ].
@@ -139,9 +139,9 @@ gs_guc generate -S ***
```
gsql -d postgres -p 15000 -c "CREATE SUBSCRIPTION sub1 CONNECTION
- 'host=192.168.59.149 port=15001 dbname=postgres user=repl password=repl@123' PUBLICATION pub1"
+ 'host=192.168.59.149 port=15001 dbname=postgres user=repl password=******' PUBLICATION pub1"
-[omm@yf5 ~]$ gsql -d postgres -p 15000 -c "CREATE SUBSCRIPTION sub1 CONNECTION 'host=192.168.59.149 port=15001 dbname=postgres user=repl password=repl@123' PUBLICATION pub1"NOTICE: created replication slot "sub1" on publisher
+[omm@yf5 ~]$ gsql -d postgres -p 15000 -c "CREATE SUBSCRIPTION sub1 CONNECTION 'host=192.168.59.149 port=15001 dbname=postgres user=repl password=******' PUBLICATION pub1"NOTICE: created replication slot "sub1" on publisher
CREATE SUBSCRIPTION
```
@@ -192,7 +192,7 @@ subconninfo | subslotname | subsync
---------+---------+----------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------+-------------+---------------+----------
-------+-----------+------------+------------------
15737 | sub1 | 10 | t
-| host=192.168.59.149 port=15001 dbname=postgres user=repl password=encryptOpty+wL5qbR/g1duD+0mVBEBTPUHu/DqESpg30CN6Bbh8go4hKEMAlGiKf8KtM6klUb
+| host=192.168.59.149 port=15001 dbname=postgres user=repl password=******
| sub1 | off | {pub1} | f | 0/0 | t
(1 row)
diff --git a/opendesign/select/OSelect.vue b/opendesign/select/OSelect.vue
index 7abf51db7918350ab8530d2edd858721c3572fe2..2114f78e2e7988420f582acb2663e71ce1fe52b9 100644
--- a/opendesign/select/OSelect.vue
+++ b/opendesign/select/OSelect.vue
@@ -1,6 +1,6 @@