From 63c19eacb69c56586b287a07bd848584d92762cc Mon Sep 17 00:00:00 2001 From: Evan Barger Date: Mon, 15 Mar 2021 16:54:07 -0400 Subject: [PATCH 01/28] Upgrade packages, including to Gatsby 3; update icon scripts to stop warning; migrate husky to v5 Former-commit-id: 82677e16f20dd3db22b6a248957ba99089e0c2a9 --- .husky/.gitignore | 1 + .husky/pre-commit | 4 + gatsby-config.js | 4 - package.json | 49 +- scripts/createIconNames.js | 5 +- src/components/icon/iconNames.js | 3 +- yarn.lock | 6596 ++++++++++++------------------ 7 files changed, 2693 insertions(+), 3969 deletions(-) create mode 100644 .husky/.gitignore create mode 100755 .husky/pre-commit diff --git a/.husky/.gitignore b/.husky/.gitignore new file mode 100644 index 00000000000..31354ec1389 --- /dev/null +++ b/.husky/.gitignore @@ -0,0 +1 @@ +_ diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 00000000000..470f973fd60 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,4 @@ +#!/bin/sh +. "$(dirname "$0")/_/husky.sh" + +yarn pretty-quick --staged --pattern 'src/**/*.js' --pattern 'gatsby-*.js' diff --git a/gatsby-config.js b/gatsby-config.js index 037e816aa2b..d9a4dbfbbe8 100644 --- a/gatsby-config.js +++ b/gatsby-config.js @@ -131,10 +131,6 @@ const indexQuery = ` /********** Gatsby config *********/ module.exports = { - flags: { - PRESERVE_WEBPACK_CACHE: true, - FAST_REFRESH: true, - }, pathPrefix: '/docs', siteMetadata: { title: 'EDB Docs', diff --git a/package.json b/package.json index 928bf142fd1..7b7f1c53b65 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,7 @@ "format": "prettier --write src/**/*.js gatsby-*.js", "build": "gatsby build --prefix-paths", "serve-build": "gatsby serve --prefix-paths", + "postinstall": "husky install", "update-icons": "git submodule update --init --remote && node scripts/createIconTypes.js && node scripts/createIconNames.js", "build-pdf": "docker-compose -f docker/docker-compose.build-pdf.yaml run --rm --entrypoint scripts/pdf/generate_pdf.py pdf-builder", "build-all-pdfs": "for i in product_docs/docs/**/*/ ; do echo \"$i\"; yarn build-pdf ${i%} || exit 1; done", @@ -23,43 +24,37 @@ "heroku-postbuild": "gatsby build", "build-legacy-redirects-nginx": "gatsby clean && gatsby build --prefix-paths && python3 scripts/legacy_redirects/clean_up_output.py" }, - "husky": { - "hooks": { - "pre-commit": "pretty-quick --staged --pattern 'src/**/*.js' --pattern 'gatsby-*.js'" - } - }, "dependencies": { "@mdx-js/mdx": "^1.6.1", "@mdx-js/react": "^1.6.1", "algoliasearch": "^4.2.0", "balance-text": "^3.3.0", - "bl": "4.0.3", + "bl": "4.1.0", "bootstrap": "4.6.0", - "gatsby": "^2.31.1", - "gatsby-cli": "^2.12.93", - "gatsby-image": "^2.4.1", - "gatsby-plugin-algolia": "^0.16.3", - "gatsby-plugin-catch-links": "^2.6.0", + "gatsby": "^3.0.0", + "gatsby-cli": "^3.0.0", + "gatsby-plugin-algolia": "^0.17.0", + "gatsby-plugin-catch-links": "^3.0.0", "gatsby-plugin-google-fonts": "^1.0.1", - "gatsby-plugin-google-tagmanager": "^2.10.0", - "gatsby-plugin-manifest": "^2.4.10", - "gatsby-plugin-mdx": "^1.2.6", + "gatsby-plugin-google-tagmanager": "^3.0.0", + "gatsby-plugin-manifest": "^3.0.0", + "gatsby-plugin-mdx": "^2.0.1", "gatsby-plugin-meta-redirect": "^1.1.1", - "gatsby-plugin-netlify": "^2.3.13", + "gatsby-plugin-netlify": "^3.0.0", "gatsby-plugin-nginx-redirect": "^0.0.11", - "gatsby-plugin-react-helmet": "^3.3.1", + "gatsby-plugin-react-helmet": "^4.0.0", "gatsby-plugin-react-svg": "^3.0.0", "gatsby-plugin-remove-fingerprints": "^0.0.2", - "gatsby-plugin-sass": "^3.1.0", - "gatsby-plugin-sharp": "^2.13.2", - "gatsby-plugin-sitemap": "^2.4.13", - "gatsby-remark-autolink-headers": "^2.3.1", - "gatsby-remark-images": "^3.10.0", - "gatsby-remark-prismjs": "^3.5.4", - "gatsby-source-filesystem": "^2.3.1", - "gatsby-transformer-json": "^2.4.3", - "gatsby-transformer-remark": "^2.8.15", - "gatsby-transformer-sharp": "^2.5.1", + "gatsby-plugin-sass": "^4.0.2", + "gatsby-plugin-sharp": "^3.0.1", + "gatsby-plugin-sitemap": "^3.0.0", + "gatsby-remark-autolink-headers": "^3.0.0", + "gatsby-remark-images": "^4.0.0", + "gatsby-remark-prismjs": "^4.0.0", + "gatsby-source-filesystem": "^3.0.0", + "gatsby-transformer-json": "^3.0.0", + "gatsby-transformer-remark": "^3.0.0", + "gatsby-transformer-sharp": "^3.0.0", "graceful-fs": "^4.2.4", "is-absolute-url": "^3.0.3", "markdown-to-jsx": "^7.0.0", @@ -77,7 +72,7 @@ "fast-glob": "^3.2.5", "hast-util-is-element": "^1.1.0", "hast-util-to-text": "^2.0.1", - "husky": "^4.3.5", + "husky": "^5.1.3", "prettier": "^2.2.1", "pretty-quick": "^3.1.0", "react-refresh": "^0.9.0", diff --git a/scripts/createIconNames.js b/scripts/createIconNames.js index ff3ddebb9b1..48c693709b9 100644 --- a/scripts/createIconNames.js +++ b/scripts/createIconNames.js @@ -10,9 +10,10 @@ const toScreamingSnakeCase = (string) => string.replace(/-/g, '_').toUpperCase() const icons = readdirSync('static/edb-icons').filter(isSVG).map(removeExtension); const IconNamesContent = [ - 'export default {', + 'const iconNames = {', icons.map((icon) => ` ${toScreamingSnakeCase(icon)}: '${toSingleLowerCase(icon)}',`).join('\n'), - '};\n', + '};', + 'export default iconNames;\n', ].join('\n'); writeFileSync(`src/components/icon/iconNames.js`, IconNamesContent); diff --git a/src/components/icon/iconNames.js b/src/components/icon/iconNames.js index d029d501073..a0378a5d2d2 100644 --- a/src/components/icon/iconNames.js +++ b/src/components/icon/iconNames.js @@ -1,4 +1,4 @@ -export default { +const iconNames = { ALERT: 'alert', ANGULARJS_COLOR: 'angularjscolor', ANNOUNCE: 'announce', @@ -183,3 +183,4 @@ export default { WEBINAR: 'webinar', WINDOWS_COLOR: 'windowscolor', }; +export default iconNames; diff --git a/yarn.lock b/yarn.lock index e1ca1926fe6..1920b9909da 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,109 +2,109 @@ # yarn lockfile v1 -"@algolia/cache-browser-local-storage@4.8.4": - version "4.8.4" - resolved "https://registry.yarnpkg.com/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.8.4.tgz#6a03ffc6b0b5b5aa7f74732bf8091a0f3d2b0986" - integrity sha512-qSS3VMP3oMhcLrYIFveRyt3F5XB6MqWogF4Vooj8KvOvqv6jBmYwkAueSXCF5pkJEaA72VL9+9NbBpfC8ez2ww== - dependencies: - "@algolia/cache-common" "4.8.4" - -"@algolia/cache-common@4.8.4": - version "4.8.4" - resolved "https://registry.yarnpkg.com/@algolia/cache-common/-/cache-common-4.8.4.tgz#b105bdfe3fa0ba15db936177c4db420befed2ab7" - integrity sha512-5+dLmj6qFy4WOtnNQuFRfWTIIDdpUigv+dXaKMFplNPBvZHGFy3hcRjWqYzGcqaeLqcXbN8cU5r75mvrlJIxcw== - -"@algolia/cache-in-memory@4.8.4": - version "4.8.4" - resolved "https://registry.yarnpkg.com/@algolia/cache-in-memory/-/cache-in-memory-4.8.4.tgz#e978935dd8c4bbd555820e9b9fc863a24f3d38dd" - integrity sha512-PBN4YKxn/L+HjVKqUE5rtLiFKqzm4qnUoF7QvCFFmFAViCdYwZSMFVmDobstqWY3KULfsEqaeD4eU4jxZbKhEA== - dependencies: - "@algolia/cache-common" "4.8.4" - -"@algolia/client-account@4.8.4": - version "4.8.4" - resolved "https://registry.yarnpkg.com/@algolia/client-account/-/client-account-4.8.4.tgz#a0af429e3587b33a988fec98ce0c739fd16143aa" - integrity sha512-mrsOnGV4O2b+t1CumUH72+Psw9d9qwngBEp2le7IMSceJQywQvNCyJ4B4qyoozHsIGapXfcVAOhRxqUsNQ6U6g== - dependencies: - "@algolia/client-common" "4.8.4" - "@algolia/client-search" "4.8.4" - "@algolia/transporter" "4.8.4" - -"@algolia/client-analytics@4.8.4": - version "4.8.4" - resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-4.8.4.tgz#77c81b699909b50ecd9bf97997f014cfeb358fc3" - integrity sha512-Xy70njSUgG/QTv5+rPjsTIzBF/bjxseS5h9SawrQGzovTosbJbu9JBlg4YwVJnYvjovzpr7S39+gPIPc8M7+Rg== - dependencies: - "@algolia/client-common" "4.8.4" - "@algolia/client-search" "4.8.4" - "@algolia/requester-common" "4.8.4" - "@algolia/transporter" "4.8.4" - -"@algolia/client-common@4.8.4": - version "4.8.4" - resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-4.8.4.tgz#a1b35645253c7f96925bfe91bac486e755329b77" - integrity sha512-sQlRa+KWFn+D8AOEZb4kj6RE/i6DnPwVOF4AnNf9IjNB0mUUhLWw96cQN6GDx0KE4lhW67t+qR39ZuuDBgR9ww== - dependencies: - "@algolia/requester-common" "4.8.4" - "@algolia/transporter" "4.8.4" - -"@algolia/client-recommendation@4.8.4": - version "4.8.4" - resolved "https://registry.yarnpkg.com/@algolia/client-recommendation/-/client-recommendation-4.8.4.tgz#1aaa9735e96865ff06321a8bc850829445c945d1" - integrity sha512-CE0CVqLGWotVOaUXyU33FVD9FZ/7rqcbwFPH5MgSjVdE0B1YWVedhR0s2BNKodXLcIGVLVYfXR05CLdvOlTw+A== - dependencies: - "@algolia/client-common" "4.8.4" - "@algolia/requester-common" "4.8.4" - "@algolia/transporter" "4.8.4" - -"@algolia/client-search@4.8.4": - version "4.8.4" - resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-4.8.4.tgz#0320c4a109d2cc220a9d1002f9ec64655a4494dc" - integrity sha512-eH2tRPnDU3tqpp0BSqP6coRRQe8fceqsupuf/1ho+Mcs5DM13mEuFmNOyPywHRlYLVPmbbCPRhDr5rB8QoN7XQ== - dependencies: - "@algolia/client-common" "4.8.4" - "@algolia/requester-common" "4.8.4" - "@algolia/transporter" "4.8.4" - -"@algolia/logger-common@4.8.4": - version "4.8.4" - resolved "https://registry.yarnpkg.com/@algolia/logger-common/-/logger-common-4.8.4.tgz#42ecab3c92388a0d81b8532cefb47670da46cdd3" - integrity sha512-6hOaFG75Onmant9adcaeCZgvPYfnif7n0H1ycbixm6/WH3SmxqPMG+CMiW8mTNTRrrAEceQVrq6tDHD8jdnOOw== - -"@algolia/logger-console@4.8.4": - version "4.8.4" - resolved "https://registry.yarnpkg.com/@algolia/logger-console/-/logger-console-4.8.4.tgz#adfac58df84848443bff1326986a0ca98db866b9" - integrity sha512-+9T3t/eB9vseANFz9YbFHG0cHjzVP/DVfGqzTAkeSlvMHP69JzJga9Wb0Ai6J3xXE3d4k9K+k6t+kkjCQjzEqg== - dependencies: - "@algolia/logger-common" "4.8.4" - -"@algolia/requester-browser-xhr@4.8.4": - version "4.8.4" - resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.8.4.tgz#30c5c9d129fafd863b7c9c7a988c36ec5754b973" - integrity sha512-BYa8O/pht0UL2bcm0ZkLZiyC+5dHrbc6gvKIo+OgqxmDb/K4KrVo6RIof3BVpR8fgcfxQJohjNVHKXHxEUhBCQ== - dependencies: - "@algolia/requester-common" "4.8.4" - -"@algolia/requester-common@4.8.4": - version "4.8.4" - resolved "https://registry.yarnpkg.com/@algolia/requester-common/-/requester-common-4.8.4.tgz#670f5e43e4d09ff9a3b9bfda7ac0c03476a9e4b1" - integrity sha512-br3LXb6srfAy7F04axwExmrkPOlXCDckgTFoLFv/RT9Oo28SpoyvHqktyBovQLdzdTs+Laglf+LtOHr0iUrZJg== - -"@algolia/requester-node-http@4.8.4": - version "4.8.4" - resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-4.8.4.tgz#8af2cceb45e5bb2b9e7ed3b7daa34f3c2580912a" - integrity sha512-o5Cc4UxYPn3IBHQSDBNFFhq1LQLv40eYvCvK0FPJ8xZkrnNXhjPvaLCu/lQTHpk/HX7DaE6fQ/KboU0OSPKevQ== - dependencies: - "@algolia/requester-common" "4.8.4" - -"@algolia/transporter@4.8.4": - version "4.8.4" - resolved "https://registry.yarnpkg.com/@algolia/transporter/-/transporter-4.8.4.tgz#09452334e380ff0706676303e6642e76b72ae0bf" - integrity sha512-EvXFYICxrr9QEO6m6awUeNOBstOxePQ2Fy0jtYlS1v9TY2P5HqKRzkxmaZjeYRBsXOImpVjgQIzTzj1Au4br2w== - dependencies: - "@algolia/cache-common" "4.8.4" - "@algolia/logger-common" "4.8.4" - "@algolia/requester-common" "4.8.4" +"@algolia/cache-browser-local-storage@4.8.6": + version "4.8.6" + resolved "https://registry.yarnpkg.com/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.8.6.tgz#6be9644b68efbbc231ac3f0a4cfa985ef31eade9" + integrity sha512-Bam7otzjIEgrRXWmk0Amm1+B3ROI5dQnUfJEBjIy0YPM0kMahEoJXCw6160tGKxJLl1g6icoC953nGshQKO7cA== + dependencies: + "@algolia/cache-common" "4.8.6" + +"@algolia/cache-common@4.8.6": + version "4.8.6" + resolved "https://registry.yarnpkg.com/@algolia/cache-common/-/cache-common-4.8.6.tgz#dff1697a0fe3d7856630071559661ec5ad90f31c" + integrity sha512-eGQlsXU5G7n4RvV/K6qe6lRAeL6EKAYPT3yZDBjCW4pAh7JWta+77a7BwUQkTqXN1MEQWZXjex3E4z/vFpzNrg== + +"@algolia/cache-in-memory@4.8.6": + version "4.8.6" + resolved "https://registry.yarnpkg.com/@algolia/cache-in-memory/-/cache-in-memory-4.8.6.tgz#9a100a1be05e700a253ef4bdabd3bd45df2f67d4" + integrity sha512-kbJrvCFANxL/l5Pq1NFyHLRphKDwmqcD/OJga0IbNKEulRGDPkt1+pC7/q8d2ikP12adBjLLg2CVias9RJpIaw== + dependencies: + "@algolia/cache-common" "4.8.6" + +"@algolia/client-account@4.8.6": + version "4.8.6" + resolved "https://registry.yarnpkg.com/@algolia/client-account/-/client-account-4.8.6.tgz#050cfd6a6d3e06a5a8e1029f24d6d50524d186c6" + integrity sha512-FQVJE/BgCb78jtG7V0r30sMl9P5JKsrsOacGtGF2YebqI0YF25y8Z1nO39lbdjahxUS3QkDw2d0P2EVMj65g2Q== + dependencies: + "@algolia/client-common" "4.8.6" + "@algolia/client-search" "4.8.6" + "@algolia/transporter" "4.8.6" + +"@algolia/client-analytics@4.8.6": + version "4.8.6" + resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-4.8.6.tgz#ac644cfc9d87a085b9e53c71a42ef6e90d828501" + integrity sha512-ZBYFUlzNaWDFtt0rYHI7xbfVX0lPWU9lcEEXI/BlnkRgEkm247H503tNatPQFA1YGkob52EU18sV1eJ+OFRBLA== + dependencies: + "@algolia/client-common" "4.8.6" + "@algolia/client-search" "4.8.6" + "@algolia/requester-common" "4.8.6" + "@algolia/transporter" "4.8.6" + +"@algolia/client-common@4.8.6": + version "4.8.6" + resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-4.8.6.tgz#c8b81af250ed8beb741a0e5cfdd3236bb4292c94" + integrity sha512-8dI+K3Nvbes2YRZm2LY7bdCUD05e60BhacrMLxFuKxnBGuNehME1wbxq/QxcG1iNFJlxLIze5TxIcNN3+pn76g== + dependencies: + "@algolia/requester-common" "4.8.6" + "@algolia/transporter" "4.8.6" + +"@algolia/client-recommendation@4.8.6": + version "4.8.6" + resolved "https://registry.yarnpkg.com/@algolia/client-recommendation/-/client-recommendation-4.8.6.tgz#2518a09bfbeaec78b0d7a4213107f0899f80f9ac" + integrity sha512-Kg8DpjwvaWWujNx6sAUrSL+NTHxFe/UNaliCcSKaMhd3+FiPXN+CrSkO0KWR7I+oK2qGBTG/2Y0BhFOJ5/B/RA== + dependencies: + "@algolia/client-common" "4.8.6" + "@algolia/requester-common" "4.8.6" + "@algolia/transporter" "4.8.6" + +"@algolia/client-search@4.8.6": + version "4.8.6" + resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-4.8.6.tgz#1ca3f28c04ef4120b0563a293b30fcfe1b3fd1d0" + integrity sha512-vXLS6umL/9G3bwqc6pkrS9K5/s8coq55mpfRARL+bs0NsToOf77WSTdwzlxv/KdbVF7dHjXgUpBvJ6RyR4ZdAw== + dependencies: + "@algolia/client-common" "4.8.6" + "@algolia/requester-common" "4.8.6" + "@algolia/transporter" "4.8.6" + +"@algolia/logger-common@4.8.6": + version "4.8.6" + resolved "https://registry.yarnpkg.com/@algolia/logger-common/-/logger-common-4.8.6.tgz#8c44a4f550e12418b0ec8d76a068e4f1c64206d1" + integrity sha512-FMRxZGdDxSzd0/Mv0R1021FvUt0CcbsQLYeyckvSWX8w+Uk4o0lcV6UtZdERVR5XZsGOqoXLMIYDbR2vkbGbVw== + +"@algolia/logger-console@4.8.6": + version "4.8.6" + resolved "https://registry.yarnpkg.com/@algolia/logger-console/-/logger-console-4.8.6.tgz#77176570fa6532fa846c7cfa2c6280935b1a3a06" + integrity sha512-TYw9lwUCjvApC6Z0zn36T6gkCl7hbfJmnU+Z/D8pFJ3Yp7lz06S3oWGjbdrULrYP1w1VOhjd0X7/yGNsMhzutQ== + dependencies: + "@algolia/logger-common" "4.8.6" + +"@algolia/requester-browser-xhr@4.8.6": + version "4.8.6" + resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.8.6.tgz#dbcb5906d10c619d7f08fced2f68fa09abffe5fd" + integrity sha512-omh6uJ3CJXOmcrU9M3/KfGg8XkUuGJGIMkqEbkFvIebpBJxfs6TVs0ziNeMFAcAfhi8/CGgpLbDSgJtWdGQa6w== + dependencies: + "@algolia/requester-common" "4.8.6" + +"@algolia/requester-common@4.8.6": + version "4.8.6" + resolved "https://registry.yarnpkg.com/@algolia/requester-common/-/requester-common-4.8.6.tgz#37ea1f9ecc1afcd91532b9f9c952c62fdef42bca" + integrity sha512-r5xJqq/D9KACkI5DgRbrysVL5DUUagikpciH0k0zjBbm+cXiYfpmdflo/h6JnY6kmvWgjr/4DoeTjKYb/0deAQ== + +"@algolia/requester-node-http@4.8.6": + version "4.8.6" + resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-4.8.6.tgz#e966293224f3bd1ba32ce4f9bc0fdada5d8e69ec" + integrity sha512-TB36OqTVOKyHCOtdxhn/IJyI/NXi/BWy8IEbsiWwwZWlL79NWHbetj49jXWFolEYEuu8PgDjjZGpRhypSuO9XQ== + dependencies: + "@algolia/requester-common" "4.8.6" + +"@algolia/transporter@4.8.6": + version "4.8.6" + resolved "https://registry.yarnpkg.com/@algolia/transporter/-/transporter-4.8.6.tgz#b605dcd971aed374bdd95dd8938b93b9df650109" + integrity sha512-NRb31J0TP7EPoVMpXZ4yAtr61d26R8KGaf6qdULknvq5sOVHuuH4PwmF08386ERfIsgnM/OBhl+uzwACdCIjSg== + dependencies: + "@algolia/cache-common" "4.8.6" + "@algolia/logger-common" "4.8.6" + "@algolia/requester-common" "4.8.6" "@ardatan/aggregate-error@0.0.6": version "0.0.6" @@ -113,17 +113,31 @@ dependencies: tslib "~2.0.1" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.11": +"@babel/code-frame@7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" + integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== + dependencies: + "@babel/highlight" "^7.10.4" + +"@babel/code-frame@7.12.11": version "7.12.11" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== dependencies: "@babel/highlight" "^7.10.4" -"@babel/compat-data@^7.12.5", "@babel/compat-data@^7.12.7": - version "7.12.7" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.12.7.tgz#9329b4782a7d6bbd7eef57e11addf91ee3ef1e41" - integrity sha512-YaxPMGs/XIWtYqrdEOZOCPsVWfEoriXopnsz3/i7apYPXQ3698UFhS6dVT1KN5qOsWmVgw/FOrmQgpRaZayGsw== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.5.5": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658" + integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g== + dependencies: + "@babel/highlight" "^7.12.13" + +"@babel/compat-data@^7.13.0", "@babel/compat-data@^7.13.8": + version "7.13.11" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.13.11.tgz#9c8fe523c206979c9a81b1e12fe50c1254f1aa35" + integrity sha512-BwKEkO+2a67DcFeS3RLl0Z3Gs2OvdXewuWjc1Hfokhb5eQWP9YRYH1/+VrVZvql2CfjOiNGqSAFOYt4lsqTHzg== "@babel/core@7.10.5": version "7.10.5" @@ -170,184 +184,205 @@ source-map "^0.5.0" "@babel/core@^7.12.3": - version "7.12.10" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.10.tgz#b79a2e1b9f70ed3d84bbfb6d8c4ef825f606bccd" - integrity sha512-eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.12.10" - "@babel/helper-module-transforms" "^7.12.1" - "@babel/helpers" "^7.12.5" - "@babel/parser" "^7.12.10" - "@babel/template" "^7.12.7" - "@babel/traverse" "^7.12.10" - "@babel/types" "^7.12.10" + version "7.13.10" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.13.10.tgz#07de050bbd8193fcd8a3c27918c0890613a94559" + integrity sha512-bfIYcT0BdKeAZrovpMqX2Mx5NrgAckGbwT982AkdS5GNfn3KMGiprlBAtmBcFZRUmpaufS6WZFP8trvx8ptFDw== + dependencies: + "@babel/code-frame" "^7.12.13" + "@babel/generator" "^7.13.9" + "@babel/helper-compilation-targets" "^7.13.10" + "@babel/helper-module-transforms" "^7.13.0" + "@babel/helpers" "^7.13.10" + "@babel/parser" "^7.13.10" + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.13.0" + "@babel/types" "^7.13.0" convert-source-map "^1.7.0" debug "^4.1.0" - gensync "^1.0.0-beta.1" + gensync "^1.0.0-beta.2" json5 "^2.1.2" lodash "^4.17.19" - semver "^5.4.1" + semver "^6.3.0" source-map "^0.5.0" -"@babel/generator@^7.10.5", "@babel/generator@^7.12.10", "@babel/generator@^7.12.11", "@babel/generator@^7.12.5": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.11.tgz#98a7df7b8c358c9a37ab07a24056853016aba3af" - integrity sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA== +"@babel/eslint-parser@^7.13.4": + version "7.13.10" + resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.13.10.tgz#e272979914f36bb6cea144c14c32bb51632696dd" + integrity sha512-/I1HQ3jGPhIpeBFeI3wO9WwWOnBYpuR0pX0KlkdGcRQAVX9prB/FCS2HBpL7BiFbzhny1YCiBH8MTZD2jJa7Hg== dependencies: - "@babel/types" "^7.12.11" + eslint-scope "5.1.0" + eslint-visitor-keys "^1.3.0" + semver "^6.3.0" + +"@babel/generator@^7.10.5", "@babel/generator@^7.12.5", "@babel/generator@^7.13.0", "@babel/generator@^7.13.9": + version "7.13.9" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.13.9.tgz#3a7aa96f9efb8e2be42d38d80e2ceb4c64d8de39" + integrity sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw== + dependencies: + "@babel/types" "^7.13.0" jsesc "^2.5.1" source-map "^0.5.0" -"@babel/helper-annotate-as-pure@^7.10.4", "@babel/helper-annotate-as-pure@^7.12.10": - version "7.12.10" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.10.tgz#54ab9b000e60a93644ce17b3f37d313aaf1d115d" - integrity sha512-XplmVbC1n+KY6jL8/fgLVXXUauDIB+lD5+GsQEh6F6GBF1dq1qy4DP4yXWzDKcoqXB3X58t61e85Fitoww4JVQ== +"@babel/helper-annotate-as-pure@^7.10.4", "@babel/helper-annotate-as-pure@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz#0f58e86dfc4bb3b1fcd7db806570e177d439b6ab" + integrity sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw== dependencies: - "@babel/types" "^7.12.10" + "@babel/types" "^7.12.13" -"@babel/helper-builder-binary-assignment-operator-visitor@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz#bb0b75f31bf98cbf9ff143c1ae578b87274ae1a3" - integrity sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg== +"@babel/helper-builder-binary-assignment-operator-visitor@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz#6bc20361c88b0a74d05137a65cac8d3cbf6f61fc" + integrity sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA== dependencies: - "@babel/helper-explode-assignable-expression" "^7.10.4" - "@babel/types" "^7.10.4" + "@babel/helper-explode-assignable-expression" "^7.12.13" + "@babel/types" "^7.12.13" -"@babel/helper-compilation-targets@^7.12.5": - version "7.12.5" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.5.tgz#cb470c76198db6a24e9dbc8987275631e5d29831" - integrity sha512-+qH6NrscMolUlzOYngSBMIOQpKUGPPsc61Bu5W10mg84LxZ7cmvnBHzARKbDoFxVvqqAbj6Tg6N7bSrWSPXMyw== +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.13.10", "@babel/helper-compilation-targets@^7.13.8": + version "7.13.10" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.10.tgz#1310a1678cb8427c07a753750da4f8ce442bdd0c" + integrity sha512-/Xju7Qg1GQO4mHZ/Kcs6Au7gfafgZnwm+a7sy/ow/tV1sHeraRUHbjdat8/UvDor4Tez+siGKDk6zIKtCPKVJA== dependencies: - "@babel/compat-data" "^7.12.5" - "@babel/helper-validator-option" "^7.12.1" + "@babel/compat-data" "^7.13.8" + "@babel/helper-validator-option" "^7.12.17" browserslist "^4.14.5" - semver "^5.5.0" + semver "^6.3.0" -"@babel/helper-create-class-features-plugin@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz#3c45998f431edd4a9214c5f1d3ad1448a6137f6e" - integrity sha512-hkL++rWeta/OVOBTRJc9a5Azh5mt5WgZUGAKMD8JM141YsE08K//bp1unBBieO6rUKkIPyUE0USQ30jAy3Sk1w== +"@babel/helper-create-class-features-plugin@^7.13.0": + version "7.13.11" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.11.tgz#30d30a005bca2c953f5653fc25091a492177f4f6" + integrity sha512-ays0I7XYq9xbjCSvT+EvysLgfc3tOkwCULHjrnscGT3A9qD4sk3wXnJ3of0MAWsWGjdinFvajHU2smYuqXKMrw== dependencies: - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-member-expression-to-functions" "^7.12.1" - "@babel/helper-optimise-call-expression" "^7.10.4" - "@babel/helper-replace-supers" "^7.12.1" - "@babel/helper-split-export-declaration" "^7.10.4" + "@babel/helper-function-name" "^7.12.13" + "@babel/helper-member-expression-to-functions" "^7.13.0" + "@babel/helper-optimise-call-expression" "^7.12.13" + "@babel/helper-replace-supers" "^7.13.0" + "@babel/helper-split-export-declaration" "^7.12.13" -"@babel/helper-create-regexp-features-plugin@^7.12.1": - version "7.12.7" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.7.tgz#2084172e95443fa0a09214ba1bb328f9aea1278f" - integrity sha512-idnutvQPdpbduutvi3JVfEgcVIHooQnhvhx0Nk9isOINOIGYkZea1Pk2JlJRiUnMefrlvr0vkByATBY/mB4vjQ== +"@babel/helper-create-regexp-features-plugin@^7.12.13": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.17.tgz#a2ac87e9e319269ac655b8d4415e94d38d663cb7" + integrity sha512-p2VGmBu9oefLZ2nQpgnEnG0ZlRPvL8gAGvPUMQwUdaE8k49rOMuZpOwdQoy5qJf6K8jL3bcAMhVUlHAjIgJHUg== dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/helper-annotate-as-pure" "^7.12.13" regexpu-core "^4.7.1" -"@babel/helper-define-map@^7.10.4": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz#b53c10db78a640800152692b13393147acb9bb30" - integrity sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ== +"@babel/helper-define-polyfill-provider@^0.1.5": + version "0.1.5" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.1.5.tgz#3c2f91b7971b9fc11fe779c945c014065dea340e" + integrity sha512-nXuzCSwlJ/WKr8qxzW816gwyT6VZgiJG17zR40fou70yfAcqjoNyTLl/DQ+FExw5Hx5KNqshmN8Ldl/r2N7cTg== dependencies: - "@babel/helper-function-name" "^7.10.4" - "@babel/types" "^7.10.5" - lodash "^4.17.19" + "@babel/helper-compilation-targets" "^7.13.0" + "@babel/helper-module-imports" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/traverse" "^7.13.0" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + semver "^6.1.2" -"@babel/helper-explode-assignable-expression@^7.10.4": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz#8006a466695c4ad86a2a5f2fb15b5f2c31ad5633" - integrity sha512-dmUwH8XmlrUpVqgtZ737tK88v07l840z9j3OEhCLwKTkjlvKpfqXVIZ0wpK3aeOxspwGrf/5AP5qLx4rO3w5rA== +"@babel/helper-explode-assignable-expression@^7.12.13": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.13.0.tgz#17b5c59ff473d9f956f40ef570cf3a76ca12657f" + integrity sha512-qS0peLTDP8kOisG1blKbaoBg/o9OSa1qoumMjTK5pM+KDTtpxpsiubnCGP34vK8BXGcb2M9eigwgvoJryrzwWA== dependencies: - "@babel/types" "^7.12.1" + "@babel/types" "^7.13.0" -"@babel/helper-function-name@^7.10.4", "@babel/helper-function-name@^7.12.11": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz#1fd7738aee5dcf53c3ecff24f1da9c511ec47b42" - integrity sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA== +"@babel/helper-function-name@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz#93ad656db3c3c2232559fd7b2c3dbdcbe0eb377a" + integrity sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA== dependencies: - "@babel/helper-get-function-arity" "^7.12.10" - "@babel/template" "^7.12.7" - "@babel/types" "^7.12.11" + "@babel/helper-get-function-arity" "^7.12.13" + "@babel/template" "^7.12.13" + "@babel/types" "^7.12.13" -"@babel/helper-get-function-arity@^7.12.10": - version "7.12.10" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz#b158817a3165b5faa2047825dfa61970ddcc16cf" - integrity sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag== +"@babel/helper-get-function-arity@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz#bc63451d403a3b3082b97e1d8b3fe5bd4091e583" + integrity sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg== dependencies: - "@babel/types" "^7.12.10" + "@babel/types" "^7.12.13" -"@babel/helper-hoist-variables@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz#d49b001d1d5a68ca5e6604dda01a6297f7c9381e" - integrity sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA== +"@babel/helper-hoist-variables@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.0.tgz#5d5882e855b5c5eda91e0cadc26c6e7a2c8593d8" + integrity sha512-0kBzvXiIKfsCA0y6cFEIJf4OdzfpRuNk4+YTeHZpGGc666SATFKTz6sRncwFnQk7/ugJ4dSrCj6iJuvW4Qwr2g== dependencies: - "@babel/types" "^7.10.4" + "@babel/traverse" "^7.13.0" + "@babel/types" "^7.13.0" -"@babel/helper-member-expression-to-functions@^7.12.1", "@babel/helper-member-expression-to-functions@^7.12.7": - version "7.12.7" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz#aa77bd0396ec8114e5e30787efa78599d874a855" - integrity sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw== +"@babel/helper-member-expression-to-functions@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.0.tgz#6aa4bb678e0f8c22f58cdb79451d30494461b091" + integrity sha512-yvRf8Ivk62JwisqV1rFRMxiSMDGnN6KH1/mDMmIrij4jztpQNRoHqqMG3U6apYbGRPJpgPalhva9Yd06HlUxJQ== dependencies: - "@babel/types" "^7.12.7" + "@babel/types" "^7.13.0" -"@babel/helper-module-imports@^7.0.0-beta.49", "@babel/helper-module-imports@^7.12.1", "@babel/helper-module-imports@^7.12.5": - version "7.12.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz#1bfc0229f794988f76ed0a4d4e90860850b54dfb" - integrity sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA== +"@babel/helper-module-imports@^7.0.0-beta.49", "@babel/helper-module-imports@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz#ec67e4404f41750463e455cc3203f6a32e93fcb0" + integrity sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g== dependencies: - "@babel/types" "^7.12.5" + "@babel/types" "^7.12.13" -"@babel/helper-module-transforms@^7.10.5", "@babel/helper-module-transforms@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz#7954fec71f5b32c48e4b303b437c34453fd7247c" - integrity sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w== - dependencies: - "@babel/helper-module-imports" "^7.12.1" - "@babel/helper-replace-supers" "^7.12.1" - "@babel/helper-simple-access" "^7.12.1" - "@babel/helper-split-export-declaration" "^7.11.0" - "@babel/helper-validator-identifier" "^7.10.4" - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.12.1" - "@babel/types" "^7.12.1" +"@babel/helper-module-transforms@^7.10.5", "@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.13.0.tgz#42eb4bd8eea68bab46751212c357bfed8b40f6f1" + integrity sha512-Ls8/VBwH577+pw7Ku1QkUWIyRRNHpYlts7+qSqBBFCW3I8QteB9DxfcZ5YJpOwH6Ihe/wn8ch7fMGOP1OhEIvw== + dependencies: + "@babel/helper-module-imports" "^7.12.13" + "@babel/helper-replace-supers" "^7.13.0" + "@babel/helper-simple-access" "^7.12.13" + "@babel/helper-split-export-declaration" "^7.12.13" + "@babel/helper-validator-identifier" "^7.12.11" + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.13.0" + "@babel/types" "^7.13.0" lodash "^4.17.19" -"@babel/helper-optimise-call-expression@^7.10.4", "@babel/helper-optimise-call-expression@^7.12.10": - version "7.12.10" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.10.tgz#94ca4e306ee11a7dd6e9f42823e2ac6b49881e2d" - integrity sha512-4tpbU0SrSTjjt65UMWSrUOPZTsgvPgGG4S8QSTNHacKzpS51IVWGDj0yCwyeZND/i+LSN2g/O63jEXEWm49sYQ== +"@babel/helper-optimise-call-expression@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz#5c02d171b4c8615b1e7163f888c1c81c30a2aaea" + integrity sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA== dependencies: - "@babel/types" "^7.12.10" + "@babel/types" "^7.12.13" -"@babel/helper-plugin-utils@7.10.4", "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": +"@babel/helper-plugin-utils@7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== -"@babel/helper-remap-async-to-generator@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz#8c4dbbf916314f6047dc05e6a2217074238347fd" - integrity sha512-9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A== +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz#806526ce125aed03373bc416a828321e3a6a33af" + integrity sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ== + +"@babel/helper-remap-async-to-generator@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.13.0.tgz#376a760d9f7b4b2077a9dd05aa9c3927cadb2209" + integrity sha512-pUQpFBE9JvC9lrQbpX0TmeNIy5s7GnZjna2lhhcHC7DzgBs6fWn722Y5cfwgrtrqc7NAJwMvOa0mKhq6XaE4jg== dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-wrap-function" "^7.10.4" - "@babel/types" "^7.12.1" + "@babel/helper-annotate-as-pure" "^7.12.13" + "@babel/helper-wrap-function" "^7.13.0" + "@babel/types" "^7.13.0" -"@babel/helper-replace-supers@^7.12.1": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.12.11.tgz#ea511658fc66c7908f923106dd88e08d1997d60d" - integrity sha512-q+w1cqmhL7R0FNzth/PLLp2N+scXEK/L2AHbXUyydxp828F4FEa5WcVoqui9vFRiHDQErj9Zof8azP32uGVTRA== +"@babel/helper-replace-supers@^7.12.13", "@babel/helper-replace-supers@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.13.0.tgz#6034b7b51943094cb41627848cb219cb02be1d24" + integrity sha512-Segd5me1+Pz+rmN/NFBOplMbZG3SqRJOBlY+mA0SxAv6rjj7zJqr1AVr3SfzUVTLCv7ZLU5FycOM/SBGuLPbZw== dependencies: - "@babel/helper-member-expression-to-functions" "^7.12.7" - "@babel/helper-optimise-call-expression" "^7.12.10" - "@babel/traverse" "^7.12.10" - "@babel/types" "^7.12.11" + "@babel/helper-member-expression-to-functions" "^7.13.0" + "@babel/helper-optimise-call-expression" "^7.12.13" + "@babel/traverse" "^7.13.0" + "@babel/types" "^7.13.0" -"@babel/helper-simple-access@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz#32427e5aa61547d38eb1e6eaf5fd1426fdad9136" - integrity sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA== +"@babel/helper-simple-access@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz#8478bcc5cacf6aa1672b251c1d2dde5ccd61a6c4" + integrity sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA== dependencies: - "@babel/types" "^7.12.1" + "@babel/types" "^7.12.13" "@babel/helper-skip-transparent-expression-wrappers@^7.12.1": version "7.12.1" @@ -356,119 +391,119 @@ dependencies: "@babel/types" "^7.12.1" -"@babel/helper-split-export-declaration@^7.10.4", "@babel/helper-split-export-declaration@^7.11.0", "@babel/helper-split-export-declaration@^7.12.11": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz#1b4cc424458643c47d37022223da33d76ea4603a" - integrity sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g== +"@babel/helper-split-export-declaration@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz#e9430be00baf3e88b0e13e6f9d4eaf2136372b05" + integrity sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg== dependencies: - "@babel/types" "^7.12.11" + "@babel/types" "^7.12.13" -"@babel/helper-validator-identifier@^7.10.4", "@babel/helper-validator-identifier@^7.12.11": +"@babel/helper-validator-identifier@^7.12.11": version "7.12.11" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== -"@babel/helper-validator-option@^7.12.1", "@babel/helper-validator-option@^7.12.11": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.11.tgz#d66cb8b7a3e7fe4c6962b32020a131ecf0847f4f" - integrity sha512-TBFCyj939mFSdeX7U7DDj32WtzYY7fDcalgq8v3fBZMNOJQNn7nOYzMaUCiPxPYfCup69mtIpqlKgMZLvQ8Xhw== +"@babel/helper-validator-option@^7.12.17": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz#d1fbf012e1a79b7eebbfdc6d270baaf8d9eb9831" + integrity sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw== -"@babel/helper-wrap-function@^7.10.4": - version "7.12.3" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz#3332339fc4d1fbbf1c27d7958c27d34708e990d9" - integrity sha512-Cvb8IuJDln3rs6tzjW3Y8UeelAOdnpB8xtQ4sme2MSZ9wOxrbThporC0y/EtE16VAtoyEfLM404Xr1e0OOp+ow== +"@babel/helper-wrap-function@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.13.0.tgz#bdb5c66fda8526ec235ab894ad53a1235c79fcc4" + integrity sha512-1UX9F7K3BS42fI6qd2A4BjKzgGjToscyZTdp1DjknHLCIvpgne6918io+aL5LXFcER/8QWiwpoY902pVEqgTXA== dependencies: - "@babel/helper-function-name" "^7.10.4" - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.10.4" - "@babel/types" "^7.10.4" + "@babel/helper-function-name" "^7.12.13" + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.13.0" + "@babel/types" "^7.13.0" -"@babel/helpers@^7.10.4", "@babel/helpers@^7.12.5": - version "7.12.5" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.12.5.tgz#1a1ba4a768d9b58310eda516c449913fe647116e" - integrity sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA== +"@babel/helpers@^7.10.4", "@babel/helpers@^7.12.5", "@babel/helpers@^7.13.10": + version "7.13.10" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.13.10.tgz#fd8e2ba7488533cdeac45cc158e9ebca5e3c7df8" + integrity sha512-4VO883+MWPDUVRF3PhiLBUFHoX/bsLTGFpFK/HqvvfBZz2D57u9XzPVNFVBTc0PW/CWR9BXTOKt8NF4DInUHcQ== dependencies: - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.12.5" - "@babel/types" "^7.12.5" + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.13.0" + "@babel/types" "^7.13.0" -"@babel/highlight@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" - integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== +"@babel/highlight@^7.10.4", "@babel/highlight@^7.12.13": + version "7.13.10" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.13.10.tgz#a8b2a66148f5b27d666b15d81774347a731d52d1" + integrity sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg== dependencies: - "@babel/helper-validator-identifier" "^7.10.4" + "@babel/helper-validator-identifier" "^7.12.11" chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.10.5", "@babel/parser@^7.12.10", "@babel/parser@^7.12.11", "@babel/parser@^7.12.5", "@babel/parser@^7.12.7", "@babel/parser@^7.7.0": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.11.tgz#9ce3595bcd74bc5c466905e86c535b8b25011e79" - integrity sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg== +"@babel/parser@^7.10.5", "@babel/parser@^7.12.13", "@babel/parser@^7.12.5", "@babel/parser@^7.12.7", "@babel/parser@^7.13.0", "@babel/parser@^7.13.10": + version "7.13.11" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.11.tgz#f93ebfc99d21c1772afbbaa153f47e7ce2f50b88" + integrity sha512-PhuoqeHoO9fc4ffMEVk4qb/w/s2iOSWohvbHxLtxui0eBg3Lg5gN1U8wp1V1u61hOWkPQJJyJzGH6Y+grwkq8Q== -"@babel/plugin-proposal-async-generator-functions@^7.12.1": - version "7.12.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.12.tgz#04b8f24fd4532008ab4e79f788468fd5a8476566" - integrity sha512-nrz9y0a4xmUrRq51bYkWJIO5SBZyG2ys2qinHsN0zHDHVsUaModrkpyWWWXfGqYQmOL3x9sQIcTNN/pBGpo09A== +"@babel/plugin-proposal-async-generator-functions@^7.13.8": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.8.tgz#87aacb574b3bc4b5603f6fe41458d72a5a2ec4b1" + integrity sha512-rPBnhj+WgoSmgq+4gQUtXx/vOcU+UYtjy1AA/aeD61Hwj410fwYyqfUcRP3lR8ucgliVJL/G7sXcNUecC75IXA== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-remap-async-to-generator" "^7.12.1" - "@babel/plugin-syntax-async-generators" "^7.8.0" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-remap-async-to-generator" "^7.13.0" + "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-proposal-class-properties@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz#a082ff541f2a29a4821065b8add9346c0c16e5de" - integrity sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w== +"@babel/plugin-proposal-class-properties@^7.12.1", "@babel/plugin-proposal-class-properties@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz#146376000b94efd001e57a40a88a525afaab9f37" + integrity sha512-KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg== dependencies: - "@babel/helper-create-class-features-plugin" "^7.12.1" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-create-class-features-plugin" "^7.13.0" + "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-proposal-dynamic-import@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz#43eb5c2a3487ecd98c5c8ea8b5fdb69a2749b2dc" - integrity sha512-a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ== +"@babel/plugin-proposal-dynamic-import@^7.13.8": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.13.8.tgz#876a1f6966e1dec332e8c9451afda3bebcdf2e1d" + integrity sha512-ONWKj0H6+wIRCkZi9zSbZtE/r73uOhMVHh256ys0UzfM7I3d4n+spZNWjOnJv2gzopumP2Wxi186vI8N0Y2JyQ== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-dynamic-import" "^7.8.0" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" -"@babel/plugin-proposal-export-namespace-from@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.1.tgz#8b9b8f376b2d88f5dd774e4d24a5cc2e3679b6d4" - integrity sha512-6CThGf0irEkzujYS5LQcjBx8j/4aQGiVv7J9+2f7pGfxqyKh3WnmVJYW3hdrQjyksErMGBPQrCnHfOtna+WLbw== +"@babel/plugin-proposal-export-namespace-from@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.13.tgz#393be47a4acd03fa2af6e3cde9b06e33de1b446d" + integrity sha512-INAgtFo4OnLN3Y/j0VwAgw3HDXcDtX+C/erMvWzuV9v71r7urb6iyMXu7eM9IgLr1ElLlOkaHjJ0SbCmdOQ3Iw== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-proposal-json-strings@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz#d45423b517714eedd5621a9dfdc03fa9f4eb241c" - integrity sha512-GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw== +"@babel/plugin-proposal-json-strings@^7.13.8": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.13.8.tgz#bf1fb362547075afda3634ed31571c5901afef7b" + integrity sha512-w4zOPKUFPX1mgvTmL/fcEqy34hrQ1CRcGxdphBc6snDnnqJ47EZDIyop6IwXzAC8G916hsIuXB2ZMBCExC5k7Q== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-json-strings" "^7.8.0" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-json-strings" "^7.8.3" -"@babel/plugin-proposal-logical-assignment-operators@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.1.tgz#f2c490d36e1b3c9659241034a5d2cd50263a2751" - integrity sha512-k8ZmVv0JU+4gcUGeCDZOGd0lCIamU/sMtIiX3UWnUc5yzgq6YUGyEolNYD+MLYKfSzgECPcqetVcJP9Afe/aCA== +"@babel/plugin-proposal-logical-assignment-operators@^7.13.8": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.13.8.tgz#93fa78d63857c40ce3c8c3315220fd00bfbb4e1a" + integrity sha512-aul6znYB4N4HGweImqKn59Su9RS8lbUIqxtXTOcAGtNIDczoEFv+l1EhmX8rUBp3G1jMjKJm8m0jXVp63ZpS4A== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz#3ed4fff31c015e7f3f1467f190dbe545cd7b046c" - integrity sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg== +"@babel/plugin-proposal-nullish-coalescing-operator@^7.12.1", "@babel/plugin-proposal-nullish-coalescing-operator@^7.13.8": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.13.8.tgz#3730a31dafd3c10d8ccd10648ed80a2ac5472ef3" + integrity sha512-iePlDPBn//UhxExyS9KyeYU7RM9WScAG+D3Hhno0PLJebAEpDZMocbDe64eqynhNAnwz/vZoL/q/QB2T1OH39A== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-proposal-numeric-separator@^7.12.5", "@babel/plugin-proposal-numeric-separator@^7.12.7": - version "7.12.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.7.tgz#8bf253de8139099fea193b297d23a9d406ef056b" - integrity sha512-8c+uy0qmnRTeukiGsjLGy6uVs/TFjJchGXUeBqlG4VWYOdJWkhhVPdQ3uHwbmalfJwv2JsV0qffXP4asRfL2SQ== +"@babel/plugin-proposal-numeric-separator@^7.12.13", "@babel/plugin-proposal-numeric-separator@^7.12.5": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.13.tgz#bd9da3188e787b5120b4f9d465a8261ce67ed1db" + integrity sha512-O1jFia9R8BUCl3ZGB7eitaAPu62TXJRHn7rh+ojNERCFyqRwJMTmhz+tJ+k0CwI6CLjX/ee4qW74FSqlq9I35w== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-syntax-numeric-separator" "^7.10.4" "@babel/plugin-proposal-object-rest-spread@7.10.4": @@ -480,7 +515,7 @@ "@babel/plugin-syntax-object-rest-spread" "^7.8.0" "@babel/plugin-transform-parameters" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@7.12.1", "@babel/plugin-proposal-object-rest-spread@^7.12.1": +"@babel/plugin-proposal-object-rest-spread@7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz#def9bd03cea0f9b72283dac0ec22d289c7691069" integrity sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA== @@ -489,54 +524,65 @@ "@babel/plugin-syntax-object-rest-spread" "^7.8.0" "@babel/plugin-transform-parameters" "^7.12.1" -"@babel/plugin-proposal-optional-catch-binding@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz#ccc2421af64d3aae50b558a71cede929a5ab2942" - integrity sha512-hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g== +"@babel/plugin-proposal-object-rest-spread@^7.12.1", "@babel/plugin-proposal-object-rest-spread@^7.13.8": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.13.8.tgz#5d210a4d727d6ce3b18f9de82cc99a3964eed60a" + integrity sha512-DhB2EuB1Ih7S3/IRX5AFVgZ16k3EzfRbq97CxAVI1KSYcW+lexV8VZb7G7L8zuPVSdQMRn0kiBpf/Yzu9ZKH0g== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" + "@babel/compat-data" "^7.13.8" + "@babel/helper-compilation-targets" "^7.13.8" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.13.0" -"@babel/plugin-proposal-optional-chaining@^7.12.1", "@babel/plugin-proposal-optional-chaining@^7.12.7": - version "7.12.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.7.tgz#e02f0ea1b5dc59d401ec16fb824679f683d3303c" - integrity sha512-4ovylXZ0PWmwoOvhU2vhnzVNnm88/Sm9nx7V8BPgMvAzn5zDou3/Awy0EjglyubVHasJj+XCEkr/r1X3P5elCA== +"@babel/plugin-proposal-optional-catch-binding@^7.13.8": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.13.8.tgz#3ad6bd5901506ea996fc31bdcf3ccfa2bed71107" + integrity sha512-0wS/4DUF1CuTmGo+NiaHfHcVSeSLj5S3e6RivPTg/2k3wOv3jO35tZ6/ZWsQhQMvdgI7CwphjQa/ccarLymHVA== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-proposal-optional-chaining@^7.12.1", "@babel/plugin-proposal-optional-chaining@^7.13.8": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.13.8.tgz#e39df93efe7e7e621841babc197982e140e90756" + integrity sha512-hpbBwbTgd7Cz1QryvwJZRo1U0k1q8uyBmeXOSQUjdg/A2TASkhR/rz7AyqZ/kS8kbpsNA80rOYbxySBJAqmhhQ== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" - "@babel/plugin-syntax-optional-chaining" "^7.8.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-proposal-private-methods@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.1.tgz#86814f6e7a21374c980c10d38b4493e703f4a389" - integrity sha512-mwZ1phvH7/NHK6Kf8LP7MYDogGV+DKB1mryFOEwx5EBNQrosvIczzZFTUmWaeujd5xT6G1ELYWUz3CutMhjE1w== +"@babel/plugin-proposal-private-methods@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.13.0.tgz#04bd4c6d40f6e6bbfa2f57e2d8094bad900ef787" + integrity sha512-MXyyKQd9inhx1kDYPkFRVOBXQ20ES8Pto3T7UZ92xj2mY0EVD8oAVzeyYuVfy/mxAdTSIayOvg+aVzcHV2bn6Q== dependencies: - "@babel/helper-create-class-features-plugin" "^7.12.1" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-create-class-features-plugin" "^7.13.0" + "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-proposal-unicode-property-regex@^7.12.1", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz#2a183958d417765b9eae334f47758e5d6a82e072" - integrity sha512-MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w== +"@babel/plugin-proposal-unicode-property-regex@^7.12.13", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz#bebde51339be829c17aaaaced18641deb62b39ba" + integrity sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.12.1" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-create-regexp-features-plugin" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-syntax-async-generators@^7.8.0": +"@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-class-properties@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz#bcb297c5366e79bebadef509549cd93b04f19978" - integrity sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA== +"@babel/plugin-syntax-class-properties@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-syntax-dynamic-import@^7.8.0", "@babel/plugin-syntax-dynamic-import@^7.8.3": +"@babel/plugin-syntax-dynamic-import@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== @@ -550,7 +596,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-json-strings@^7.8.0": +"@babel/plugin-syntax-json-strings@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== @@ -564,13 +610,20 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-jsx@7.12.1", "@babel/plugin-syntax-jsx@^7.12.1": +"@babel/plugin-syntax-jsx@7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz#9d9d357cc818aa7ae7935917c1257f67677a0926" integrity sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg== dependencies: "@babel/helper-plugin-utils" "^7.10.4" +"@babel/plugin-syntax-jsx@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.13.tgz#044fb81ebad6698fe62c478875575bcbb9b70f15" + integrity sha512-d4HM23Q1K7oq/SLNmG6mRt85l2csmQ0cHRaxRXjKW0YFdEXqlZ5kzFQKH5Uc3rDJECgu+yCRgPkG04Mm98R/1g== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-syntax-logical-assignment-operators@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" @@ -578,7 +631,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0": +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== @@ -592,249 +645,248 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-object-rest-spread@7.8.3", "@babel/plugin-syntax-object-rest-spread@^7.8.0": +"@babel/plugin-syntax-object-rest-spread@7.8.3", "@babel/plugin-syntax-object-rest-spread@^7.8.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-optional-catch-binding@^7.8.0": +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-optional-chaining@^7.8.0": +"@babel/plugin-syntax-optional-chaining@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-top-level-await@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz#dd6c0b357ac1bb142d98537450a319625d13d2a0" - integrity sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A== +"@babel/plugin-syntax-top-level-await@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz#c5f0fa6e249f5b739727f923540cf7a806130178" + integrity sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-syntax-typescript@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.12.1.tgz#460ba9d77077653803c3dd2e673f76d66b4029e5" - integrity sha512-UZNEcCY+4Dp9yYRCAHrHDU+9ZXLYaY9MgBXSRLkB9WjYFRR6quJBumfVrEkUxrePPBwFcpWfNKXqVRQQtm7mMA== +"@babel/plugin-syntax-typescript@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.12.13.tgz#9dff111ca64154cef0f4dc52cf843d9f12ce4474" + integrity sha512-cHP3u1JiUiG2LFDKbXnwVad81GvfyIOmCD6HIEId6ojrY0Drfy2q1jw7BwN7dE84+kTnBjLkXoL3IEy/3JPu2w== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-arrow-functions@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz#8083ffc86ac8e777fbe24b5967c4b2521f3cb2b3" - integrity sha512-5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A== +"@babel/plugin-transform-arrow-functions@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.13.0.tgz#10a59bebad52d637a027afa692e8d5ceff5e3dae" + integrity sha512-96lgJagobeVmazXFaDrbmCLQxBysKu7U6Do3mLsx27gf5Dk85ezysrs2BZUpXD703U/Su1xTBDxxar2oa4jAGg== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-transform-async-to-generator@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz#3849a49cc2a22e9743cbd6b52926d30337229af1" - integrity sha512-SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A== +"@babel/plugin-transform-async-to-generator@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.13.0.tgz#8e112bf6771b82bf1e974e5e26806c5c99aa516f" + integrity sha512-3j6E004Dx0K3eGmhxVJxwwI89CTJrce7lg3UrtFuDAVQ/2+SJ/h/aSFOeE6/n0WB1GsOffsJp6MnPQNQ8nmwhg== dependencies: - "@babel/helper-module-imports" "^7.12.1" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-remap-async-to-generator" "^7.12.1" + "@babel/helper-module-imports" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-remap-async-to-generator" "^7.13.0" -"@babel/plugin-transform-block-scoped-functions@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz#f2a1a365bde2b7112e0a6ded9067fdd7c07905d9" - integrity sha512-5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA== +"@babel/plugin-transform-block-scoped-functions@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz#a9bf1836f2a39b4eb6cf09967739de29ea4bf4c4" + integrity sha512-zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-block-scoping@^7.12.11": - version "7.12.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.12.tgz#d93a567a152c22aea3b1929bb118d1d0a175cdca" - integrity sha512-VOEPQ/ExOVqbukuP7BYJtI5ZxxsmegTwzZ04j1aF0dkSypGo9XpDHuOrABsJu+ie+penpSJheDJ11x1BEZNiyQ== +"@babel/plugin-transform-block-scoping@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.13.tgz#f36e55076d06f41dfd78557ea039c1b581642e61" + integrity sha512-Pxwe0iqWJX4fOOM2kEZeUuAxHMWb9nK+9oh5d11bsLoB0xMg+mkDpt0eYuDZB7ETrY9bbcVlKUGTOGWy7BHsMQ== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-classes@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz#65e650fcaddd3d88ddce67c0f834a3d436a32db6" - integrity sha512-/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog== +"@babel/plugin-transform-classes@^7.12.1", "@babel/plugin-transform-classes@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.13.0.tgz#0265155075c42918bf4d3a4053134176ad9b533b" + integrity sha512-9BtHCPUARyVH1oXGcSJD3YpsqRLROJx5ZNP6tN5vnk17N0SVf9WCtf8Nuh1CFmgByKKAIMstitKduoCmsaDK5g== dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-define-map" "^7.10.4" - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-optimise-call-expression" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-replace-supers" "^7.12.1" - "@babel/helper-split-export-declaration" "^7.10.4" + "@babel/helper-annotate-as-pure" "^7.12.13" + "@babel/helper-function-name" "^7.12.13" + "@babel/helper-optimise-call-expression" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-replace-supers" "^7.13.0" + "@babel/helper-split-export-declaration" "^7.12.13" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz#d68cf6c9b7f838a8a4144badbe97541ea0904852" - integrity sha512-vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg== +"@babel/plugin-transform-computed-properties@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.13.0.tgz#845c6e8b9bb55376b1fa0b92ef0bdc8ea06644ed" + integrity sha512-RRqTYTeZkZAz8WbieLTvKUEUxZlUTdmL5KGMyZj7FnMfLNKV4+r5549aORG/mgojRmFlQMJDUupwAMiF2Q7OUg== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-transform-destructuring@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz#b9a570fe0d0a8d460116413cb4f97e8e08b2f847" - integrity sha512-fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw== +"@babel/plugin-transform-destructuring@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.0.tgz#c5dce270014d4e1ebb1d806116694c12b7028963" + integrity sha512-zym5em7tePoNT9s964c0/KU3JPPnuq7VhIxPRefJ4/s82cD+q1mgKfuGRDMCPL0HTyKz4dISuQlCusfgCJ86HA== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-transform-dotall-regex@^7.12.1", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz#a1d16c14862817b6409c0a678d6f9373ca9cd975" - integrity sha512-B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA== +"@babel/plugin-transform-dotall-regex@^7.12.13", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.13.tgz#3f1601cc29905bfcb67f53910f197aeafebb25ad" + integrity sha512-foDrozE65ZFdUC2OfgeOCrEPTxdB3yjqxpXh8CH+ipd9CHd4s/iq81kcUpyH8ACGNEPdFqbtzfgzbT/ZGlbDeQ== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.12.1" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-create-regexp-features-plugin" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-duplicate-keys@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz#745661baba295ac06e686822797a69fbaa2ca228" - integrity sha512-iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw== +"@babel/plugin-transform-duplicate-keys@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.13.tgz#6f06b87a8b803fd928e54b81c258f0a0033904de" + integrity sha512-NfADJiiHdhLBW3pulJlJI2NB0t4cci4WTZ8FtdIuNc2+8pslXdPtRRAEWqUY+m9kNOk2eRYbTAOipAxlrOcwwQ== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-exponentiation-operator@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz#b0f2ed356ba1be1428ecaf128ff8a24f02830ae0" - integrity sha512-7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug== +"@babel/plugin-transform-exponentiation-operator@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz#4d52390b9a273e651e4aba6aee49ef40e80cd0a1" + integrity sha512-fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA== dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-for-of@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz#07640f28867ed16f9511c99c888291f560921cfa" - integrity sha512-Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg== +"@babel/plugin-transform-for-of@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.13.0.tgz#c799f881a8091ac26b54867a845c3e97d2696062" + integrity sha512-IHKT00mwUVYE0zzbkDgNRP6SRzvfGCYsOxIRz8KsiaaHCcT9BWIkO+H9QRJseHBLOGBZkHUdHiqj6r0POsdytg== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-transform-function-name@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz#2ec76258c70fe08c6d7da154003a480620eba667" - integrity sha512-JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw== +"@babel/plugin-transform-function-name@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz#bb024452f9aaed861d374c8e7a24252ce3a50051" + integrity sha512-6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ== dependencies: - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-function-name" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-literals@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz#d73b803a26b37017ddf9d3bb8f4dc58bfb806f57" - integrity sha512-+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ== +"@babel/plugin-transform-literals@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz#2ca45bafe4a820197cf315794a4d26560fe4bdb9" + integrity sha512-FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-member-expression-literals@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz#496038602daf1514a64d43d8e17cbb2755e0c3ad" - integrity sha512-1sxePl6z9ad0gFMB9KqmYofk34flq62aqMt9NqliS/7hPEpURUCMbyHXrMPlo282iY7nAvUB1aQd5mg79UD9Jg== +"@babel/plugin-transform-member-expression-literals@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz#5ffa66cd59b9e191314c9f1f803b938e8c081e40" + integrity sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-modules-amd@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz#3154300b026185666eebb0c0ed7f8415fefcf6f9" - integrity sha512-tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ== +"@babel/plugin-transform-modules-amd@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.13.0.tgz#19f511d60e3d8753cc5a6d4e775d3a5184866cc3" + integrity sha512-EKy/E2NHhY/6Vw5d1k3rgoobftcNUmp9fGjb9XZwQLtTctsRBOTRO7RHHxfIky1ogMN5BxN7p9uMA3SzPfotMQ== dependencies: - "@babel/helper-module-transforms" "^7.12.1" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-module-transforms" "^7.13.0" + "@babel/helper-plugin-utils" "^7.13.0" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-commonjs@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz#fa403124542636c786cf9b460a0ffbb48a86e648" - integrity sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag== +"@babel/plugin-transform-modules-commonjs@^7.13.8": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.13.8.tgz#7b01ad7c2dcf2275b06fa1781e00d13d420b3e1b" + integrity sha512-9QiOx4MEGglfYZ4XOnU79OHr6vIWUakIj9b4mioN8eQIoEh+pf5p/zEB36JpDFWA12nNMiRf7bfoRvl9Rn79Bw== dependencies: - "@babel/helper-module-transforms" "^7.12.1" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-simple-access" "^7.12.1" + "@babel/helper-module-transforms" "^7.13.0" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-simple-access" "^7.12.13" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-systemjs@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz#663fea620d593c93f214a464cd399bf6dc683086" - integrity sha512-Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q== +"@babel/plugin-transform-modules-systemjs@^7.13.8": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.13.8.tgz#6d066ee2bff3c7b3d60bf28dec169ad993831ae3" + integrity sha512-hwqctPYjhM6cWvVIlOIe27jCIBgHCsdH2xCJVAYQm7V5yTMoilbVMi9f6wKg0rpQAOn6ZG4AOyvCqFF/hUh6+A== dependencies: - "@babel/helper-hoist-variables" "^7.10.4" - "@babel/helper-module-transforms" "^7.12.1" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-validator-identifier" "^7.10.4" + "@babel/helper-hoist-variables" "^7.13.0" + "@babel/helper-module-transforms" "^7.13.0" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-validator-identifier" "^7.12.11" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-umd@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz#eb5a218d6b1c68f3d6217b8fa2cc82fec6547902" - integrity sha512-aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q== +"@babel/plugin-transform-modules-umd@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.13.0.tgz#8a3d96a97d199705b9fd021580082af81c06e70b" + integrity sha512-D/ILzAh6uyvkWjKKyFE/W0FzWwasv6vPTSqPcjxFqn6QpX3u8DjRVliq4F2BamO2Wee/om06Vyy+vPkNrd4wxw== dependencies: - "@babel/helper-module-transforms" "^7.12.1" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-module-transforms" "^7.13.0" + "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-transform-named-capturing-groups-regex@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz#b407f5c96be0d9f5f88467497fa82b30ac3e8753" - integrity sha512-tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q== +"@babel/plugin-transform-named-capturing-groups-regex@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.13.tgz#2213725a5f5bbbe364b50c3ba5998c9599c5c9d9" + integrity sha512-Xsm8P2hr5hAxyYblrfACXpQKdQbx4m2df9/ZZSQ8MAhsadw06+jW7s9zsSw6he+mJZXRlVMyEnVktJo4zjk1WA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.12.1" + "@babel/helper-create-regexp-features-plugin" "^7.12.13" -"@babel/plugin-transform-new-target@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz#80073f02ee1bb2d365c3416490e085c95759dec0" - integrity sha512-+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw== +"@babel/plugin-transform-new-target@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.13.tgz#e22d8c3af24b150dd528cbd6e685e799bf1c351c" + integrity sha512-/KY2hbLxrG5GTQ9zzZSc3xWiOy379pIETEhbtzwZcw9rvuaVV4Fqy7BYGYOWZnaoXIQYbbJ0ziXLa/sKcGCYEQ== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-object-super@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz#4ea08696b8d2e65841d0c7706482b048bed1066e" - integrity sha512-AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw== +"@babel/plugin-transform-object-super@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz#b4416a2d63b8f7be314f3d349bd55a9c1b5171f7" + integrity sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-replace-supers" "^7.12.1" + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-replace-supers" "^7.12.13" -"@babel/plugin-transform-parameters@^7.10.4", "@babel/plugin-transform-parameters@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz#d2e963b038771650c922eff593799c96d853255d" - integrity sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg== +"@babel/plugin-transform-parameters@^7.10.4", "@babel/plugin-transform-parameters@^7.12.1", "@babel/plugin-transform-parameters@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.13.0.tgz#8fa7603e3097f9c0b7ca1a4821bc2fb52e9e5007" + integrity sha512-Jt8k/h/mIwE2JFEOb3lURoY5C85ETcYPnbuAJ96zRBzh1XHtQZfs62ChZ6EP22QlC8c7Xqr9q+e1SU5qttwwjw== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-transform-property-literals@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz#41bc81200d730abb4456ab8b3fbd5537b59adecd" - integrity sha512-6MTCR/mZ1MQS+AwZLplX4cEySjCpnIF26ToWo942nqn8hXSm7McaHQNeGx/pt7suI1TWOWMfa/NgBhiqSnX0cQ== +"@babel/plugin-transform-property-literals@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz#4e6a9e37864d8f1b3bc0e2dce7bf8857db8b1a81" + integrity sha512-nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-react-display-name@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.1.tgz#1cbcd0c3b1d6648c55374a22fc9b6b7e5341c00d" - integrity sha512-cAzB+UzBIrekfYxyLlFqf/OagTvHLcVBb5vpouzkYkBclRPraiygVnafvAoipErZLI8ANv8Ecn6E/m5qPXD26w== +"@babel/plugin-transform-react-display-name@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.13.tgz#c28effd771b276f4647411c9733dbb2d2da954bd" + integrity sha512-MprESJzI9O5VnJZrL7gg1MpdqmiFcUv41Jc7SahxYsNP2kDkFqClxxTZq+1Qv4AFCamm+GXMRDQINNn+qrxmiA== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-react-jsx-development@^7.12.7": - version "7.12.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.12.tgz#bccca33108fe99d95d7f9e82046bfe762e71f4e7" - integrity sha512-i1AxnKxHeMxUaWVXQOSIco4tvVvvCxMSfeBMnMM06mpaJt3g+MpxYQQrDfojUQldP1xxraPSJYSMEljoWM/dCg== +"@babel/plugin-transform-react-jsx-development@^7.12.12": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.17.tgz#f510c0fa7cd7234153539f9a362ced41a5ca1447" + integrity sha512-BPjYV86SVuOaudFhsJR1zjgxxOhJDt6JHNoD48DxWEIxUCAMjV1ys6DYw4SDYZh0b1QsS2vfIA9t/ZsQGsDOUQ== dependencies: - "@babel/plugin-transform-react-jsx" "^7.12.12" + "@babel/plugin-transform-react-jsx" "^7.12.17" -"@babel/plugin-transform-react-jsx@^7.12.10", "@babel/plugin-transform-react-jsx@^7.12.12", "@babel/plugin-transform-react-jsx@^7.12.5": - version "7.12.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.12.tgz#b0da51ffe5f34b9a900e9f1f5fb814f9e512d25e" - integrity sha512-JDWGuzGNWscYcq8oJVCtSE61a5+XAOos+V0HrxnDieUus4UMnBEosDnY1VJqU5iZ4pA04QY7l0+JvHL1hZEfsw== +"@babel/plugin-transform-react-jsx@^7.12.13", "@babel/plugin-transform-react-jsx@^7.12.17", "@babel/plugin-transform-react-jsx@^7.12.5": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.17.tgz#dd2c1299f5e26de584939892de3cfc1807a38f24" + integrity sha512-mwaVNcXV+l6qJOuRhpdTEj8sT/Z0owAVWf9QujTZ0d2ye9X/K+MTOTSizcgKOj18PGnTc/7g1I4+cIUjsKhBcw== dependencies: - "@babel/helper-annotate-as-pure" "^7.12.10" - "@babel/helper-module-imports" "^7.12.5" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-jsx" "^7.12.1" - "@babel/types" "^7.12.12" + "@babel/helper-annotate-as-pure" "^7.12.13" + "@babel/helper-module-imports" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-syntax-jsx" "^7.12.13" + "@babel/types" "^7.12.17" "@babel/plugin-transform-react-pure-annotations@^7.12.1": version "7.12.1" @@ -844,162 +896,167 @@ "@babel/helper-annotate-as-pure" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-regenerator@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz#5f0a28d842f6462281f06a964e88ba8d7ab49753" - integrity sha512-gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng== +"@babel/plugin-transform-regenerator@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.13.tgz#b628bcc9c85260ac1aeb05b45bde25210194a2f5" + integrity sha512-lxb2ZAvSLyJ2PEe47hoGWPmW22v7CtSl9jW8mingV4H2sEX/JOcrAj2nPuGWi56ERUm2bUpjKzONAuT6HCn2EA== dependencies: regenerator-transform "^0.14.2" -"@babel/plugin-transform-reserved-words@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz#6fdfc8cc7edcc42b36a7c12188c6787c873adcd8" - integrity sha512-pOnUfhyPKvZpVyBHhSBoX8vfA09b7r00Pmm1sH+29ae2hMTKVmSp4Ztsr8KBKjLjx17H0eJqaRC3bR2iThM54A== +"@babel/plugin-transform-reserved-words@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz#7d9988d4f06e0fe697ea1d9803188aa18b472695" + integrity sha512-xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-transform-runtime@^7.12.1": - version "7.12.10" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.12.10.tgz#af0fded4e846c4b37078e8e5d06deac6cd848562" - integrity sha512-xOrUfzPxw7+WDm9igMgQCbO3cJKymX7dFdsgRr1eu9n3KjjyU4pptIXbXPseQDquw+W+RuJEJMHKHNsPNNm3CA== - dependencies: - "@babel/helper-module-imports" "^7.12.5" - "@babel/helper-plugin-utils" "^7.10.4" - semver "^5.5.1" + version "7.13.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.13.10.tgz#a1e40d22e2bf570c591c9c7e5ab42d6bf1e419e1" + integrity sha512-Y5k8ipgfvz5d/76tx7JYbKQTcgFSU6VgJ3kKQv4zGTKr+a9T/KBvfRvGtSFgKDQGt/DBykQixV0vNWKIdzWErA== + dependencies: + "@babel/helper-module-imports" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" + babel-plugin-polyfill-corejs2 "^0.1.4" + babel-plugin-polyfill-corejs3 "^0.1.3" + babel-plugin-polyfill-regenerator "^0.1.2" + semver "^6.3.0" -"@babel/plugin-transform-shorthand-properties@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz#0bf9cac5550fce0cfdf043420f661d645fdc75e3" - integrity sha512-GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw== +"@babel/plugin-transform-shorthand-properties@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz#db755732b70c539d504c6390d9ce90fe64aff7ad" + integrity sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-spread@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz#527f9f311be4ec7fdc2b79bb89f7bf884b3e1e1e" - integrity sha512-vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng== +"@babel/plugin-transform-spread@^7.12.1", "@babel/plugin-transform-spread@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.13.0.tgz#84887710e273c1815ace7ae459f6f42a5d31d5fd" + integrity sha512-V6vkiXijjzYeFmQTr3dBxPtZYLPcUfY34DebOU27jIl2M/Y8Egm52Hw82CSjjPqd54GTlJs5x+CR7HeNr24ckg== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.13.0" "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" -"@babel/plugin-transform-sticky-regex@^7.12.7": - version "7.12.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.7.tgz#560224613ab23987453948ed21d0b0b193fa7fad" - integrity sha512-VEiqZL5N/QvDbdjfYQBhruN0HYjSPjC4XkeqW4ny/jNtH9gcbgaqBIXYEZCNnESMAGs0/K/R7oFGMhOyu/eIxg== +"@babel/plugin-transform-sticky-regex@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.13.tgz#760ffd936face73f860ae646fb86ee82f3d06d1f" + integrity sha512-Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-template-literals@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz#b43ece6ed9a79c0c71119f576d299ef09d942843" - integrity sha512-b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw== +"@babel/plugin-transform-template-literals@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.13.0.tgz#a36049127977ad94438dee7443598d1cefdf409d" + integrity sha512-d67umW6nlfmr1iehCcBv69eSUSySk1EsIS8aTDX4Xo9qajAh6mYtcl4kJrBkGXuxZPEgVr7RVfAvNW6YQkd4Mw== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-transform-typeof-symbol@^7.12.10": - version "7.12.10" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.10.tgz#de01c4c8f96580bd00f183072b0d0ecdcf0dec4b" - integrity sha512-JQ6H8Rnsogh//ijxspCjc21YPd3VLVoYtAwv3zQmqAt8YGYUtdo5usNhdl4b9/Vir2kPFZl6n1h0PfUz4hJhaA== +"@babel/plugin-transform-typeof-symbol@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.13.tgz#785dd67a1f2ea579d9c2be722de8c84cb85f5a7f" + integrity sha512-eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-typescript@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.12.1.tgz#d92cc0af504d510e26a754a7dbc2e5c8cd9c7ab4" - integrity sha512-VrsBByqAIntM+EYMqSm59SiMEf7qkmI9dqMt6RbD/wlwueWmYcI0FFK5Fj47pP6DRZm+3teXjosKlwcZJ5lIMw== +"@babel/plugin-transform-typescript@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.13.0.tgz#4a498e1f3600342d2a9e61f60131018f55774853" + integrity sha512-elQEwluzaU8R8dbVuW2Q2Y8Nznf7hnjM7+DSCd14Lo5fF63C9qNLbwZYbmZrtV9/ySpSUpkRpQXvJb6xyu4hCQ== dependencies: - "@babel/helper-create-class-features-plugin" "^7.12.1" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-typescript" "^7.12.1" + "@babel/helper-create-class-features-plugin" "^7.13.0" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-typescript" "^7.12.13" -"@babel/plugin-transform-unicode-escapes@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.1.tgz#5232b9f81ccb07070b7c3c36c67a1b78f1845709" - integrity sha512-I8gNHJLIc7GdApm7wkVnStWssPNbSRMPtgHdmH3sRM1zopz09UWPS4x5V4n1yz/MIWTVnJ9sp6IkuXdWM4w+2Q== +"@babel/plugin-transform-unicode-escapes@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz#840ced3b816d3b5127dd1d12dcedc5dead1a5e74" + integrity sha512-0bHEkdwJ/sN/ikBHfSmOXPypN/beiGqjo+o4/5K+vxEFNPRPdImhviPakMKG4x96l85emoa0Z6cDflsdBusZbw== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-unicode-regex@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz#cc9661f61390db5c65e3febaccefd5c6ac3faecb" - integrity sha512-SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg== +"@babel/plugin-transform-unicode-regex@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.13.tgz#b52521685804e155b1202e83fc188d34bb70f5ac" + integrity sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.12.1" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-create-regexp-features-plugin" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" "@babel/preset-env@^7.12.1": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.12.11.tgz#55d5f7981487365c93dbbc84507b1c7215e857f9" - integrity sha512-j8Tb+KKIXKYlDBQyIOy4BLxzv1NUOwlHfZ74rvW+Z0Gp4/cI2IMDPBWAgWceGcE7aep9oL/0K9mlzlMGxA8yNw== - dependencies: - "@babel/compat-data" "^7.12.7" - "@babel/helper-compilation-targets" "^7.12.5" - "@babel/helper-module-imports" "^7.12.5" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-validator-option" "^7.12.11" - "@babel/plugin-proposal-async-generator-functions" "^7.12.1" - "@babel/plugin-proposal-class-properties" "^7.12.1" - "@babel/plugin-proposal-dynamic-import" "^7.12.1" - "@babel/plugin-proposal-export-namespace-from" "^7.12.1" - "@babel/plugin-proposal-json-strings" "^7.12.1" - "@babel/plugin-proposal-logical-assignment-operators" "^7.12.1" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.12.1" - "@babel/plugin-proposal-numeric-separator" "^7.12.7" - "@babel/plugin-proposal-object-rest-spread" "^7.12.1" - "@babel/plugin-proposal-optional-catch-binding" "^7.12.1" - "@babel/plugin-proposal-optional-chaining" "^7.12.7" - "@babel/plugin-proposal-private-methods" "^7.12.1" - "@babel/plugin-proposal-unicode-property-regex" "^7.12.1" - "@babel/plugin-syntax-async-generators" "^7.8.0" - "@babel/plugin-syntax-class-properties" "^7.12.1" - "@babel/plugin-syntax-dynamic-import" "^7.8.0" + version "7.13.10" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.13.10.tgz#b5cde31d5fe77ab2a6ab3d453b59041a1b3a5252" + integrity sha512-nOsTScuoRghRtUsRr/c69d042ysfPHcu+KOB4A9aAO9eJYqrkat+LF8G1yp1HD18QiwixT2CisZTr/0b3YZPXQ== + dependencies: + "@babel/compat-data" "^7.13.8" + "@babel/helper-compilation-targets" "^7.13.10" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-validator-option" "^7.12.17" + "@babel/plugin-proposal-async-generator-functions" "^7.13.8" + "@babel/plugin-proposal-class-properties" "^7.13.0" + "@babel/plugin-proposal-dynamic-import" "^7.13.8" + "@babel/plugin-proposal-export-namespace-from" "^7.12.13" + "@babel/plugin-proposal-json-strings" "^7.13.8" + "@babel/plugin-proposal-logical-assignment-operators" "^7.13.8" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.13.8" + "@babel/plugin-proposal-numeric-separator" "^7.12.13" + "@babel/plugin-proposal-object-rest-spread" "^7.13.8" + "@babel/plugin-proposal-optional-catch-binding" "^7.13.8" + "@babel/plugin-proposal-optional-chaining" "^7.13.8" + "@babel/plugin-proposal-private-methods" "^7.13.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.12.13" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.0" + "@babel/plugin-syntax-json-strings" "^7.8.3" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" - "@babel/plugin-syntax-optional-chaining" "^7.8.0" - "@babel/plugin-syntax-top-level-await" "^7.12.1" - "@babel/plugin-transform-arrow-functions" "^7.12.1" - "@babel/plugin-transform-async-to-generator" "^7.12.1" - "@babel/plugin-transform-block-scoped-functions" "^7.12.1" - "@babel/plugin-transform-block-scoping" "^7.12.11" - "@babel/plugin-transform-classes" "^7.12.1" - "@babel/plugin-transform-computed-properties" "^7.12.1" - "@babel/plugin-transform-destructuring" "^7.12.1" - "@babel/plugin-transform-dotall-regex" "^7.12.1" - "@babel/plugin-transform-duplicate-keys" "^7.12.1" - "@babel/plugin-transform-exponentiation-operator" "^7.12.1" - "@babel/plugin-transform-for-of" "^7.12.1" - "@babel/plugin-transform-function-name" "^7.12.1" - "@babel/plugin-transform-literals" "^7.12.1" - "@babel/plugin-transform-member-expression-literals" "^7.12.1" - "@babel/plugin-transform-modules-amd" "^7.12.1" - "@babel/plugin-transform-modules-commonjs" "^7.12.1" - "@babel/plugin-transform-modules-systemjs" "^7.12.1" - "@babel/plugin-transform-modules-umd" "^7.12.1" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.12.1" - "@babel/plugin-transform-new-target" "^7.12.1" - "@babel/plugin-transform-object-super" "^7.12.1" - "@babel/plugin-transform-parameters" "^7.12.1" - "@babel/plugin-transform-property-literals" "^7.12.1" - "@babel/plugin-transform-regenerator" "^7.12.1" - "@babel/plugin-transform-reserved-words" "^7.12.1" - "@babel/plugin-transform-shorthand-properties" "^7.12.1" - "@babel/plugin-transform-spread" "^7.12.1" - "@babel/plugin-transform-sticky-regex" "^7.12.7" - "@babel/plugin-transform-template-literals" "^7.12.1" - "@babel/plugin-transform-typeof-symbol" "^7.12.10" - "@babel/plugin-transform-unicode-escapes" "^7.12.1" - "@babel/plugin-transform-unicode-regex" "^7.12.1" - "@babel/preset-modules" "^0.1.3" - "@babel/types" "^7.12.11" - core-js-compat "^3.8.0" - semver "^5.5.0" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-top-level-await" "^7.12.13" + "@babel/plugin-transform-arrow-functions" "^7.13.0" + "@babel/plugin-transform-async-to-generator" "^7.13.0" + "@babel/plugin-transform-block-scoped-functions" "^7.12.13" + "@babel/plugin-transform-block-scoping" "^7.12.13" + "@babel/plugin-transform-classes" "^7.13.0" + "@babel/plugin-transform-computed-properties" "^7.13.0" + "@babel/plugin-transform-destructuring" "^7.13.0" + "@babel/plugin-transform-dotall-regex" "^7.12.13" + "@babel/plugin-transform-duplicate-keys" "^7.12.13" + "@babel/plugin-transform-exponentiation-operator" "^7.12.13" + "@babel/plugin-transform-for-of" "^7.13.0" + "@babel/plugin-transform-function-name" "^7.12.13" + "@babel/plugin-transform-literals" "^7.12.13" + "@babel/plugin-transform-member-expression-literals" "^7.12.13" + "@babel/plugin-transform-modules-amd" "^7.13.0" + "@babel/plugin-transform-modules-commonjs" "^7.13.8" + "@babel/plugin-transform-modules-systemjs" "^7.13.8" + "@babel/plugin-transform-modules-umd" "^7.13.0" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.12.13" + "@babel/plugin-transform-new-target" "^7.12.13" + "@babel/plugin-transform-object-super" "^7.12.13" + "@babel/plugin-transform-parameters" "^7.13.0" + "@babel/plugin-transform-property-literals" "^7.12.13" + "@babel/plugin-transform-regenerator" "^7.12.13" + "@babel/plugin-transform-reserved-words" "^7.12.13" + "@babel/plugin-transform-shorthand-properties" "^7.12.13" + "@babel/plugin-transform-spread" "^7.13.0" + "@babel/plugin-transform-sticky-regex" "^7.12.13" + "@babel/plugin-transform-template-literals" "^7.13.0" + "@babel/plugin-transform-typeof-symbol" "^7.12.13" + "@babel/plugin-transform-unicode-escapes" "^7.12.13" + "@babel/plugin-transform-unicode-regex" "^7.12.13" + "@babel/preset-modules" "^0.1.4" + "@babel/types" "^7.13.0" + babel-plugin-polyfill-corejs2 "^0.1.4" + babel-plugin-polyfill-corejs3 "^0.1.3" + babel-plugin-polyfill-regenerator "^0.1.2" + core-js-compat "^3.9.0" + semver "^6.3.0" -"@babel/preset-modules@^0.1.3": +"@babel/preset-modules@^0.1.4": version "0.1.4" resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.4.tgz#362f2b68c662842970fdb5e254ffc8fc1c2e415e" integrity sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg== @@ -1011,73 +1068,73 @@ esutils "^2.0.2" "@babel/preset-react@^7.12.5": - version "7.12.10" - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.12.10.tgz#4fed65f296cbb0f5fb09de6be8cddc85cc909be9" - integrity sha512-vtQNjaHRl4DUpp+t+g4wvTHsLQuye+n0H/wsXIZRn69oz/fvNC7gQ4IK73zGJBaxvHoxElDvnYCthMcT7uzFoQ== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-transform-react-display-name" "^7.12.1" - "@babel/plugin-transform-react-jsx" "^7.12.10" - "@babel/plugin-transform-react-jsx-development" "^7.12.7" + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.12.13.tgz#5f911b2eb24277fa686820d5bd81cad9a0602a0a" + integrity sha512-TYM0V9z6Abb6dj1K7i5NrEhA13oS5ujUYQYDfqIBXYHOc2c2VkFgc+q9kyssIyUfy4/hEwqrgSlJ/Qgv8zJLsA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-transform-react-display-name" "^7.12.13" + "@babel/plugin-transform-react-jsx" "^7.12.13" + "@babel/plugin-transform-react-jsx-development" "^7.12.12" "@babel/plugin-transform-react-pure-annotations" "^7.12.1" "@babel/preset-typescript@^7.12.1": - version "7.12.7" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.12.7.tgz#fc7df8199d6aae747896f1e6c61fc872056632a3" - integrity sha512-nOoIqIqBmHBSEgBXWR4Dv/XBehtIFcw9PqZw6rFYuKrzsZmOQm3PR5siLBnKZFEsDb03IegG8nSjU/iXXXYRmw== + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.13.0.tgz#ab107e5f050609d806fbb039bec553b33462c60a" + integrity sha512-LXJwxrHy0N3f6gIJlYbLta1D9BDtHpQeqwzM0LIfjDlr6UE/D5Mc7W4iDiQzaE+ks0sTjT26ArcHWnJVt0QiHw== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-validator-option" "^7.12.1" - "@babel/plugin-transform-typescript" "^7.12.1" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-validator-option" "^7.12.17" + "@babel/plugin-transform-typescript" "^7.13.0" "@babel/runtime-corejs3@^7.10.2": - version "7.12.5" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.12.5.tgz#ffee91da0eb4c6dae080774e94ba606368e414f4" - integrity sha512-roGr54CsTmNPPzZoCP1AmDXuBoNao7tnSA83TXTwt+UK5QVyh1DIJnrgYRPWKCF2flqZQXwa7Yr8v7VmLzF0YQ== + version "7.13.10" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.13.10.tgz#14c3f4c85de22ba88e8e86685d13e8861a82fe86" + integrity sha512-x/XYVQ1h684pp1mJwOV4CyvqZXqbc8CMsMGUnAbuc82ZCdv1U63w5RSUzgDSXQHG5Rps/kiksH6g2D5BuaKyXg== dependencies: core-js-pure "^3.0.0" regenerator-runtime "^0.13.4" -"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.0", "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.4.2", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7": - version "7.12.5" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.5.tgz#410e7e487441e1b360c29be715d870d9b985882e" - integrity sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg== +"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.0", "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.8", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7": + version "7.13.10" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.13.10.tgz#47d42a57b6095f4468da440388fdbad8bebf0d7d" + integrity sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw== dependencies: regenerator-runtime "^0.13.4" "@babel/standalone@^7.12.6": - version "7.12.12" - resolved "https://registry.yarnpkg.com/@babel/standalone/-/standalone-7.12.12.tgz#f858ab1c76d9c4c23fe0783a0330ad37755f0176" - integrity sha512-sHuNDN9NvPHsDAmxPD3RpsIeqCoFSW+ySa6+3teInrYe9y0Gn5swLQ2ZE7Zk6L8eBBESZM2ob1l98qWauQfDMA== - -"@babel/template@^7.10.4", "@babel/template@^7.12.7": - version "7.12.7" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.7.tgz#c817233696018e39fbb6c491d2fb684e05ed43bc" - integrity sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/parser" "^7.12.7" - "@babel/types" "^7.12.7" - -"@babel/traverse@^7.10.4", "@babel/traverse@^7.10.5", "@babel/traverse@^7.12.1", "@babel/traverse@^7.12.10", "@babel/traverse@^7.12.5", "@babel/traverse@^7.12.9", "@babel/traverse@^7.7.0": - version "7.12.12" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.12.tgz#d0cd87892704edd8da002d674bc811ce64743376" - integrity sha512-s88i0X0lPy45RrLM8b9mz8RPH5FqO9G9p7ti59cToE44xFm1Q+Pjh5Gq4SXBbtb88X7Uy7pexeqRIQDDMNkL0w== - dependencies: - "@babel/code-frame" "^7.12.11" - "@babel/generator" "^7.12.11" - "@babel/helper-function-name" "^7.12.11" - "@babel/helper-split-export-declaration" "^7.12.11" - "@babel/parser" "^7.12.11" - "@babel/types" "^7.12.12" + version "7.13.11" + resolved "https://registry.yarnpkg.com/@babel/standalone/-/standalone-7.13.11.tgz#d732c9f2780480d54ebb4d1e49c76b2466d40270" + integrity sha512-gMHUj20F9caXNNCme45IxVi7C4f6IGrlrBehK+kTHj/PoZQ5rS9LHPfBILKZZbmd5eRfr7EkZU3zNkpd06ekmw== + +"@babel/template@^7.10.4", "@babel/template@^7.12.13", "@babel/template@^7.12.7": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz#530265be8a2589dbb37523844c5bcb55947fb327" + integrity sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA== + dependencies: + "@babel/code-frame" "^7.12.13" + "@babel/parser" "^7.12.13" + "@babel/types" "^7.12.13" + +"@babel/traverse@^7.10.5", "@babel/traverse@^7.12.5", "@babel/traverse@^7.12.9", "@babel/traverse@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.13.0.tgz#6d95752475f86ee7ded06536de309a65fc8966cc" + integrity sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ== + dependencies: + "@babel/code-frame" "^7.12.13" + "@babel/generator" "^7.13.0" + "@babel/helper-function-name" "^7.12.13" + "@babel/helper-split-export-declaration" "^7.12.13" + "@babel/parser" "^7.13.0" + "@babel/types" "^7.13.0" debug "^4.1.0" globals "^11.1.0" lodash "^4.17.19" -"@babel/types@^7.0.0-beta.49", "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.12.1", "@babel/types@^7.12.10", "@babel/types@^7.12.11", "@babel/types@^7.12.12", "@babel/types@^7.12.5", "@babel/types@^7.12.6", "@babel/types@^7.12.7", "@babel/types@^7.4.4", "@babel/types@^7.7.0": - version "7.12.12" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.12.tgz#4608a6ec313abbd87afa55004d373ad04a96c299" - integrity sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ== +"@babel/types@^7.0.0-beta.49", "@babel/types@^7.10.5", "@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.12.17", "@babel/types@^7.12.6", "@babel/types@^7.12.7", "@babel/types@^7.13.0", "@babel/types@^7.4.4": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.13.0.tgz#74424d2816f0171b4100f0ab34e9a374efdf7f80" + integrity sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA== dependencies: "@babel/helper-validator-identifier" "^7.12.11" lodash "^4.17.19" @@ -1093,6 +1150,40 @@ ts-node "^9" tslib "^2" +"@eslint/eslintrc@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.0.tgz#99cc0a0584d72f1df38b900fb062ba995f395547" + integrity sha512-2ZPCc+uNbjV5ERJr+aKSPRwZgKd2z11x0EgLvb1PURmUrn9QNRXFqje0Ldq454PfAVyaJYyrDvvIKSFP4NnBog== + dependencies: + ajv "^6.12.4" + debug "^4.1.1" + espree "^7.3.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.2.1" + js-yaml "^3.13.1" + minimatch "^3.0.4" + strip-json-comments "^3.1.1" + +"@gatsbyjs/reach-router@^1.3.6": + version "1.3.6" + resolved "https://registry.yarnpkg.com/@gatsbyjs/reach-router/-/reach-router-1.3.6.tgz#4e8225836959be247890b66f21a3198a0589e34d" + integrity sha512-RW9ZBir9kqtw4IWm+Z+DLWGOeoJxoaTvNVrnR5fV9zD8EmfAhbBN/hS6i6VnTMFZ7rdd6mnpx2/XtnMvYfsaVQ== + dependencies: + invariant "^2.2.3" + prop-types "^15.6.1" + react-lifecycles-compat "^3.0.4" + +"@gatsbyjs/webpack-hot-middleware@^2.25.2": + version "2.25.2" + resolved "https://registry.yarnpkg.com/@gatsbyjs/webpack-hot-middleware/-/webpack-hot-middleware-2.25.2.tgz#bad1a8bfacc2a0ff4f2c991f8aee488e2f38294a" + integrity sha512-IFxleSfFQlvEXho2sDRa0PM+diTI+6tlb38jeUo/Lsi+mDzyjPte5Cj4aWL6PR8FpKGMl+DYfq1jxNvjH2gqkA== + dependencies: + ansi-html "0.0.7" + html-entities "^2.1.0" + querystring "^0.2.0" + strip-ansi "^6.0.0" + "@graphql-tools/batch-execute@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@graphql-tools/batch-execute/-/batch-execute-7.0.0.tgz#e79d11bd5b39f29172f6ec2eafa71103c6a6c85b" @@ -1104,9 +1195,9 @@ tslib "~2.0.1" "@graphql-tools/delegate@^7.0.1", "@graphql-tools/delegate@^7.0.7": - version "7.0.9" - resolved "https://registry.yarnpkg.com/@graphql-tools/delegate/-/delegate-7.0.9.tgz#9afbffce378cdcbe72e9f4339a1c03b92c0e496e" - integrity sha512-nlelOb354cyweV+SpTXkoGZHKgJ1PwPkHWq/0RXM5LllQsR3OrSQKKWMrd1g9dyawEZbadCF3fDJJWSQ4HOg2g== + version "7.0.10" + resolved "https://registry.yarnpkg.com/@graphql-tools/delegate/-/delegate-7.0.10.tgz#f87ac85a2dbd03b5b3aabf347f4479fabe8ceac3" + integrity sha512-6Di9ia5ohoDvrHuhj2cak1nJGhIefJmUsd3WKZcJ2nu2yZAFawWMxGvQImqv3N7iyaWKiVhrrK8Roi/JrYhdKg== dependencies: "@ardatan/aggregate-error" "0.0.6" "@graphql-tools/batch-execute" "^7.0.0" @@ -1126,9 +1217,9 @@ tslib "~2.1.0" "@graphql-tools/import@^6.2.6": - version "6.2.6" - resolved "https://registry.yarnpkg.com/@graphql-tools/import/-/import-6.2.6.tgz#c5f899f0b87e9fe0523b889be8a59cb30aa164ad" - integrity sha512-/0H/bDjNK1MnKonk8fMbB7wIYU6QLCwbQOHtSHbFJ4j2qki5CqfAxpF+fGX6KovDtkdigcgRMvSKKi14oiuHPA== + version "6.3.0" + resolved "https://registry.yarnpkg.com/@graphql-tools/import/-/import-6.3.0.tgz#171472b425ea7cba4a612ad524b96bd206ae71b6" + integrity sha512-zmaVhJ3UPjzJSb005Pjn2iWvH+9AYRXI4IUiTi14uPupiXppJP3s7S25Si3+DbHpFwurDF2nWRxBLiFPWudCqw== dependencies: resolve-from "5.0.0" tslib "~2.1.0" @@ -1142,41 +1233,41 @@ tslib "~2.0.1" "@graphql-tools/load@^6.0.0": - version "6.2.5" - resolved "https://registry.yarnpkg.com/@graphql-tools/load/-/load-6.2.5.tgz#7dd0d34c8ce2cfb24f61c6beba2817d9afdd7f2b" - integrity sha512-TpDgp+id0hhD1iMhdFSgWgWumdI/IpFWwouJeaEhEEAEBkdvH4W9gbBiJBSbPQwMPRNWx8/AZtry0cYKLW4lHg== + version "6.2.7" + resolved "https://registry.yarnpkg.com/@graphql-tools/load/-/load-6.2.7.tgz#61f7909d37fb1c095e3e8d4f7a6d3b8bb011e26a" + integrity sha512-b1qWjki1y/QvGtoqW3x8bcwget7xmMfLGsvGFWOB6m38tDbzVT3GlJViAC0nGPDks9OCoJzAdi5IYEkBaqH5GQ== dependencies: - "@graphql-tools/merge" "^6.2.5" - "@graphql-tools/utils" "^7.0.0" - globby "11.0.1" + "@graphql-tools/merge" "^6.2.9" + "@graphql-tools/utils" "^7.5.0" + globby "11.0.2" import-from "3.0.0" is-glob "4.0.1" - p-limit "3.0.2" - tslib "~2.0.1" + p-limit "3.1.0" + tslib "~2.1.0" unixify "1.0.0" valid-url "1.0.9" -"@graphql-tools/merge@^6.0.0", "@graphql-tools/merge@^6.2.5": - version "6.2.7" - resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-6.2.7.tgz#c389bfa405d8d7562a05f794ede4254875e67f75" - integrity sha512-9acgDkkYeAHpuqhOa3E63NZPCX/iWo819Q320sCCMkydF1xgx0qCRYz/V03xPdpQETKRqBG2i2N2csneeEYYig== +"@graphql-tools/merge@^6.0.0", "@graphql-tools/merge@^6.2.9": + version "6.2.10" + resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-6.2.10.tgz#cadb37b1bed786cba1b3c6f728c5476a164e153d" + integrity sha512-dM3n37PcslvhOAkCz7Cwk0BfoiSVKXGmCX+VMZkATbXk/0vlxUfNEpVfA5yF4IkP27F04SzFQSaNrbD0W2Rszw== dependencies: "@graphql-tools/schema" "^7.0.0" - "@graphql-tools/utils" "^7.0.0" + "@graphql-tools/utils" "^7.5.0" tslib "~2.1.0" "@graphql-tools/schema@^7.0.0", "@graphql-tools/schema@^7.1.2": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-7.1.2.tgz#5084eaef893719ad01329f77673d102e7710542e" - integrity sha512-GabNT51ErVHE2riDH4EQdRusUsI+nMElT8LdFHyuP53v8gwtleAj+LePQ9jif4NYUe/JQVqO8V28vPcHrA7gfQ== + version "7.1.3" + resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-7.1.3.tgz#d816400da51fbac1f0086e35540ab63b5e30e858" + integrity sha512-ZY76hmcJlF1iyg3Im0sQ3ASRkiShjgv102vLTVcH22lEGJeCaCyyS/GF1eUHom418S60bS8Th6+autRUxfBiBg== dependencies: "@graphql-tools/utils" "^7.1.2" - tslib "~2.0.1" + tslib "~2.1.0" "@graphql-tools/url-loader@^6.0.0": - version "6.8.0" - resolved "https://registry.yarnpkg.com/@graphql-tools/url-loader/-/url-loader-6.8.0.tgz#932a71db7ef8c807f9a601ba538fecb763524acc" - integrity sha512-x4f93UnH7kNr9iHFpJHL6kYWogRFlxMEnXybHS9xNCFd08+ftMO22bUb8esnFsyNrtMMlkLtshDSyNb3LbIMQg== + version "6.8.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/url-loader/-/url-loader-6.8.1.tgz#cbfbe20f1a1bdeb9a4704e37b8286026d228920b" + integrity sha512-iE/y9IAu0cZYL7o9IIDdGm5WjxacN25nGgVqjZINYlisW/wyuBxng7DMJBAp6yM6gkxkCpMno1ljA/52MXzVPQ== dependencies: "@graphql-tools/delegate" "^7.0.1" "@graphql-tools/utils" "^7.1.5" @@ -1185,16 +1276,16 @@ cross-fetch "3.0.6" eventsource "1.0.7" extract-files "9.0.0" + form-data "4.0.0" graphql-upload "^11.0.0" - graphql-ws "4.1.0" + graphql-ws "4.1.5" is-promise "4.0.0" - isomorphic-form-data "2.0.0" isomorphic-ws "4.0.1" sse-z "0.3.0" sync-fetch "0.3.0" tslib "~2.1.0" valid-url "1.0.9" - ws "7.4.2" + ws "7.4.3" "@graphql-tools/utils@^6.0.0": version "6.2.4" @@ -1205,10 +1296,10 @@ camel-case "4.1.1" tslib "~2.0.1" -"@graphql-tools/utils@^7.0.0", "@graphql-tools/utils@^7.0.2", "@graphql-tools/utils@^7.1.2", "@graphql-tools/utils@^7.1.5", "@graphql-tools/utils@^7.1.6", "@graphql-tools/utils@^7.2.1": - version "7.2.5" - resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-7.2.5.tgz#d7f3fca326bbac34de664773d75634bf588ba2db" - integrity sha512-S9RUkPimq+5eEDohDjiq/JCPUsiZblKRG8ve+diUwF1f8+r6FV2xGXrOt0qhQJiMxIO+BOK3DU9c+U3tX9Jo0w== +"@graphql-tools/utils@^7.0.0", "@graphql-tools/utils@^7.0.2", "@graphql-tools/utils@^7.1.2", "@graphql-tools/utils@^7.1.5", "@graphql-tools/utils@^7.1.6", "@graphql-tools/utils@^7.2.1", "@graphql-tools/utils@^7.5.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-7.6.0.tgz#ac570a2b5a9bcd5d6446995f58ba22609e01ca7d" + integrity sha512-YCZDDdhfb4Yhie0IH031eGdvQG8C73apDuNg6lqBNbauNw45OG/b8wi3+vuMiDnJTJN32GQUb1Gt9gxDKoRDKw== dependencies: "@ardatan/aggregate-error" "0.0.6" camel-case "4.1.2" @@ -1615,9 +1706,9 @@ integrity sha512-T0BcXmNzEunFkuxrO8BFw44htvTPuAoKbLvTG41otyZBDV1Rs+JMddcUuaP5vXpTWtgD3grhcrPEwyx88RUumQ== "@mikaelkristiansson/domready@^1.0.10": - version "1.0.10" - resolved "https://registry.yarnpkg.com/@mikaelkristiansson/domready/-/domready-1.0.10.tgz#f6d69866c0857664e70690d7a0bfedb72143adb5" - integrity sha512-6cDuZeKSCSJ1KvfEQ25Y8OXUjqDJZ+HgUs6dhASWbAX8fxVraTfPsSeRe2bN+4QJDsgUaXaMWBYfRomCr04GGg== + version "1.0.11" + resolved "https://registry.yarnpkg.com/@mikaelkristiansson/domready/-/domready-1.0.11.tgz#6a4b5891dccb6402ff4e944de843036ee1ffd4f5" + integrity sha512-nEBLOa0JgtqahmPrnJZ18epLiFBzxhdKgo4uhN3TaBFRmM30pEVrS9FAEV4tg92d8PTdU+dYQx2lnpPyFMgMcg== "@nodelib/fs.scandir@2.1.4": version "2.1.4" @@ -1640,17 +1731,15 @@ "@nodelib/fs.scandir" "2.1.4" fastq "^1.6.0" -"@pieh/friendly-errors-webpack-plugin@1.7.0-chalk-2": - version "1.7.0-chalk-2" - resolved "https://registry.yarnpkg.com/@pieh/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.7.0-chalk-2.tgz#2e9da9d3ade9d18d013333eb408c457d04eabac0" - integrity sha512-65+vYGuDkHBCWWjqzzR/Ck318+d6yTI00EqII9qe3aPD1J3Olhvw0X38uM5moQb1PK/ksDXwSoPGt/5QhCiotw== +"@npmcli/move-file@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" + integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg== dependencies: - chalk "^2.4.2" - error-stack-parser "^2.0.0" - string-width "^2.0.0" - strip-ansi "^3" + mkdirp "^1.0.4" + rimraf "^3.0.2" -"@pmmmwh/react-refresh-webpack-plugin@^0.4.1": +"@pmmmwh/react-refresh-webpack-plugin@^0.4.3": version "0.4.3" resolved "https://registry.yarnpkg.com/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.4.3.tgz#1eec460596d200c0236bf195b078a5d1df89b766" integrity sha512-br5Qwvh8D2OQqSXpd1g/xqXKnK0r+Jz6qVKBbWmpUcrbGOxUrf39V5oZ1876084CGn18uMdR5uvPqBv9UqtBjQ== @@ -1663,26 +1752,16 @@ source-map "^0.7.3" "@popperjs/core@^2.5.3": - version "2.6.0" - resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.6.0.tgz#f022195afdfc942e088ee2101285a1d31c7d727f" - integrity sha512-cPqjjzuFWNK3BSKLm0abspP0sp/IGOli4p5I5fKFAzdS8fvjdOwDCfZqAaIiXd9lPkOWi3SUUfZof3hEb7J/uw== - -"@reach/router@^1.3.4": - version "1.3.4" - resolved "https://registry.yarnpkg.com/@reach/router/-/router-1.3.4.tgz#d2574b19370a70c80480ed91f3da840136d10f8c" - integrity sha512-+mtn9wjlB9NN2CNnnC/BRYtwdKBfSyyasPYraNAyvaV1occr/5NnB4CVzjEZipNHwYebQwcndGUmpFzxAUoqSA== - dependencies: - create-react-context "0.3.0" - invariant "^2.2.3" - prop-types "^15.6.1" - react-lifecycles-compat "^3.0.4" + version "2.9.1" + resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.9.1.tgz#7f554e7368c9ab679a11f4a042ca17149d70cf12" + integrity sha512-DvJbbn3dUgMxDnJLH+RZQPnXak1h4ZVYQ7CWiFWjQwBFkVajT4rfw2PdpHLTSTwxrYfnoEXkuBiwkDm6tPMQeA== "@restart/context@^2.1.4": version "2.1.4" resolved "https://registry.yarnpkg.com/@restart/context/-/context-2.1.4.tgz#a99d87c299a34c28bd85bb489cb07bfd23149c02" integrity sha512-INJYZQJP7g+IoDUh/475NlGiTeMfwTXUEr3tmRneckHIxNolGOW9CTq83S8cxq0CgJwwcMzMJFchxvlwe7Rk8Q== -"@restart/hooks@^0.3.21", "@restart/hooks@^0.3.25": +"@restart/hooks@^0.3.25", "@restart/hooks@^0.3.26": version "0.3.26" resolved "https://registry.yarnpkg.com/@restart/hooks/-/hooks-0.3.26.tgz#ade155a7b0b014ef1073391dda46972c3a14a129" integrity sha512-7Hwk2ZMYm+JLWcb7R9qIXk1OoUg1Z+saKWqZXlrvFwT3w6UArVNWgxYOzf+PJoK9zZejp8okPAKTctthhXLt5g== @@ -1691,9 +1770,9 @@ lodash-es "^4.17.20" "@sideway/address@^4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.0.tgz#0b301ada10ac4e0e3fa525c90615e0b61a72b78d" - integrity sha512-wAH/JYRXeIFQRsxerIuLjgUu2Xszam+O5xKeatJ4oudShOOirfmsQ1D6LL54XOU2tizpCYku+s1wmU0SYdpoSA== + version "4.1.1" + resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.1.tgz#9e321e74310963fdf8eebfbee09c7bd69972de4d" + integrity sha512-+I5aaQr3m0OAmMr7RQ3fR9zx55sejEYR2BFJaxL+zT3VM2611X0SHvPWIbAUBZVTn/YzYKbV8gJ2oT/QELknfQ== dependencies: "@hapi/hoek" "^9.0.0" @@ -1789,11 +1868,26 @@ resolved "https://registry.yarnpkg.com/@types/common-tags/-/common-tags-1.8.0.tgz#79d55e748d730b997be5b7fce4b74488d8b26a6b" integrity sha512-htRqZr5qn8EzMelhX/Xmx142z218lLyGaeZ3YR8jlze4TATRU9huKKvuBmAJEW4LCC4pnY1N6JAm6p85fMHjhg== +"@types/component-emitter@^1.2.10": + version "1.2.10" + resolved "https://registry.yarnpkg.com/@types/component-emitter/-/component-emitter-1.2.10.tgz#ef5b1589b9f16544642e473db5ea5639107ef3ea" + integrity sha512-bsjleuRKWmGqajMerkzox19aGbscQX5rmmvvXl3wlIp5gMG1HgkiwPxsN5p070fBDKTNSPgojVbuY1+HWMbFhg== + "@types/configstore@^2.1.1": version "2.1.1" resolved "https://registry.yarnpkg.com/@types/configstore/-/configstore-2.1.1.tgz#cd1e8553633ad3185c3f2f239ecff5d2643e92b6" integrity sha1-zR6FU2M60xhcPy8jns/10mQ+krY= +"@types/cookie@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.4.0.tgz#14f854c0f93d326e39da6e3b6f34f7d37513d108" + integrity sha512-y7mImlc/rNkvCRmg8gC3/lj87S7pTUIJ6QGjwHR9WQJcFs+ZMTOaoPrkdFA/YdbuqVEmEbb5RdhVxMkAcgOnpg== + +"@types/cors@^2.8.8": + version "2.8.10" + resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.10.tgz#61cc8469849e5bcdd0c7044122265c39cec10cf4" + integrity sha512-C7srjHiVG3Ey1nR6d511dtDkCEjxuN9W1HWAEjGq8kpcwmNM6JJkpC0xvabM7BXTG2wDq8Eu33iH9aQKa7IvLQ== + "@types/debug@^0.0.30": version "0.0.30" resolved "https://registry.yarnpkg.com/@types/debug/-/debug-0.0.30.tgz#dc1e40f7af3b9c815013a7860e6252f6352a84df" @@ -1804,10 +1898,26 @@ resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.5.tgz#b14efa8852b7768d898906613c23f688713e02cd" integrity sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ== -"@types/eslint-visitor-keys@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#1ee30d79544ca84d68d4b3cdb0af4f205663dd2d" - integrity sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag== +"@types/eslint-scope@^3.7.0": + version "3.7.0" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.0.tgz#4792816e31119ebd506902a482caec4951fabd86" + integrity sha512-O/ql2+rrCUe2W2rs7wMR+GqPRcgB6UiqN5RhrR5xruFlY7l9YLMn0ZkDzjoHLeiFkR8MCQZVudUuuvQ2BLC9Qw== + dependencies: + "@types/eslint" "*" + "@types/estree" "*" + +"@types/eslint@*", "@types/eslint@^7.2.6": + version "7.2.7" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.2.7.tgz#f7ef1cf0dceab0ae6f9a976a0a9af14ab1baca26" + integrity sha512-EHXbc1z2GoQRqHaAT7+grxlTJ3WE2YNeD6jlpPoRc83cCoThRY+NUWjCUZaYmk51OICkPXn2hhphcWcWXgNW0Q== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree@*", "@types/estree@^0.0.46": + version "0.0.46" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.46.tgz#0fb6bfbbeabd7a30880504993369c4bf1deab1fe" + integrity sha512-laIjwTQaD+5DukBZaygQ79K1Z0jb1bPEMRrkXSLjtCcZm+abyp5YbrqpSLzD42FwWW6gK/aS4NYpJ804nG2brg== "@types/events@*": version "3.0.0" @@ -1880,7 +1990,7 @@ "@types/istanbul-lib-coverage" "*" "@types/istanbul-lib-report" "*" -"@types/json-schema@^7.0.3", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6": +"@types/json-schema@*", "@types/json-schema@^7.0.3", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6": version "7.0.7" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad" integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA== @@ -1929,10 +2039,10 @@ "@types/node" "*" form-data "^3.0.0" -"@types/node@*": - version "14.14.22" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.22.tgz#0d29f382472c4ccf3bd96ff0ce47daf5b7b84b18" - integrity sha512-g+f/qj/cNcqKkc3tFqlXOYjrmZA+jNBiDzbP3kH+B+otKFqAdPgVTGP1IeKRdMml/aE69as5S4FqtxAbl+LaMw== +"@types/node@*", "@types/node@^14.14.10": + version "14.14.35" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.35.tgz#42c953a4e2b18ab931f72477e7012172f4ffa313" + integrity sha512-Lt+wj8NVPx0zUmUwumiVXapmaLUcAk3yPuHCFVXras9k5VT9TdhJqKqGVUQCD60OTMCl0qxJ57OiTL0Mic3Iag== "@types/node@^8.5.7": version "8.10.66" @@ -1966,19 +2076,20 @@ dependencies: "@types/react" "*" -"@types/react-transition-group@^4.4.0": - version "4.4.0" - resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.0.tgz#882839db465df1320e4753e6e9f70ca7e9b4d46d" - integrity sha512-/QfLHGpu+2fQOqQaXh8MG9q03bFENooTb/it4jr5kKaZlDQfWvjqWZg48AwzPVMBHlRuTRAY7hRHCEOXz5kV6w== +"@types/react-transition-group@^4.4.1": + version "4.4.1" + resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.1.tgz#e1a3cb278df7f47f17b5082b1b3da17170bd44b1" + integrity sha512-vIo69qKKcYoJ8wKCJjwSgCTM+z3chw3g18dkrDfVX665tMH7tmbDxEAnPdey4gTlwZz5QuHGzd+hul0OVZDqqQ== dependencies: "@types/react" "*" "@types/react@*", "@types/react@>=16.9.11", "@types/react@>=16.9.35": - version "17.0.0" - resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.0.tgz#5af3eb7fad2807092f0046a1302b7823e27919b8" - integrity sha512-aj/L7RIMsRlWML3YB6KZiXB3fV2t41+5RBGYF8z+tAKU43Px8C3cYUZsDvf1/+Bm4FK21QWBrDutu8ZJ/70qOw== + version "17.0.3" + resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.3.tgz#ba6e215368501ac3826951eef2904574c262cc79" + integrity sha512-wYOUxIgs2HZZ0ACNiIayItyluADNbONl7kt8lkLjVK8IitMH5QMyAh75Fwhmo37r1m7L2JaFj03sIfxBVDvRAg== dependencies: "@types/prop-types" "*" + "@types/scheduler" "*" csstype "^3.0.2" "@types/readable-stream@^2.3.9": @@ -2004,6 +2115,11 @@ "@types/glob" "*" "@types/node" "*" +"@types/scheduler@*": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.1.tgz#18845205e86ff0038517aab7a18a62a6b9f71275" + integrity sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA== + "@types/tmp@^0.0.33": version "0.0.33" resolved "https://registry.yarnpkg.com/@types/tmp/-/tmp-0.0.33.tgz#1073c4bc824754ae3d10cfab88ab0237ba964e4d" @@ -2059,192 +2175,195 @@ resolved "https://registry.yarnpkg.com/@types/yoga-layout/-/yoga-layout-1.9.2.tgz#efaf9e991a7390dc081a0b679185979a83a9639a" integrity sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw== -"@typescript-eslint/eslint-plugin@^2.24.0": - version "2.34.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.34.0.tgz#6f8ce8a46c7dea4a6f1d171d2bb8fbae6dac2be9" - integrity sha512-4zY3Z88rEE99+CNvTbXSyovv2z9PNOVffTWD2W8QF5s2prBQtwN2zadqERcrHpcR7O/+KMI3fcTAmUUhK/iQcQ== +"@typescript-eslint/eslint-plugin@^4.15.2": + version "4.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.18.0.tgz#50fbce93211b5b690895d20ebec6fe8db48af1f6" + integrity sha512-Lzkc/2+7EoH7+NjIWLS2lVuKKqbEmJhtXe3rmfA8cyiKnZm3IfLf51irnBcmow8Q/AptVV0XBZmBJKuUJTe6cQ== dependencies: - "@typescript-eslint/experimental-utils" "2.34.0" + "@typescript-eslint/experimental-utils" "4.18.0" + "@typescript-eslint/scope-manager" "4.18.0" + debug "^4.1.1" functional-red-black-tree "^1.0.1" + lodash "^4.17.15" regexpp "^3.0.0" + semver "^7.3.2" tsutils "^3.17.1" -"@typescript-eslint/experimental-utils@2.34.0": - version "2.34.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.34.0.tgz#d3524b644cdb40eebceca67f8cf3e4cc9c8f980f" - integrity sha512-eS6FTkq+wuMJ+sgtuNTtcqavWXqsflWcfBnlYhg/nS4aZ1leewkXGbvBhaapn1q6qf4M71bsR1tez5JTRMuqwA== +"@typescript-eslint/experimental-utils@4.18.0": + version "4.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.18.0.tgz#ed6c955b940334132b17100d2917449b99a91314" + integrity sha512-92h723Kblt9JcT2RRY3QS2xefFKar4ZQFVs3GityOKWQYgtajxt/tuXIzL7sVCUlM1hgreiV5gkGYyBpdOwO6A== dependencies: "@types/json-schema" "^7.0.3" - "@typescript-eslint/typescript-estree" "2.34.0" + "@typescript-eslint/scope-manager" "4.18.0" + "@typescript-eslint/types" "4.18.0" + "@typescript-eslint/typescript-estree" "4.18.0" eslint-scope "^5.0.0" eslint-utils "^2.0.0" -"@typescript-eslint/parser@^2.24.0": - version "2.34.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.34.0.tgz#50252630ca319685420e9a39ca05fe185a256bc8" - integrity sha512-03ilO0ucSD0EPTw2X4PntSIRFtDPWjrVq7C3/Z3VQHRC7+13YB55rcJI3Jt+YgeHbjUdJPcPa7b23rXCBokuyA== +"@typescript-eslint/parser@^4.15.2": + version "4.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.18.0.tgz#a211edb14a69fc5177054bec04c95b185b4dde21" + integrity sha512-W3z5S0ZbecwX3PhJEAnq4mnjK5JJXvXUDBYIYGoweCyWyuvAKfGHvzmpUzgB5L4cRBb+cTu9U/ro66dx7dIimA== dependencies: - "@types/eslint-visitor-keys" "^1.0.0" - "@typescript-eslint/experimental-utils" "2.34.0" - "@typescript-eslint/typescript-estree" "2.34.0" - eslint-visitor-keys "^1.1.0" + "@typescript-eslint/scope-manager" "4.18.0" + "@typescript-eslint/types" "4.18.0" + "@typescript-eslint/typescript-estree" "4.18.0" + debug "^4.1.1" -"@typescript-eslint/typescript-estree@2.34.0": - version "2.34.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.34.0.tgz#14aeb6353b39ef0732cc7f1b8285294937cf37d5" - integrity sha512-OMAr+nJWKdlVM9LOqCqh3pQQPwxHAN7Du8DR6dmwCrAmxtiXQnhHJ6tBNtf+cggqfo51SG/FCwnKhXCIM7hnVg== +"@typescript-eslint/scope-manager@4.18.0": + version "4.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.18.0.tgz#d75b55234c35d2ff6ac945758d6d9e53be84a427" + integrity sha512-olX4yN6rvHR2eyFOcb6E4vmhDPsfdMyfQ3qR+oQNkAv8emKKlfxTWUXU5Mqxs2Fwe3Pf1BoPvrwZtwngxDzYzQ== dependencies: + "@typescript-eslint/types" "4.18.0" + "@typescript-eslint/visitor-keys" "4.18.0" + +"@typescript-eslint/types@4.18.0": + version "4.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.18.0.tgz#bebe323f81f2a7e2e320fac9415e60856267584a" + integrity sha512-/BRociARpj5E+9yQ7cwCF/SNOWwXJ3qhjurMuK2hIFUbr9vTuDeu476Zpu+ptxY2kSxUHDGLLKy+qGq2sOg37A== + +"@typescript-eslint/typescript-estree@4.18.0": + version "4.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.18.0.tgz#756d3e61da8c16ab99185532c44872f4cd5538cb" + integrity sha512-wt4xvF6vvJI7epz+rEqxmoNQ4ZADArGQO9gDU+cM0U5fdVv7N+IAuVoVAoZSOZxzGHBfvE3XQMLdy+scsqFfeg== + dependencies: + "@typescript-eslint/types" "4.18.0" + "@typescript-eslint/visitor-keys" "4.18.0" debug "^4.1.1" - eslint-visitor-keys "^1.1.0" - glob "^7.1.6" + globby "^11.0.1" is-glob "^4.0.1" - lodash "^4.17.15" semver "^7.3.2" tsutils "^3.17.1" -"@webassemblyjs/ast@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" - integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== - dependencies: - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" - -"@webassemblyjs/floating-point-hex-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" - integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== - -"@webassemblyjs/helper-api-error@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" - integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== - -"@webassemblyjs/helper-buffer@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" - integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== - -"@webassemblyjs/helper-code-frame@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" - integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== +"@typescript-eslint/visitor-keys@4.18.0": + version "4.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.18.0.tgz#4e6fe2a175ee33418318a029610845a81e2ff7b6" + integrity sha512-Q9t90JCvfYaN0OfFUgaLqByOfz8yPeTAdotn/XYNm5q9eHax90gzdb+RJ6E9T5s97Kv/UHWKERTmqA0jTKAEHw== dependencies: - "@webassemblyjs/wast-printer" "1.9.0" + "@typescript-eslint/types" "4.18.0" + eslint-visitor-keys "^2.0.0" -"@webassemblyjs/helper-fsm@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" - integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== - -"@webassemblyjs/helper-module-context@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" - integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== +"@webassemblyjs/ast@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.0.tgz#a5aa679efdc9e51707a4207139da57920555961f" + integrity sha512-kX2W49LWsbthrmIRMbQZuQDhGtjyqXfEmmHyEi4XWnSZtPmxY0+3anPIzsnRb45VH/J55zlOfWvZuY47aJZTJg== dependencies: - "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-numbers" "1.11.0" + "@webassemblyjs/helper-wasm-bytecode" "1.11.0" -"@webassemblyjs/helper-wasm-bytecode@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" - integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== +"@webassemblyjs/floating-point-hex-parser@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.0.tgz#34d62052f453cd43101d72eab4966a022587947c" + integrity sha512-Q/aVYs/VnPDVYvsCBL/gSgwmfjeCb4LW8+TMrO3cSzJImgv8lxxEPM2JA5jMrivE7LSz3V+PFqtMbls3m1exDA== -"@webassemblyjs/helper-wasm-section@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" - integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" +"@webassemblyjs/helper-api-error@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.0.tgz#aaea8fb3b923f4aaa9b512ff541b013ffb68d2d4" + integrity sha512-baT/va95eXiXb2QflSx95QGT5ClzWpGaa8L7JnJbgzoYeaA27FCvuBXU758l+KXWRndEmUXjP0Q5fibhavIn8w== -"@webassemblyjs/ieee754@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" - integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== - dependencies: - "@xtuc/ieee754" "^1.2.0" +"@webassemblyjs/helper-buffer@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.0.tgz#d026c25d175e388a7dbda9694e91e743cbe9b642" + integrity sha512-u9HPBEl4DS+vA8qLQdEQ6N/eJQ7gT7aNvMIo8AAWvAl/xMrcOSiI2M0MAnMCy3jIFke7bEee/JwdX1nUpCtdyA== -"@webassemblyjs/leb128@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" - integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== +"@webassemblyjs/helper-numbers@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.0.tgz#7ab04172d54e312cc6ea4286d7d9fa27c88cd4f9" + integrity sha512-DhRQKelIj01s5IgdsOJMKLppI+4zpmcMQ3XboFPLwCpSNH6Hqo1ritgHgD0nqHeSYqofA6aBN/NmXuGjM1jEfQ== dependencies: + "@webassemblyjs/floating-point-hex-parser" "1.11.0" + "@webassemblyjs/helper-api-error" "1.11.0" "@xtuc/long" "4.2.2" -"@webassemblyjs/utf8@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" - integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== +"@webassemblyjs/helper-wasm-bytecode@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.0.tgz#85fdcda4129902fe86f81abf7e7236953ec5a4e1" + integrity sha512-MbmhvxXExm542tWREgSFnOVo07fDpsBJg3sIl6fSp9xuu75eGz5lz31q7wTLffwL3Za7XNRCMZy210+tnsUSEA== -"@webassemblyjs/wasm-edit@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" - integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/helper-wasm-section" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-opt" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - "@webassemblyjs/wast-printer" "1.9.0" - -"@webassemblyjs/wasm-gen@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" - integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== +"@webassemblyjs/helper-wasm-section@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.0.tgz#9ce2cc89300262509c801b4af113d1ca25c1a75b" + integrity sha512-3Eb88hcbfY/FCukrg6i3EH8H2UsD7x8Vy47iVJrP967A9JGqgBVL9aH71SETPx1JrGsOUVLo0c7vMCN22ytJew== dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.0" + "@webassemblyjs/ast" "1.11.0" + "@webassemblyjs/helper-buffer" "1.11.0" + "@webassemblyjs/helper-wasm-bytecode" "1.11.0" + "@webassemblyjs/wasm-gen" "1.11.0" -"@webassemblyjs/wasm-opt@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" - integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== +"@webassemblyjs/ieee754@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.0.tgz#46975d583f9828f5d094ac210e219441c4e6f5cf" + integrity sha512-KXzOqpcYQwAfeQ6WbF6HXo+0udBNmw0iXDmEK5sFlmQdmND+tr773Ti8/5T/M6Tl/413ArSJErATd8In3B+WBA== dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" + "@xtuc/ieee754" "^1.2.0" -"@webassemblyjs/wasm-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" - integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== +"@webassemblyjs/leb128@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.0.tgz#f7353de1df38aa201cba9fb88b43f41f75ff403b" + integrity sha512-aqbsHa1mSQAbeeNcl38un6qVY++hh8OpCOzxhixSYgbRfNWcxJNJQwe2rezK9XEcssJbbWIkblaJRwGMS9zp+g== dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.0" - -"@webassemblyjs/wast-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" - integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/floating-point-hex-parser" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-code-frame" "1.9.0" - "@webassemblyjs/helper-fsm" "1.9.0" "@xtuc/long" "4.2.2" -"@webassemblyjs/wast-printer@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" - integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" +"@webassemblyjs/utf8@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.0.tgz#86e48f959cf49e0e5091f069a709b862f5a2cadf" + integrity sha512-A/lclGxH6SpSLSyFowMzO/+aDEPU4hvEiooCMXQPcQFPPJaYcPQNKGOCLUySJsYJ4trbpr+Fs08n4jelkVTGVw== + +"@webassemblyjs/wasm-edit@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.0.tgz#ee4a5c9f677046a210542ae63897094c2027cb78" + integrity sha512-JHQ0damXy0G6J9ucyKVXO2j08JVJ2ntkdJlq1UTiUrIgfGMmA7Ik5VdC/L8hBK46kVJgujkBIoMtT8yVr+yVOQ== + dependencies: + "@webassemblyjs/ast" "1.11.0" + "@webassemblyjs/helper-buffer" "1.11.0" + "@webassemblyjs/helper-wasm-bytecode" "1.11.0" + "@webassemblyjs/helper-wasm-section" "1.11.0" + "@webassemblyjs/wasm-gen" "1.11.0" + "@webassemblyjs/wasm-opt" "1.11.0" + "@webassemblyjs/wasm-parser" "1.11.0" + "@webassemblyjs/wast-printer" "1.11.0" + +"@webassemblyjs/wasm-gen@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.0.tgz#3cdb35e70082d42a35166988dda64f24ceb97abe" + integrity sha512-BEUv1aj0WptCZ9kIS30th5ILASUnAPEvE3tVMTrItnZRT9tXCLW2LEXT8ezLw59rqPP9klh9LPmpU+WmRQmCPQ== + dependencies: + "@webassemblyjs/ast" "1.11.0" + "@webassemblyjs/helper-wasm-bytecode" "1.11.0" + "@webassemblyjs/ieee754" "1.11.0" + "@webassemblyjs/leb128" "1.11.0" + "@webassemblyjs/utf8" "1.11.0" + +"@webassemblyjs/wasm-opt@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.0.tgz#1638ae188137f4bb031f568a413cd24d32f92978" + integrity sha512-tHUSP5F4ywyh3hZ0+fDQuWxKx3mJiPeFufg+9gwTpYp324mPCQgnuVKwzLTZVqj0duRDovnPaZqDwoyhIO8kYg== + dependencies: + "@webassemblyjs/ast" "1.11.0" + "@webassemblyjs/helper-buffer" "1.11.0" + "@webassemblyjs/wasm-gen" "1.11.0" + "@webassemblyjs/wasm-parser" "1.11.0" + +"@webassemblyjs/wasm-parser@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.0.tgz#3e680b8830d5b13d1ec86cc42f38f3d4a7700754" + integrity sha512-6L285Sgu9gphrcpDXINvm0M9BskznnzJTE7gYkjDbxET28shDqp27wpruyx3C2S/dvEwiigBwLA1cz7lNUi0kw== + dependencies: + "@webassemblyjs/ast" "1.11.0" + "@webassemblyjs/helper-api-error" "1.11.0" + "@webassemblyjs/helper-wasm-bytecode" "1.11.0" + "@webassemblyjs/ieee754" "1.11.0" + "@webassemblyjs/leb128" "1.11.0" + "@webassemblyjs/utf8" "1.11.0" + +"@webassemblyjs/wast-printer@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.0.tgz#680d1f6a5365d6d401974a8e949e05474e1fab7e" + integrity sha512-Fg5OX46pRdTgB7rKIUojkh9vXaVN6sGYCnEiJN1GYkb0RPwShZXp6KTDqmoMdQPKhcroOXh3fEzmkWmCYaKYhQ== + dependencies: + "@webassemblyjs/ast" "1.11.0" "@xtuc/long" "4.2.2" "@xtuc/ieee754@^1.2.0": @@ -2265,35 +2384,33 @@ accepts@^1.3.7, accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: mime-types "~2.1.24" negotiator "0.6.2" -acorn-jsx@^5.2.0: +acorn-jsx@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== -acorn@^6.4.1: - version "6.4.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" - integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== - -acorn@^7.1.1: +acorn@^7.4.0: version "7.4.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -address@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/address/-/address-1.0.3.tgz#b5f50631f8d6cec8bd20c963963afb55e06cbce9" - integrity sha512-z55ocwKBRLryBs394Sm3ushTtBeg6VAeuku7utSoSnsJKvKcnXFIyC6vh27n3rXyxSgkJBBCAvyOn7gSUcTYjg== +acorn@^8.0.4: + version "8.1.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.1.0.tgz#52311fd7037ae119cbb134309e901aa46295b3fe" + integrity sha512-LWCF/Wn0nfHOmJ9rzQApGnxnvgfROzGilS8936rqN/lfcYkY9MYZzdMqN+2NJ4SlTc+m5HiSa+kNfDtI64dwUA== address@1.1.2, address@^1.0.1: version "1.1.2" resolved "https://registry.yarnpkg.com/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6" integrity sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA== -after@0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" - integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8= +adjust-sourcemap-loader@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/adjust-sourcemap-loader/-/adjust-sourcemap-loader-3.0.0.tgz#5ae12fb5b7b1c585e80bbb5a63ec163a1a45e61e" + integrity sha512-YBrGyT2/uVQ/c6Rr+t6ZJXniY03YtHGMJQYal368burRGYKqhx9qGTWqcBU5s1CwYY9E/ri63RYyG1IacMZtqw== + dependencies: + loader-utils "^2.0.0" + regex-parser "^2.2.11" agentkeepalive@^2.2.0: version "2.2.0" @@ -2313,12 +2430,12 @@ ajv-errors@^1.0.0: resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== -ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: +ajv-keywords@^3.1.0, ajv-keywords@^3.5.2: version "3.5.2" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== -ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.4, ajv@^6.12.5: +ajv@^6.1.0, ajv@^6.10.0, ajv@^6.12.4, ajv@^6.12.5: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -2328,10 +2445,20 @@ ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.4, ajv@^6.12.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -algoliasearch-helper@^3.1.0: - version "3.3.4" - resolved "https://registry.yarnpkg.com/algoliasearch-helper/-/algoliasearch-helper-3.3.4.tgz#4a3c56d42a2a81589d5722b73653b2deaf3e7064" - integrity sha512-1Ts2XcgGdjGlDrp3v6zbY8VW+X9+jJ5rBmtPBmXOQLd4b5t/LpJlaBdxoAnlMfVFjywP7KSAdmyFUNNYVHDyRQ== +ajv@^7.0.2: + version "7.2.1" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-7.2.1.tgz#a5ac226171912447683524fa2f1248fcf8bac83d" + integrity sha512-+nu0HDv7kNSOua9apAVc979qd932rrZeb3WOvoiD31A/p1mIE5/9bN2027pE2rOPYEdS3UHzsvof4hY+lM9/WQ== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +algoliasearch-helper@^3.4.3: + version "3.4.4" + resolved "https://registry.yarnpkg.com/algoliasearch-helper/-/algoliasearch-helper-3.4.4.tgz#f2eb46bc4d2f6fed82c7201b8ac4ce0a1988ae67" + integrity sha512-OjyVLjykaYKCMxxRMZNiwLp8CS310E0qAeIY2NaublcmLAh8/SL19+zYHp7XCLtMem2ZXwl3ywMiA32O9jszuw== dependencies: events "^1.1.1" @@ -2357,24 +2484,24 @@ algoliasearch@^3.24.5: tunnel-agent "^0.6.0" algoliasearch@^4.2.0: - version "4.8.4" - resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-4.8.4.tgz#ac2fc9335dfe06f55b9bd4faf6050ea0c8e0feea" - integrity sha512-QbXpFvBKj/QhKWE7xBoqaWOWyw7ni6W6THSuFJHOcADRrInhjFCBYjrv+YsIhv9huCepKXWpfV4UJup9BslVhQ== - dependencies: - "@algolia/cache-browser-local-storage" "4.8.4" - "@algolia/cache-common" "4.8.4" - "@algolia/cache-in-memory" "4.8.4" - "@algolia/client-account" "4.8.4" - "@algolia/client-analytics" "4.8.4" - "@algolia/client-common" "4.8.4" - "@algolia/client-recommendation" "4.8.4" - "@algolia/client-search" "4.8.4" - "@algolia/logger-common" "4.8.4" - "@algolia/logger-console" "4.8.4" - "@algolia/requester-browser-xhr" "4.8.4" - "@algolia/requester-common" "4.8.4" - "@algolia/requester-node-http" "4.8.4" - "@algolia/transporter" "4.8.4" + version "4.8.6" + resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-4.8.6.tgz#8d6d7d2315bb052705a8ef5c8dbf57a19d357c2b" + integrity sha512-G8IA3lcgaQB4r9HuQ4G+uSFjjz0Wv2OgEPiQ8emA+G2UUlroOfMl064j1bq/G+QTW0LmTQp9JwrFDRWxFM9J7w== + dependencies: + "@algolia/cache-browser-local-storage" "4.8.6" + "@algolia/cache-common" "4.8.6" + "@algolia/cache-in-memory" "4.8.6" + "@algolia/client-account" "4.8.6" + "@algolia/client-analytics" "4.8.6" + "@algolia/client-common" "4.8.6" + "@algolia/client-recommendation" "4.8.6" + "@algolia/client-search" "4.8.6" + "@algolia/logger-common" "4.8.6" + "@algolia/logger-console" "4.8.6" + "@algolia/requester-browser-xhr" "4.8.6" + "@algolia/requester-common" "4.8.6" + "@algolia/requester-node-http" "4.8.6" + "@algolia/transporter" "4.8.6" alphanum-sort@^1.0.0: version "1.0.2" @@ -2386,13 +2513,6 @@ anser@^2.0.1: resolved "https://registry.yarnpkg.com/anser/-/anser-2.0.1.tgz#8d9069291fee18306ffaf2e364a690dcc8ed78ad" integrity sha512-4g5Np4CVD3c5c/36Mj0jllEA5bQcuXF0dqakZcuHGeubBzw93EAhwRuQCzgFm4/ZwvyBMzFdtn9BcihOjnxIdQ== -ansi-align@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" - integrity sha1-w2rsy6VjuJzrVW82kPCx2eNUf38= - dependencies: - string-width "^2.0.0" - ansi-align@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" @@ -2405,7 +2525,12 @@ ansi-colors@^3.0.0: resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== -ansi-escapes@^3.0.0, ansi-escapes@^3.1.0: +ansi-colors@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + +ansi-escapes@^3.1.0: version "3.2.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== @@ -2487,7 +2612,7 @@ application-config-path@^0.1.0: resolved "https://registry.yarnpkg.com/application-config-path/-/application-config-path-0.1.0.tgz#193c5f0a86541a4c66fba1e2dc38583362ea5e8f" integrity sha1-GTxfCoZUGkxm+6Hi3DhYM2LqXo8= -aproba@^1.0.3, aproba@^1.1.1: +aproba@^1.0.3: version "1.2.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== @@ -2532,6 +2657,11 @@ aria-query@^4.2.2: "@babel/runtime" "^7.10.2" "@babel/runtime-corejs3" "^7.10.2" +arity-n@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/arity-n/-/arity-n-1.0.4.tgz#d9e76b11733e08569c0847ae7b39b2860b30b745" + integrity sha1-2edrEXM+CFacCEeuezmyhgswt0U= + arr-diff@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" @@ -2552,11 +2682,6 @@ array-differ@^3.0.0: resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b" integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg== -array-filter@~0.0.0: - version "0.0.1" - resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec" - integrity sha1-fajPLiZijtcygDWB/SH2fKzS7uw= - array-find-index@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" @@ -2578,14 +2703,14 @@ array-flatten@^3.0.0: integrity sha512-zPMVc3ZYlGLNk4mpK1NzP2wg0ml9t7fUgDsayR5Y5rSzxQilzR9FGu/EH2jQOcKSAeAfWeylyW8juy3OkWRvNA== array-includes@^3.1.1, array-includes@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.2.tgz#a8db03e0b88c8c6aeddc49cb132f9bcab4ebf9c8" - integrity sha512-w2GspexNQpx+PutG3QpT437/BenZBj0M/MZGn5mzv/MofYqo0xmRHzn4lFsoDlWJ+THYsGJmFlW68WlDFx7VRw== + version "3.1.3" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.3.tgz#c7f619b382ad2afaf5326cddfdc0afc61af7690a" + integrity sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A== dependencies: - call-bind "^1.0.0" + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.18.0-next.1" - get-intrinsic "^1.0.1" + es-abstract "^1.18.0-next.2" + get-intrinsic "^1.1.1" is-string "^1.0.5" array-iterate@^1.0.0: @@ -2593,16 +2718,6 @@ array-iterate@^1.0.0: resolved "https://registry.yarnpkg.com/array-iterate/-/array-iterate-1.1.4.tgz#add1522e9dd9749bb41152d08b845bd08d6af8b7" integrity sha512-sNRaPGh9nnmdC8Zf+pT3UqP8rnWj5Hf9wiFGsX3wUQ2yVSIhO2ShFwCoceIPpB41QF6i2OEmrHmCo36xronCVA== -array-map@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662" - integrity sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI= - -array-reduce@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b" - integrity sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys= - array-union@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" @@ -2644,34 +2759,11 @@ array.prototype.flatmap@^1.2.3: es-abstract "^1.18.0-next.1" function-bind "^1.1.1" -arraybuffer.slice@~0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675" - integrity sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog== - arrify@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== -asn1.js@^5.2.0: - version "5.4.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" - integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - safer-buffer "^2.1.0" - -assert@^1.1.1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" - integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== - dependencies: - object-assign "^4.1.1" - util "0.10.3" - assign-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" @@ -2682,10 +2774,10 @@ ast-types-flow@^0.0.7: resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" integrity sha1-9wtzXGvKGlycItmCw+Oef+ujva0= -astral-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" - integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== async-cache@^1.1.0: version "1.1.0" @@ -2741,23 +2833,22 @@ atob@^2.1.2: resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== -autoprefixer@^9.8.4: - version "9.8.6" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.6.tgz#3b73594ca1bf9266320c5acf1588d74dea74210f" - integrity sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg== +autoprefixer@^10.2.4: + version "10.2.5" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.2.5.tgz#096a0337dbc96c0873526d7fef5de4428d05382d" + integrity sha512-7H4AJZXvSsn62SqZyJCP+1AWwOuoYpUfK6ot9vm0e87XD6mT8lDywc9D9OTJPMULyGcvmIxzTAMeG2Cc+YX+fA== dependencies: - browserslist "^4.12.0" - caniuse-lite "^1.0.30001109" - colorette "^1.2.1" + browserslist "^4.16.3" + caniuse-lite "^1.0.30001196" + colorette "^1.2.2" + fraction.js "^4.0.13" normalize-range "^0.1.2" - num2fraction "^1.2.2" - postcss "^7.0.32" postcss-value-parser "^4.1.0" axe-core@^4.0.2: - version "4.1.1" - resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.1.1.tgz#70a7855888e287f7add66002211a423937063eaf" - integrity sha512-5Kgy8Cz6LPC9DJcNb3yjAXTu3XihQgEdnIg50c//zOC/MyLP0Clg+Y8Sh9ZjjnvBrDZU4DgXS9C3T9r4/scGZQ== + version "4.1.3" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.1.3.tgz#64a4c85509e0991f5168340edc4bedd1ceea6966" + integrity sha512-vwPpH4Aj4122EW38mxO/fxhGKtwWTMLDIJfZ1He0Edbtjcfna/R3YB67yVhezUMzqc3Jr3+Ii50KRntlENL4xQ== axios@^0.21.0, axios@^0.21.1: version "0.21.1" @@ -2771,33 +2862,7 @@ axobject-query@^2.2.0: resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be" integrity sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA== -babel-code-frame@6.26.0, babel-code-frame@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" - integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= - dependencies: - chalk "^1.1.3" - esutils "^2.0.2" - js-tokens "^3.0.2" - -babel-core@7.0.0-bridge.0: - version "7.0.0-bridge.0" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece" - integrity sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg== - -babel-eslint@^10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232" - integrity sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.7.0" - "@babel/traverse" "^7.7.0" - "@babel/types" "^7.7.0" - eslint-visitor-keys "^1.0.0" - resolve "^1.12.0" - -babel-loader@^8.1.0: +babel-loader@^8.2.2: version "8.2.2" resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.2.tgz#9363ce84c10c9a40e6c753748e1441b60c8a0b81" integrity sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g== @@ -2854,25 +2919,50 @@ babel-plugin-macros@^2.8.0: cosmiconfig "^6.0.0" resolve "^1.12.0" -babel-plugin-remove-graphql-queries@^2.16.0: - version "2.16.0" - resolved "https://registry.yarnpkg.com/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-2.16.0.tgz#8abb88ee9f0a5edaef667663657091aa34cdc5c4" - integrity sha512-sUmAjyA1JUHIWOzV7h1+sLAplNWUQlC6A1Cs2Xmpi/tHcHjHSpI4R5y5Um82WjiT7IHV2LfBKqL/qpyGeXky5w== +babel-plugin-polyfill-corejs2@^0.1.4: + version "0.1.10" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.1.10.tgz#a2c5c245f56c0cac3dbddbf0726a46b24f0f81d1" + integrity sha512-DO95wD4g0A8KRaHKi0D51NdGXzvpqVLnLu5BTvDlpqUEpTmeEtypgC1xqesORaWmiUOQI14UHKlzNd9iZ2G3ZA== + dependencies: + "@babel/compat-data" "^7.13.0" + "@babel/helper-define-polyfill-provider" "^0.1.5" + semver "^6.1.1" + +babel-plugin-polyfill-corejs3@^0.1.3: + version "0.1.7" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.1.7.tgz#80449d9d6f2274912e05d9e182b54816904befd0" + integrity sha512-u+gbS9bbPhZWEeyy1oR/YaaSpod/KDT07arZHb80aTpl8H5ZBq+uN1nN9/xtX7jQyfLdPfoqI4Rue/MQSWJquw== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.1.5" + core-js-compat "^3.8.1" + +babel-plugin-polyfill-regenerator@^0.1.2: + version "0.1.6" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.1.6.tgz#0fe06a026fe0faa628ccc8ba3302da0a6ce02f3f" + integrity sha512-OUrYG9iKPKz8NxswXbRAdSwF0GhRdIEMTloQATJi4bDuFqrXaXcCUT/VGNrr8pBcjMh1RxZ7Xt9cytVJTJfvMg== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.1.5" + +babel-plugin-remove-graphql-queries@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-3.0.0.tgz#b5c4e5e29b3bd2110b55a36d5b9076da15b5805e" + integrity sha512-eKyztf9FDm4U+aEojPXKlYbE0VM4L2fxU+xHAn21lx13ZR7jT+N5qQNeZk+wR7I/NzwFBy1nuHFui4oXa/Kr0A== babel-plugin-transform-react-remove-prop-types@^0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz#f2edaf9b4c6a5fbe5c1d678bfb531078c1555f3a" integrity sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA== -babel-preset-gatsby@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/babel-preset-gatsby/-/babel-preset-gatsby-0.12.0.tgz#cde244b45462d5dd14a2b946416fbe2d7f15c2ba" - integrity sha512-VoN1ItvHFrptlhF2UUR5HeOjaSZeQVClhCYqRSoe8E/MzsQody4aBJQpOxYCAUX/DgUMtZVSz6Kvy2UTUaOb9w== +babel-preset-gatsby@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/babel-preset-gatsby/-/babel-preset-gatsby-1.0.0.tgz#14bcb46e45bfee12d095819f1f439415401377b7" + integrity sha512-3jCjp/yhbgbvSxj9j6ieF6h1JKi9Kfot8N+NSh80GDQ5iwhg/x+Ev7ocyU0UKm89t5QaZuPcGY/RopK0gck+pg== dependencies: "@babel/plugin-proposal-class-properties" "^7.12.1" "@babel/plugin-proposal-nullish-coalescing-operator" "^7.12.1" "@babel/plugin-proposal-optional-chaining" "^7.12.1" "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-transform-classes" "^7.12.1" "@babel/plugin-transform-runtime" "^7.12.1" "@babel/plugin-transform-spread" "^7.12.1" "@babel/preset-env" "^7.12.1" @@ -2881,18 +2971,10 @@ babel-preset-gatsby@^0.12.0: babel-plugin-dynamic-import-node "^2.3.3" babel-plugin-macros "^2.8.0" babel-plugin-transform-react-remove-prop-types "^0.4.24" - gatsby-core-utils "^1.10.0" - gatsby-legacy-polyfills "^0.7.0" - -babel-runtime@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" + gatsby-core-utils "^2.0.0" + gatsby-legacy-polyfills "^1.0.0" -backo2@1.0.2: +backo2@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" integrity sha1-MasayLEpNjRj41s+u2n038+6eUc= @@ -2917,17 +2999,12 @@ base64-arraybuffer@0.1.4: resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz#9818c79e059b1355f97e0428a017c838e90ba812" integrity sha1-mBjHngWbE1X5fgQooBfIOOkLqBI= -base64-arraybuffer@0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" - integrity sha1-c5JncZI7Whl0etZmqlzUv5xunOg= - -base64-js@^1.0.2, base64-js@^1.3.1: +base64-js@^1.3.1: version "1.5.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== -base64id@2.0.0: +base64id@2.0.0, base64id@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== @@ -2950,13 +3027,6 @@ batch@0.6.1: resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= -better-assert@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" - integrity sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI= - dependencies: - callsite "1.0.0" - better-opn@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/better-opn/-/better-opn-2.1.1.tgz#94a55b4695dc79288f31d7d0e5f658320759f7c6" @@ -3053,10 +3123,10 @@ bindings@^1.5.0: dependencies: file-uri-to-path "1.0.0" -bl@4.0.3, bl@^4.0.0, bl@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/bl/-/bl-4.0.3.tgz#12d6287adc29080e22a705e5764b2a9522cdc489" - integrity sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg== +bl@4.1.0, bl@^4.0.0, bl@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== dependencies: buffer "^5.5.0" inherits "^2.0.4" @@ -3070,12 +3140,7 @@ bl@^1.0.0: readable-stream "^2.3.5" safe-buffer "^5.1.1" -blob@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683" - integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig== - -bluebird@^3.0.5, bluebird@^3.5.0, bluebird@^3.5.5, bluebird@^3.7.2: +bluebird@^3.0.5, bluebird@^3.7.2: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== @@ -3085,16 +3150,6 @@ bmp-js@^0.1.0: resolved "https://registry.yarnpkg.com/bmp-js/-/bmp-js-0.1.0.tgz#e05a63f796a6c1ff25f4771ec7adadc148c07233" integrity sha1-4Fpj95amwf8l9Hcex62twUjAcjM= -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: - version "4.11.9" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" - integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== - -bn.js@^5.0.0, bn.js@^5.1.1: - version "5.1.3" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.3.tgz#beca005408f642ebebea80b042b4d18d2ac0ee6b" - integrity sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ== - body-parser@1.19.0, body-parser@^1.19.0: version "1.19.0" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" @@ -3133,19 +3188,6 @@ bootstrap@4.6.0: resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.6.0.tgz#97b9f29ac98f98dfa43bf7468262d84392552fd7" integrity sha512-Io55IuQY3kydzHtbGvQya3H+KorS/M9rSNyfCGCg9WZ4pyT/lCxIlpJgG1GXW/PswzC84Tr2fBYi+7+jFVQQBw== -boxen@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" - integrity sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw== - dependencies: - ansi-align "^2.0.0" - camelcase "^4.0.0" - chalk "^2.0.1" - cli-boxes "^1.0.0" - string-width "^2.0.0" - term-size "^1.2.0" - widest-line "^2.0.0" - boxen@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/boxen/-/boxen-4.2.0.tgz#e411b62357d6d6d36587c8ac3d5d974daa070e64" @@ -3174,7 +3216,7 @@ boxen@^5.0.0: widest-line "^3.1.0" wrap-ansi "^7.0.0" -brace-expansion@^1.0.0, brace-expansion@^1.1.7: +brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== @@ -3205,73 +3247,17 @@ braces@^3.0.1, braces@~3.0.2: dependencies: fill-range "^7.0.1" -brorand@^1.0.1, brorand@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= - -browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" - integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" - integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== +browserslist@4.14.2: + version "4.14.2" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.2.tgz#1b3cec458a1ba87588cc5e9be62f19b6d48813ce" + integrity sha512-HI4lPveGKUR0x2StIz+2FXfDk9SfVMrxn6PLh1JeGUwcuoDkdKZebWiyLRJ68iIPDpMI4JLVDf7S7XzslgWOhw== dependencies: - bn.js "^5.0.0" - randombytes "^2.0.1" + caniuse-lite "^1.0.30001125" + electron-to-chromium "^1.3.564" + escalade "^3.0.2" + node-releases "^1.1.61" -browserify-sign@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" - integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== - dependencies: - bn.js "^5.1.1" - browserify-rsa "^4.0.1" - create-hash "^1.2.0" - create-hmac "^1.1.7" - elliptic "^6.5.3" - inherits "^2.0.4" - parse-asn1 "^5.1.5" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -browserify-zlib@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" - integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== - dependencies: - pako "~1.0.5" - -browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.12.2, browserslist@^4.14.5, browserslist@^4.16.1: +browserslist@^4.0.0, browserslist@^4.12.2, browserslist@^4.14.5, browserslist@^4.16.3: version "4.16.3" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.3.tgz#340aa46940d7db878748567c5dea24a48ddf3717" integrity sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw== @@ -3320,20 +3306,6 @@ buffer-indexof@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= - -buffer@^4.3.0: - version "4.9.2" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" - integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - buffer@^5.2.0, buffer@^5.2.1, buffer@^5.5.0, buffer@^5.7.0: version "5.7.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" @@ -3342,16 +3314,6 @@ buffer@^5.2.0, buffer@^5.2.1, buffer@^5.5.0, buffer@^5.7.0: base64-js "^1.3.1" ieee754 "^1.1.13" -builtin-modules@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" - integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= - -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= - busboy@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.3.1.tgz#170899274c5bf38aae27d5c62b71268cd585fd1b" @@ -3362,56 +3324,34 @@ busboy@^0.3.1: bytes@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" - integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= - -bytes@3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" - integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== - -cacache@^12.0.2: - version "12.0.4" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" - integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== - dependencies: - bluebird "^3.5.5" - chownr "^1.1.1" - figgy-pudding "^3.5.1" - glob "^7.1.4" - graceful-fs "^4.1.15" - infer-owner "^1.0.3" - lru-cache "^5.1.1" - mississippi "^3.0.0" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - promise-inflight "^1.0.1" - rimraf "^2.6.3" - ssri "^6.0.1" - unique-filename "^1.1.1" - y18n "^4.0.0" + integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= + +bytes@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== -cacache@^13.0.1: - version "13.0.1" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-13.0.1.tgz#a8000c21697089082f85287a1aec6e382024a71c" - integrity sha512-5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w== +cacache@^15.0.5: + version "15.0.5" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.0.5.tgz#69162833da29170d6732334643c60e005f5f17d0" + integrity sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A== dependencies: - chownr "^1.1.2" - figgy-pudding "^3.5.1" + "@npmcli/move-file" "^1.0.1" + chownr "^2.0.0" fs-minipass "^2.0.0" glob "^7.1.4" - graceful-fs "^4.2.2" infer-owner "^1.0.4" - lru-cache "^5.1.1" - minipass "^3.0.0" + lru-cache "^6.0.0" + minipass "^3.1.1" minipass-collect "^1.0.2" minipass-flush "^1.0.5" minipass-pipeline "^1.2.2" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - p-map "^3.0.0" + mkdirp "^1.0.3" + p-map "^4.0.0" promise-inflight "^1.0.1" - rimraf "^2.7.1" - ssri "^7.0.0" + rimraf "^3.0.2" + ssri "^8.0.0" + tar "^6.0.2" unique-filename "^1.1.1" cache-base@^1.0.1: @@ -3507,11 +3447,6 @@ caller-path@^2.0.0: dependencies: caller-callsite "^2.0.0" -callsite@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" - integrity sha1-KAOY5dZkvXQDi28JBRU+borxvCA= - callsites@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" @@ -3559,21 +3494,16 @@ camelcase-keys@^2.0.0: camelcase "^2.0.0" map-obj "^1.0.0" +camelcase@5.3.1, camelcase@^5.0.0, camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + camelcase@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= -camelcase@^4.0.0, camelcase@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" - integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= - -camelcase@^5.0.0, camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - camelcase@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" @@ -3589,15 +3519,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001181: - version "1.0.30001183" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001183.tgz#7a57ba9d6584119bb5f2bc76d3cc47ba9356b3e2" - integrity sha512-7JkwTEE1hlRKETbCFd8HDZeLiQIUcl8rC6JgNjvHCNaxOeNmQ9V4LvQXRUsKIV2CC73qKxljwVhToaA3kLRqTw== - -capture-stack-trace@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz#a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d" - integrity sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001125, caniuse-lite@^1.0.30001181, caniuse-lite@^1.0.30001196: + version "1.0.30001200" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001200.tgz#25435af6ba907c2a9c86d21ce84950d4824e6620" + integrity sha512-ic/jXfa6tgiPBAISWk16jRI2q8YfjxHnSG7ddSL1ptrIP8Uy11SayFrjXRAk3NumHpDb21fdTkbTxb/hOrFrnQ== caw@^2.0.0, caw@^2.0.1: version "2.0.1" @@ -3614,7 +3539,16 @@ ccount@^1.0.0, ccount@^1.0.3: resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.1.0.tgz#246687debb6014735131be8abab2d93898f8d043" integrity sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg== -chalk@1.1.3, chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: +chalk@2.4.2, chalk@^2.0, chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^1.0.0: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= @@ -3625,15 +3559,6 @@ chalk@1.1.3, chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@^2.0, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - chalk@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" @@ -3694,11 +3619,6 @@ character-reference-invalid@^1.0.0: resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== -chardet@^0.4.0: - version "0.4.2" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" - integrity sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I= - chardet@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" @@ -3750,7 +3670,7 @@ cheerio@^1.0.0-rc.3: parse5 "^6.0.0" parse5-htmlparser2-tree-adapter "^6.0.0" -"chokidar@>=2.0.0 <4.0.0", chokidar@^3.4.1, chokidar@^3.4.2, chokidar@^3.4.3, chokidar@^3.5.1: +"chokidar@>=2.0.0 <4.0.0", chokidar@^3.4.2, chokidar@^3.4.3, chokidar@^3.5.1: version "3.5.1" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== @@ -3784,11 +3704,16 @@ chokidar@^2.1.8: optionalDependencies: fsevents "^1.2.7" -chownr@^1.1.1, chownr@^1.1.2: +chownr@^1.1.1: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + chrome-trace-event@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" @@ -3801,19 +3726,6 @@ ci-info@2.0.0, ci-info@^2.0.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== -ci-info@^1.5.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" - integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== - -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - class-utils@^0.3.5: version "0.3.6" resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" @@ -3834,23 +3746,11 @@ clean-stack@^2.0.0: resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== -cli-boxes@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" - integrity sha1-T6kXw+WclKAEzWH47lCdplFocUM= - cli-boxes@^2.2.0, cli-boxes@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== -cli-cursor@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" - integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= - dependencies: - restore-cursor "^2.0.0" - cli-cursor@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" @@ -3858,20 +3758,15 @@ cli-cursor@^3.1.0: dependencies: restore-cursor "^3.1.0" -cli-width@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" - integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== - cli-width@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== clipboard@^2.0.0: - version "2.0.6" - resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.6.tgz#52921296eec0fdf77ead1749421b21c968647376" - integrity sha512-g5zbiixBRk/wyKakSwCKd7vQXDjFnAMGHoEyBogG/bw9kTD9GvdAvaoRR1ALcEzt3pVKxZR0pViekPMIS0QyGg== + version "2.0.8" + resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.8.tgz#ffc6c103dd2967a83005f3f61976aa4655a4cdba" + integrity sha512-Y6WO0unAIQp5bLmk1zdThRhgJt/x3ks6f30s3oE3H1mgIEU33XyQjEf8gsf6DxC7NPX8Y1SsNWjUjL/ywLnnbQ== dependencies: good-listener "^1.2.2" select "^1.1.2" @@ -3886,15 +3781,6 @@ clipboardy@^2.3.0: execa "^1.0.0" is-wsl "^2.1.1" -cliui@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" - integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ== - dependencies: - string-width "^2.1.1" - strip-ansi "^4.0.0" - wrap-ansi "^2.0.0" - cliui@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" @@ -3922,6 +3808,15 @@ cliui@^7.0.2: strip-ansi "^6.0.0" wrap-ansi "^7.0.0" +clone-deep@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" + clone-response@1.0.2, clone-response@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" @@ -3981,9 +3876,9 @@ color-name@^1.0.0, color-name@~1.1.4: integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== color-string@^1.5.4: - version "1.5.4" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.4.tgz#dd51cd25cfee953d138fe4002372cc3d0e504cb6" - integrity sha512-57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw== + version "1.5.5" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.5.tgz#65474a8f0e7439625f3d27a6a19d89fc45223014" + integrity sha512-jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg== dependencies: color-name "^1.0.0" simple-swizzle "^0.2.2" @@ -3996,12 +3891,12 @@ color@^3.0.0, color@^3.1.3: color-convert "^1.9.1" color-string "^1.5.4" -colorette@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b" - integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== +colorette@^1.2.1, colorette@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" + integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== -combined-stream@^1.0.6, combined-stream@^1.0.8: +combined-stream@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== @@ -4023,7 +3918,7 @@ commander@^2.20.0, commander@^2.20.3, commander@^2.8.1: resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== -common-tags@^1.4.0, common-tags@^1.8.0: +common-tags@^1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937" integrity sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw== @@ -4033,30 +3928,17 @@ commondir@^1.0.1: resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= -compare-versions@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62" - integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA== - -component-bind@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" - integrity sha1-AMYIq33Nk4l8AAllGx06jh5zu9E= - -component-emitter@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" - integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY= - component-emitter@^1.2.1, component-emitter@~1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== -component-inherit@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" - integrity sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM= +compose-function@3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/compose-function/-/compose-function-3.0.3.tgz#9ed675f13cc54501d30950a486ff6a7ba3ab185f" + integrity sha1-ntZ18TzFRQHTCVCkhv9qe6OrGF8= + dependencies: + arity-n "^1.0.4" compressible@~2.0.16: version "2.0.18" @@ -4083,16 +3965,6 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -concat-stream@^1.5.0: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - config-chain@^1.1.11: version "1.1.12" resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" @@ -4101,18 +3973,6 @@ config-chain@^1.1.11: ini "^1.3.4" proto-list "~1.2.1" -configstore@^3.0.0: - version "3.1.5" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.5.tgz#e9af331fadc14dabd544d3e7e76dc446a09a530f" - integrity sha512-nlOhI4+fdzoK5xmJ+NY+1gZK56bwEaWZr8fYuXohZ9Vkc1o3a4T/R3M+yE/w7x/ZVJ1zF8c+oaOvF0dztdUgmA== - dependencies: - dot-prop "^4.2.1" - graceful-fs "^4.1.2" - make-dir "^1.0.0" - unique-string "^1.0.0" - write-file-atomic "^2.0.0" - xdg-basedir "^3.0.0" - configstore@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" @@ -4125,7 +3985,7 @@ configstore@^5.0.1: write-file-atomic "^3.0.0" xdg-basedir "^4.0.0" -confusing-browser-globals@^1.0.9: +confusing-browser-globals@^1.0.10: version "1.0.10" resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz#30d1e7f3d1b882b25ec4933d1d1adac353d20a59" integrity sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA== @@ -4135,11 +3995,6 @@ connect-history-api-fallback@^1.6.0: resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== -console-browserify@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" - integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== - console-control-strings@^1.0.0, console-control-strings@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" @@ -4158,11 +4013,6 @@ constant-case@^2.0.0: snake-case "^2.1.0" upper-case "^1.1.1" -constants-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= - contains-path@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" @@ -4181,9 +4031,9 @@ content-type@^1.0.4, content-type@~1.0.4: integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== contentful-management@^7.5.1: - version "7.6.0" - resolved "https://registry.yarnpkg.com/contentful-management/-/contentful-management-7.6.0.tgz#98db0b54d0261e2aa389929d349e21765a9cd406" - integrity sha512-lcaoOEiyC4XxRyPyyYhdxRj0ztN2BjOHmFj8hzuKZskqrSLiDyKfnkYX144QfAllrkLmUnMrKZcwGvzWf3Rwmg== + version "7.9.0" + resolved "https://registry.yarnpkg.com/contentful-management/-/contentful-management-7.9.0.tgz#161a55b91473332542abe3030d16f8bb0805edd4" + integrity sha512-9jXsX1QJrHFl2ao1j2pwHteW7vUe4/pus0Xm9GObMnyASeG1g9d/VCP6b4FoPek0Y8uEe1YjLGYxzM3YJha1kg== dependencies: axios "^0.21.0" contentful-sdk-core "^6.7.0" @@ -4199,49 +4049,37 @@ contentful-sdk-core@^6.7.0: fast-copy "^2.1.0" qs "^6.9.4" -convert-hrtime@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/convert-hrtime/-/convert-hrtime-2.0.0.tgz#19bfb2c9162f9e11c2f04c2c79de2b7e8095c627" - integrity sha1-Gb+yyRYvnhHC8Ewsed4rfoCVxic= - convert-hrtime@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/convert-hrtime/-/convert-hrtime-3.0.0.tgz#62c7593f5809ca10be8da858a6d2f702bcda00aa" integrity sha512-7V+KqSvMiHp8yWDuwfww06XleMWVVB9b9tURBx+G7UTADuo5hYPuowKloz4OzOqbPezxgo+fdQ1522WzPG4OeA== -convert-source-map@^1.7.0: +convert-source-map@1.7.0, convert-source-map@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== dependencies: safe-buffer "~5.1.1" +convert-source-map@^0.3.3: + version "0.3.5" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-0.3.5.tgz#f1d802950af7dd2631a1febe0596550c86ab3190" + integrity sha1-8dgClQr33SYxof6+BZZVDIarMZA= + cookie-signature@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= -cookie@0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" - integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s= - cookie@0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== -copy-concurrently@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" - integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== - dependencies: - aproba "^1.1.1" - fs-write-stream-atomic "^1.0.8" - iferr "^0.1.5" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.0" +cookie@~0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" + integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== copy-descriptor@^0.1.0: version "0.1.1" @@ -4261,35 +4099,30 @@ copyfiles@^2.3.0: untildify "^4.0.0" yargs "^16.1.0" -core-js-compat@^3.6.5, core-js-compat@^3.8.0: - version "3.8.3" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.8.3.tgz#9123fb6b9cad30f0651332dc77deba48ef9b0b3f" - integrity sha512-1sCb0wBXnBIL16pfFG1Gkvei6UzvKyTNYpiC41yrdjEv0UoJoq9E/abTMzyYJ6JpTkAj15dLjbqifIzEBDVvog== +core-js-compat@^3.6.5, core-js-compat@^3.8.1, core-js-compat@^3.9.0: + version "3.9.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.9.1.tgz#4e572acfe90aff69d76d8c37759d21a5c59bb455" + integrity sha512-jXAirMQxrkbiiLsCx9bQPJFA6llDadKMpYrBJQJ3/c4/vsPP/fAf29h24tviRlvwUL6AmY5CHLu2GvjuYviQqA== dependencies: - browserslist "^4.16.1" + browserslist "^4.16.3" semver "7.0.0" core-js-pure@^3.0.0: - version "3.8.3" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.8.3.tgz#10e9e3b2592ecaede4283e8f3ad7020811587c02" - integrity sha512-V5qQZVAr9K0xu7jXg1M7qTEwuxUgqr7dUOezGaNa7i+Xn9oXAU/d1fzqD9ObuwpVQOaorO5s70ckyi1woP9lVA== - -core-js@^2.4.0, core-js@^2.5.0: - version "2.6.12" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" - integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== + version "3.9.1" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.9.1.tgz#677b322267172bd490e4464696f790cbc355bec5" + integrity sha512-laz3Zx0avrw9a4QEIdmIblnVuJz8W51leY9iLThatCsFawWxC3sE4guASC78JbCin+DkwMpCdp1AVAuzL/GN7A== core-js@^3.6.5: - version "3.8.3" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.8.3.tgz#c21906e1f14f3689f93abcc6e26883550dd92dd0" - integrity sha512-KPYXeVZYemC2TkNEkX/01I+7yd+nX3KddKwZ1Ww7SKWdI2wQprSgLmrTddT8nw92AjEklTsPBoSdQBhbI1bQ6Q== + version "3.9.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.9.1.tgz#cec8de593db8eb2a85ffb0dbdeb312cb6e5460ae" + integrity sha512-gSjRvzkxQc1zjM/5paAmL4idJBFzuJoo+jDjF1tStYFMV2ERfD02HhahhCGXUyHxQRG4yFKVSdO6g62eoRMcDg== core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= -cors@^2.8.5: +cors@^2.8.5, cors@~2.8.5: version "2.8.5" resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== @@ -4336,56 +4169,10 @@ cosmiconfig@^7.0.0: path-type "^4.0.0" yaml "^1.10.0" -create-ecdh@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" - integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== - dependencies: - bn.js "^4.1.0" - elliptic "^6.5.3" - -create-error-class@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" - integrity sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y= - dependencies: - capture-stack-trace "^1.0.0" - -create-gatsby@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/create-gatsby/-/create-gatsby-0.5.0.tgz#15793d846322032b08b3a9c6e79d8b6ea1897766" - integrity sha512-Wy7AywRYEM0XxNgq9t2gbccJINf5z5O7H7pmW9b+XRxYytSUxSAwZv8qypBQ6aQ79XWQ9vcbdhZO6SvDPSquYg== - -create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -create-react-context@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/create-react-context/-/create-react-context-0.3.0.tgz#546dede9dc422def0d3fc2fe03afe0bc0f4f7d8c" - integrity sha512-dNldIoSuNSvlTJ7slIKC/ZFGKexBMBrrcc+TTe1NdmROnaASuLPvqpwj9v4XS4uXZ8+YPu0sNmShX2rXI5LNsw== - dependencies: - gud "^1.0.0" - warning "^4.0.3" +create-gatsby@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/create-gatsby/-/create-gatsby-1.0.0.tgz#f977ffcf5e005c9885f6a89efcf6a9bbdd92ac17" + integrity sha512-eDa6rpm6sNrqrnzZDBRsbiCvEvUibAswliYcwqEP1ibgljQ88TXZP4FLnX6//Epj4zTwpUPVYALWVluOgBNGCA== create-require@^1.1.0: version "1.1.1" @@ -4399,7 +4186,16 @@ cross-fetch@3.0.6: dependencies: node-fetch "2.6.1" -cross-spawn@5.1.0, cross-spawn@^5.0.1: +cross-spawn@7.0.3, cross-spawn@^7.0.0, cross-spawn@^7.0.2: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +cross-spawn@^5.0.1: version "5.1.0" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= @@ -4419,37 +4215,6 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^7.0.0: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -crypto-browserify@^3.11.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - -crypto-random-string@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" - integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4= - crypto-random-string@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" @@ -4468,23 +4233,38 @@ css-declaration-sorter@^4.0.1: postcss "^7.0.1" timsort "^0.3.0" -css-loader@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-1.0.1.tgz#6885bb5233b35ec47b006057da01cc640b6b79fe" - integrity sha512-+ZHAZm/yqvJ2kDtPne3uX0C+Vr3Zn5jFn2N4HywtS5ujwvsVkyg0VArEXpl3BgczDA8anieki1FIzhchX4yrDw== +css-loader@^5.0.1: + version "5.1.3" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-5.1.3.tgz#87f6fc96816b20debe3cf682f85c7e56a963d0d1" + integrity sha512-CoPZvyh8sLiGARK3gqczpfdedbM74klGWurF2CsNZ2lhNaXdLIUks+3Mfax3WBeRuHoglU+m7KG/+7gY6G4aag== dependencies: - babel-code-frame "^6.26.0" - css-selector-tokenizer "^0.7.0" - icss-utils "^2.1.0" - loader-utils "^1.0.2" - lodash "^4.17.11" - postcss "^6.0.23" - postcss-modules-extract-imports "^1.2.0" - postcss-modules-local-by-default "^1.2.0" - postcss-modules-scope "^1.1.0" - postcss-modules-values "^1.3.0" - postcss-value-parser "^3.3.0" - source-list-map "^2.0.0" + camelcase "^6.2.0" + cssesc "^3.0.0" + icss-utils "^5.1.0" + loader-utils "^2.0.0" + postcss "^8.2.8" + postcss-modules-extract-imports "^3.0.0" + postcss-modules-local-by-default "^4.0.0" + postcss-modules-scope "^3.0.0" + postcss-modules-values "^4.0.0" + postcss-value-parser "^4.1.0" + schema-utils "^3.0.0" + semver "^7.3.4" + +css-minimizer-webpack-plugin@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-1.3.0.tgz#d867b4a54ca9920125b30263505e8cca72bc8cf1" + integrity sha512-jFa0Siplmfef4ndKglpVaduY47oHQwioAOEGK0f0vAX0s+vc+SmP6cCMoc+8Adau5600RnOEld5VVdC8CQau7w== + dependencies: + cacache "^15.0.5" + cssnano "^4.1.10" + find-cache-dir "^3.3.1" + jest-worker "^26.3.0" + p-limit "^3.0.2" + schema-utils "^3.0.0" + serialize-javascript "^5.0.1" + source-map "^0.6.1" + webpack-sources "^1.4.3" css-select-base-adapter@^0.1.1: version "0.1.1" @@ -4527,14 +4307,6 @@ css-selector-parser@^1.1.0: resolved "https://registry.yarnpkg.com/css-selector-parser/-/css-selector-parser-1.4.1.tgz#03f9cb8a81c3e5ab2c51684557d5aaf6d2569759" integrity sha512-HYPSb7y/Z7BNDCOrakL4raGO2zltZkbeXyAd6Tg9obzix6QhzxCotdBl6VT0Dv4vZfJGVz3WL/xaEI9Ly3ul0g== -css-selector-tokenizer@^0.7.0: - version "0.7.3" - resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz#735f26186e67c749aaf275783405cf0661fae8f1" - integrity sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg== - dependencies: - cssesc "^3.0.0" - fastparse "^1.1.2" - css-tree@1.0.0-alpha.37: version "1.0.0-alpha.37" resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" @@ -4566,7 +4338,12 @@ css-what@^4.0.0: resolved "https://registry.yarnpkg.com/css-what/-/css-what-4.0.0.tgz#35e73761cab2eeb3d3661126b23d7aa0e8432233" integrity sha512-teijzG7kwYfNVsUh2H/YN62xW3KK9YhXEgSlbxMlcyjPNvdKJqFx5lrwlJgoFP1ZHlB89iGDlo/JyshKeRhv5A== -css@2.2.4: +css.escape@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb" + integrity sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s= + +css@2.2.4, css@^2.0.0: version "2.2.4" resolved "https://registry.yarnpkg.com/css/-/css-2.2.4.tgz#c646755c73971f2bba6a601e2cf2fd71b1298929" integrity sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw== @@ -4662,9 +4439,9 @@ csso@^4.0.2: css-tree "^1.1.2" csstype@^3.0.2: - version "3.0.6" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.6.tgz#865d0b5833d7d8d40f4e5b8a6d76aea3de4725ef" - integrity sha512-+ZAmfyWMT7TiIlzdqJgjMb7S4f1beorDbWbsocyK4RaiqA5RTX3K14bnBWmmA9QEM0gRdsjyyrEmcyga8Zsxmw== + version "3.0.7" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.7.tgz#2a5fb75e1015e84dd15692f71e89a1450290950b" + integrity sha512-KxnUB0ZMlnUWCsx2Z8MUsr6qV6ja1w9ArPErJaJaF8a5SOWoHLIszeCTKGRGRgtLgYrs1E8CHkNSP1VZTTPc9g== currently-unhandled@^0.4.1: version "0.4.1" @@ -4673,11 +4450,6 @@ currently-unhandled@^0.4.1: dependencies: array-find-index "^1.0.1" -cyclist@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" - integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= - d@1, d@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" @@ -4702,16 +4474,11 @@ dataloader@^1.4.0: integrity sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw== date-fns@^2.14.0: - version "2.16.1" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.16.1.tgz#05775792c3f3331da812af253e1a935851d3834b" - integrity sha512-sAJVKx/FqrLYHAQeN7VpJrPhagZc9R4ImZIWYRFZaaohR3KzmuK88touwsSwSVT8Qcbd4zoDsnGfX4GFB4imyQ== - -death@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/death/-/death-1.1.0.tgz#01aa9c401edd92750514470b8266390c66c67318" - integrity sha1-AaqcQB7dknUFFEcLgmY5DGbGcxg= + version "2.19.0" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.19.0.tgz#65193348635a28d5d916c43ec7ce6fbd145059e1" + integrity sha512-X3bf2iTPgCAQp9wvjOQytnf5vO5rESYRXlPIVcgSbtT5OTScPcsf9eZU+B/YIkKAtYr5WeCii58BgATrNitlWg== -debug@2, debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.6, debug@^2.6.9: +debug@2, debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -4725,28 +4492,14 @@ debug@^3.0.0, debug@^3.1.0, debug@^3.1.1, debug@^3.2.6, debug@^3.2.7: dependencies: ms "^2.1.1" -debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: +debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@~4.3.1: version "4.3.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== dependencies: ms "2.1.2" -debug@~3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" - integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== - dependencies: - ms "2.0.0" - -debug@~4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== - dependencies: - ms "^2.1.1" - -decamelize@^1.1.1, decamelize@^1.1.2, decamelize@^1.2.0: +decamelize@^1.1.2, decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= @@ -4854,7 +4607,7 @@ deep-extend@^0.6.0: resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== -deep-is@~0.1.3: +deep-is@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= @@ -4878,9 +4631,9 @@ defer-to-connect@^1.0.1: integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== defer-to-connect@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.0.tgz#83d6b199db041593ac84d781b5222308ccf4c2c1" - integrity sha512-bYL2d05vOSf1JEZNx5vSAtPuBMkX8K9EUutg7zlKvTqKXHt7RhWJFbmd7qakVuf13i+IkGmp6FwSsONOf6VYIg== + version "2.0.1" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" + integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== define-properties@^1.1.3: version "1.1.3" @@ -4958,14 +4711,6 @@ depd@~1.1.2: resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= -des.js@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" - integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - destroy@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" @@ -4978,11 +4723,6 @@ detab@2.0.4, detab@^2.0.0: dependencies: repeat-string "^1.5.4" -detect-indent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" - integrity sha1-OHHMCmoALow+Wzz38zYmRnXwa50= - detect-libc@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" @@ -5001,10 +4741,10 @@ detect-node@^2.0.4: resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== -detect-port-alt@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/detect-port-alt/-/detect-port-alt-1.1.3.tgz#a4d2f061d757a034ecf37c514260a98750f2b131" - integrity sha1-pNLwYddXoDTs83xRQmCph1DysTE= +detect-port-alt@1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/detect-port-alt/-/detect-port-alt-1.1.6.tgz#24707deabe932d4a3cf621302027c2b266568275" + integrity sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q== dependencies: address "^1.0.1" debug "^2.6.0" @@ -5062,15 +4802,6 @@ diff@^4.0.1: resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - dir-glob@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" @@ -5165,11 +4896,6 @@ dom-walk@^0.1.0: resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== -domain-browser@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" - integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== - domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" @@ -5218,9 +4944,9 @@ domutils@^1.5.1, domutils@^1.7.0: domelementtype "1" domutils@^2.0.0, domutils@^2.4.3, domutils@^2.4.4: - version "2.4.4" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.4.4.tgz#282739c4b150d022d34699797369aad8d19bbbd3" - integrity sha512-jBC0vOsECI4OMdD0GC9mGn7NXPLb+Qt6KW1YDQzeQYRUFKmNG8lh7mO5HiELfr+lLQE7loDVI4QcAxV80HS+RA== + version "2.5.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.5.0.tgz#42f49cffdabb92ad243278b331fd761c1c2d3039" + integrity sha512-Ho16rzNMOFk2fPwChGh3D2D9OEHAfG19HgmRR2l+WLSsIstNsAYBzePH412bL0y5T44ejABIVfTHQ8nqi/tBCg== dependencies: dom-serializer "^1.0.1" domelementtype "^2.0.1" @@ -5233,13 +4959,6 @@ dot-case@^2.1.0: dependencies: no-case "^2.2.0" -dot-prop@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.1.tgz#45884194a71fc2cda71cbb4bceb3a4dd2f433ba4" - integrity sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ== - dependencies: - is-obj "^1.0.0" - dot-prop@^5.2.0: version "5.3.0" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" @@ -5297,38 +5016,15 @@ duplexer@^0.1.1: resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== -duplexify@^3.4.2, duplexify@^3.6.0: - version "3.7.1" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" - integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== - dependencies: - end-of-stream "^1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" - ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -electron-to-chromium@^1.3.649: - version "1.3.650" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.650.tgz#24e821fff2ed61fd71fee092f2a0631b3c0c22a6" - integrity sha512-j6pRuNylFBbroG6NB8Lw/Im9oDY74s2zWHBP5TmdYg73cBuL6cz//SMgolVa0gIJk/DSL+kO7baJ1DSXW1FUZg== - -elliptic@^6.5.3: - version "6.5.4" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" - integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== - dependencies: - bn.js "^4.11.9" - brorand "^1.1.0" - hash.js "^1.0.0" - hmac-drbg "^1.0.1" - inherits "^2.0.4" - minimalistic-assert "^1.0.1" - minimalistic-crypto-utils "^1.0.1" +electron-to-chromium@^1.3.564, electron-to-chromium@^1.3.649: + version "1.3.688" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.688.tgz#0ba54a3e77fca6561a337e6cca959b75db8683b0" + integrity sha512-tbKinYX7BomVBcWHzwGolzv3kqCdk/vQ36ao3MC8tQMXqs1ZpevYU2RTr7+hkDvGWtoQbe+nvvl+GfMFmRna/A== "emoji-regex@>=6.0.0 <=6.1.1": version "6.1.1" @@ -5346,9 +5042,9 @@ emoji-regex@^8.0.0: integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== emoji-regex@^9.0.0: - version "9.2.1" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.1.tgz#c9b25604256bb3428964bead3ab63069d736f7ee" - integrity sha512-117l1H6U4X3Krn+MrzYrL57d5H7siRHWraBs7s+LjRuFK7Fe7hJqnJ0skWlinqsycVLU5YAo6L8CsEYQ0V5prg== + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== emojis-list@^2.0.0: version "2.1.0" @@ -5372,54 +5068,56 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: dependencies: once "^1.4.0" -engine.io-client@~3.4.0: - version "3.4.4" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.4.4.tgz#77d8003f502b0782dd792b073a4d2cf7ca5ab967" - integrity sha512-iU4CRr38Fecj8HoZEnFtm2EiKGbYZcPn3cHxqNGl/tmdWRf60KhK+9vE0JeSjgnlS/0oynEfLgKbT9ALpim0sQ== +engine.io-client@~4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-4.1.2.tgz#823b4f005360321c41445fc23ce8ee028ef2e36b" + integrity sha512-1mwvwKYMa0AaCy+sPgvJ/SnKyO5MJZ1HEeXfA3Rm/KHkHGiYD5bQVq8QzvIrkI01FuVtOdZC5lWdRw1BGXB2NQ== dependencies: + base64-arraybuffer "0.1.4" component-emitter "~1.3.0" - component-inherit "0.0.3" - debug "~3.1.0" - engine.io-parser "~2.2.0" + debug "~4.3.1" + engine.io-parser "~4.0.1" has-cors "1.1.0" - indexof "0.0.1" parseqs "0.0.6" parseuri "0.0.6" - ws "~6.1.0" + ws "~7.4.2" xmlhttprequest-ssl "~1.5.4" yeast "0.1.2" -engine.io-parser@~2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.2.1.tgz#57ce5611d9370ee94f99641b589f94c97e4f5da7" - integrity sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg== +engine.io-parser@~4.0.0, engine.io-parser@~4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-4.0.2.tgz#e41d0b3fb66f7bf4a3671d2038a154024edb501e" + integrity sha512-sHfEQv6nmtJrq6TKuIz5kyEKH/qSdK56H/A+7DnAuUPWosnIZAS2NHNcPLmyjtY3cGS/MqJdZbUjW97JU72iYg== dependencies: - after "0.8.2" - arraybuffer.slice "~0.0.7" base64-arraybuffer "0.1.4" - blob "0.0.5" - has-binary2 "~1.0.2" -engine.io@~3.4.0: - version "3.4.2" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.4.2.tgz#8fc84ee00388e3e228645e0a7d3dfaeed5bd122c" - integrity sha512-b4Q85dFkGw+TqgytGPrGgACRUhsdKc9S9ErRAXpPGy/CXKs4tYoHDkvIRdsseAF7NjfVwjRFIn6KTnbw7LwJZg== +engine.io@~4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-4.1.1.tgz#9a8f8a5ac5a5ea316183c489bf7f5b6cf91ace5b" + integrity sha512-t2E9wLlssQjGw0nluF6aYyfX8LwYU8Jj0xct+pAhfWfv/YrBn6TSNtEYsgxHIfaMqfrLx07czcMg9bMN6di+3w== dependencies: accepts "~1.3.4" base64id "2.0.0" - cookie "0.3.1" - debug "~4.1.0" - engine.io-parser "~2.2.0" - ws "^7.1.2" + cookie "~0.4.1" + cors "~2.8.5" + debug "~4.3.1" + engine.io-parser "~4.0.0" + ws "~7.4.2" -enhanced-resolve@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec" - integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg== +enhanced-resolve@^5.7.0: + version "5.7.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.7.0.tgz#525c5d856680fbd5052de453ac83e32049958b5c" + integrity sha512-6njwt/NsZFUKhM6j9U8hzVyD4E4r0x7NQzhTCbcWOJ0IQjNSAoalWmb0AE51Wn+fwan5qVESWi7t2ToBxs9vrw== dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.5.0" - tapable "^1.0.0" + graceful-fs "^4.2.4" + tapable "^2.2.0" + +enquirer@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" entities@^1.1.1, entities@~1.1.1: version "1.1.2" @@ -5444,11 +5142,6 @@ envify@^4.0.0: esprima "^4.0.0" through "~2.3.4" -envinfo@^5.8.1: - version "5.12.1" - resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-5.12.1.tgz#83068c33e0972eb657d6bc69a6df30badefb46ef" - integrity sha512-pwdo0/G3CIkQ0y6PCXq4RdkvId2elvtPCJMG0konqlrfkWQbf1DWeH9K2b/cvu2YgGvPPTOnonZxXM1gikFu1w== - envinfo@^7.7.3: version "7.7.4" resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.7.4.tgz#c6311cdd38a0e86808c1c9343f667e4267c4a320" @@ -5459,7 +5152,7 @@ eol@^0.9.1: resolved "https://registry.yarnpkg.com/eol/-/eol-0.9.1.tgz#f701912f504074be35c6117a5c4ade49cd547acd" integrity sha512-Ds/TEoZjwggRoz/Q2O7SE3i4Jm66mqTDfmdHdq/7DKVk3bro9Q8h6WdXKdPqFLMoqxrDK5SVRzHVPOS6uuGtrg== -errno@^0.1.3, errno@~0.1.7: +errno@^0.1.3: version "0.1.8" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== @@ -5473,49 +5166,39 @@ error-ex@^1.2.0, error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -error-stack-parser@^2.0.0, error-stack-parser@^2.0.6: +error-stack-parser@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.0.6.tgz#5a99a707bd7a4c58a797902d48d82803ede6aad8" integrity sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ== dependencies: stackframe "^1.1.1" -es-abstract@^1.17.2: - version "1.17.7" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.7.tgz#a4de61b2f66989fc7421676c1cb9787573ace54c" - integrity sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g== - dependencies: - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - is-callable "^1.2.2" - is-regex "^1.1.1" - object-inspect "^1.8.0" - object-keys "^1.1.1" - object.assign "^4.1.1" - string.prototype.trimend "^1.0.1" - string.prototype.trimstart "^1.0.1" - -es-abstract@^1.18.0-next.1: - version "1.18.0-next.2" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.2.tgz#088101a55f0541f595e7e057199e27ddc8f3a5c2" - integrity sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw== +es-abstract@^1.17.2, es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2: + version "1.18.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0.tgz#ab80b359eecb7ede4c298000390bc5ac3ec7b5a4" + integrity sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw== dependencies: call-bind "^1.0.2" es-to-primitive "^1.2.1" function-bind "^1.1.1" - get-intrinsic "^1.0.2" + get-intrinsic "^1.1.1" has "^1.0.3" - has-symbols "^1.0.1" - is-callable "^1.2.2" + has-symbols "^1.0.2" + is-callable "^1.2.3" is-negative-zero "^2.0.1" - is-regex "^1.1.1" + is-regex "^1.1.2" + is-string "^1.0.5" object-inspect "^1.9.0" object-keys "^1.1.1" object.assign "^4.1.2" - string.prototype.trimend "^1.0.3" - string.prototype.trimstart "^1.0.3" + string.prototype.trimend "^1.0.4" + string.prototype.trimstart "^1.0.4" + unbox-primitive "^1.0.0" + +es-module-lexer@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.4.1.tgz#dda8c6a14d8f340a24e34331e0fab0cb50438e0e" + integrity sha512-ooYciCUtfw6/d2w56UVeqHPcoCFAiJdz5XOkYpv/Txl1HMUozpXjz/2RIQgqwKdXNDPSF1W7mJCFse3G+HDyAA== es-to-primitive@^1.2.1: version "1.2.1" @@ -5535,7 +5218,7 @@ es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@^0.10.53, es5-ext@ es6-symbol "~3.1.3" next-tick "~1.0.0" -es6-iterator@^2.0.3, es6-iterator@~2.0.3: +es6-iterator@2.0.3, es6-iterator@^2.0.3, es6-iterator@~2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= @@ -5567,7 +5250,7 @@ es6-weak-map@^2.0.3: es6-iterator "^2.0.3" es6-symbol "^3.1.1" -escalade@^3.1.1: +escalade@^3.0.2, escalade@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== @@ -5582,27 +5265,27 @@ escape-html@~1.0.3: resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= -escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -escape-string-regexp@^2.0.0: +escape-string-regexp@2.0.0, escape-string-regexp@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + escape-string-regexp@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -eslint-config-react-app@^5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-5.2.1.tgz#698bf7aeee27f0cea0139eaef261c7bf7dd623df" - integrity sha512-pGIZ8t0mFLcV+6ZirRgYK6RVqUIKRIi9MmgzUEmrIknsn3AdO0I32asO86dJgloHq+9ZPl8UIg8mYrvgP5u2wQ== +eslint-config-react-app@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-6.0.0.tgz#ccff9fc8e36b322902844cbd79197982be355a0e" + integrity sha512-bpoAAC+YRfzq0dsTk+6v9aHm/uqnDwayNAXleMypGl6CpxI9oXXscVHo4fk3eJPIn+rsbtNetB4r/ZIidFIE8A== dependencies: - confusing-browser-globals "^1.0.9" + confusing-browser-globals "^1.0.10" eslint-import-resolver-node@^0.3.4: version "0.3.4" @@ -5612,17 +5295,6 @@ eslint-import-resolver-node@^0.3.4: debug "^2.6.9" resolve "^1.13.1" -eslint-loader@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-2.2.1.tgz#28b9c12da54057af0845e2a6112701a2f6bf8337" - integrity sha512-RLgV9hoCVsMLvOxCuNjdqOrUqIj9oJg8hF44vzJaYqsAHuY9G2YAeN3joQ9nxP0p5Th9iFSIpKo+SD8KISxXRg== - dependencies: - loader-fs-cache "^1.0.0" - loader-utils "^1.0.2" - object-assign "^4.0.1" - object-hash "^1.1.4" - rimraf "^2.6.1" - eslint-module-utils@^2.6.0: version "2.6.0" resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz#579ebd094f56af7797d19c9866c9c9486629bfa6" @@ -5631,12 +5303,13 @@ eslint-module-utils@^2.6.0: debug "^2.6.9" pkg-dir "^2.0.0" -eslint-plugin-flowtype@^3.13.0: - version "3.13.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-3.13.0.tgz#e241ebd39c0ce519345a3f074ec1ebde4cf80f2c" - integrity sha512-bhewp36P+t7cEV0b6OdmoRWJCBYRiHFlqPZAG1oS3SF+Y0LQkeDvFSM4oxoxvczD1OdONCXMlJfQFiWLcV9urw== +eslint-plugin-flowtype@^5.3.1: + version "5.4.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-5.4.0.tgz#a559526e56403cb97b470b524957fc526e2485fe" + integrity sha512-O0s0iTT5UxYuoOpHMLSIO2qZMyvrb9shhk1EM5INNGtJ2CffrfUmsnh6TVsnoT41fkXIEndP630WNovhoO87xQ== dependencies: lodash "^4.17.15" + string-natural-compare "^3.0.1" eslint-plugin-graphql@^4.0.0: version "4.0.0" @@ -5648,7 +5321,7 @@ eslint-plugin-graphql@^4.0.0: lodash.flatten "^4.4.0" lodash.without "^4.4.0" -eslint-plugin-import@^2.22.0: +eslint-plugin-import@^2.22.1: version "2.22.1" resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz#0896c7e6a0cf44109a2d97b95903c2bb689d7702" integrity sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw== @@ -5667,7 +5340,7 @@ eslint-plugin-import@^2.22.0: resolve "^1.17.0" tsconfig-paths "^3.9.0" -eslint-plugin-jsx-a11y@^6.3.1: +eslint-plugin-jsx-a11y@^6.4.1: version "6.4.1" resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.4.1.tgz#a2d84caa49756942f42f1ffab9002436391718fd" integrity sha512-0rGPJBbwHoGNPU73/QCLP/vveMlM1b1Z9PponxO87jfr6tuH5ligXbDT6nHSSzBC8ovX2Z+BQu7Bk5D/Xgq9zg== @@ -5684,12 +5357,12 @@ eslint-plugin-jsx-a11y@^6.3.1: jsx-ast-utils "^3.1.0" language-tags "^1.0.5" -eslint-plugin-react-hooks@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-1.7.0.tgz#6210b6d5a37205f0b92858f895a4e827020a7d04" - integrity sha512-iXTCFcOmlWvw4+TOE8CLWj6yX1GwzT0Y6cUfHHZqWnSk144VmVIRcVGtUAzrLES7C798lmvnt02C7rxaOX1HNA== +eslint-plugin-react-hooks@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.2.0.tgz#8c229c268d468956334c943bb45fc860280f5556" + integrity sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ== -eslint-plugin-react@^7.20.6: +eslint-plugin-react@^7.22.0: version "7.22.0" resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.22.0.tgz#3d1c542d1d3169c45421c1215d9470e341707269" integrity sha512-p30tuX3VS+NWv9nQot9xIGAHBXR0+xJVaZriEsHoJrASGCJZDJ8JLNM0YqKqI0AKm6Uxaa1VUHoNEibxRCMQHA== @@ -5706,15 +5379,15 @@ eslint-plugin-react@^7.20.6: resolve "^1.18.1" string.prototype.matchall "^4.0.2" -eslint-scope@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" - integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== +eslint-scope@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.0.tgz#d0f971dfe59c69e0cada684b23d49dbf82600ce5" + integrity sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w== dependencies: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-scope@^5.0.0: +eslint-scope@^5.0.0, eslint-scope@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== @@ -5722,86 +5395,95 @@ eslint-scope@^5.0.0: esrecurse "^4.3.0" estraverse "^4.1.1" -eslint-utils@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" - integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== - dependencies: - eslint-visitor-keys "^1.1.0" - -eslint-utils@^2.0.0: +eslint-utils@^2.0.0, eslint-utils@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== dependencies: eslint-visitor-keys "^1.1.0" -eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0: +eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== -eslint@^6.8.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb" - integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig== +eslint-visitor-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" + integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== + +eslint-webpack-plugin@^2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/eslint-webpack-plugin/-/eslint-webpack-plugin-2.5.2.tgz#4ee17577d6392bf72048080a1678d6237183db81" + integrity sha512-ndD9chZ/kaGnjjx7taRg7c6FK/YKb29SSYzaLtPBIYLYJQmZtuKqtQbAvTS2ymiMQT6X0VW9vZIHK0KLstv93Q== dependencies: - "@babel/code-frame" "^7.0.0" + "@types/eslint" "^7.2.6" + arrify "^2.0.1" + jest-worker "^26.6.2" + micromatch "^4.0.2" + schema-utils "^3.0.0" + +eslint@^7.20.0: + version "7.22.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.22.0.tgz#07ecc61052fec63661a2cab6bd507127c07adc6f" + integrity sha512-3VawOtjSJUQiiqac8MQc+w457iGLfuNGLFn8JmF051tTKbh5/x/0vlcEj8OgDCaw7Ysa2Jn8paGshV7x2abKXg== + dependencies: + "@babel/code-frame" "7.12.11" + "@eslint/eslintrc" "^0.4.0" ajv "^6.10.0" - chalk "^2.1.0" - cross-spawn "^6.0.5" + chalk "^4.0.0" + cross-spawn "^7.0.2" debug "^4.0.1" doctrine "^3.0.0" - eslint-scope "^5.0.0" - eslint-utils "^1.4.3" - eslint-visitor-keys "^1.1.0" - espree "^6.1.2" - esquery "^1.0.1" + enquirer "^2.3.5" + eslint-scope "^5.1.1" + eslint-utils "^2.1.0" + eslint-visitor-keys "^2.0.0" + espree "^7.3.1" + esquery "^1.4.0" esutils "^2.0.2" - file-entry-cache "^5.0.1" + file-entry-cache "^6.0.1" functional-red-black-tree "^1.0.1" glob-parent "^5.0.0" - globals "^12.1.0" + globals "^13.6.0" ignore "^4.0.6" import-fresh "^3.0.0" imurmurhash "^0.1.4" - inquirer "^7.0.0" is-glob "^4.0.0" js-yaml "^3.13.1" json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.3.0" - lodash "^4.17.14" + levn "^0.4.1" + lodash "^4.17.21" minimatch "^3.0.4" - mkdirp "^0.5.1" natural-compare "^1.4.0" - optionator "^0.8.3" + optionator "^0.9.1" progress "^2.0.0" - regexpp "^2.0.1" - semver "^6.1.2" - strip-ansi "^5.2.0" - strip-json-comments "^3.0.1" - table "^5.2.3" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" + table "^6.0.4" text-table "^0.2.0" v8-compile-cache "^2.0.3" -espree@^6.1.2: - version "6.2.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a" - integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw== +espree@^7.3.0, espree@^7.3.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" + integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== dependencies: - acorn "^7.1.1" - acorn-jsx "^5.2.0" - eslint-visitor-keys "^1.1.0" + acorn "^7.4.0" + acorn-jsx "^5.3.1" + eslint-visitor-keys "^1.3.0" esprima@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esquery@^1.0.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" - integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== +esquery@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" + integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== dependencies: estraverse "^5.1.0" @@ -5833,9 +5515,9 @@ etag@~1.8.1: integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= eval@^0.1.0, eval@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/eval/-/eval-0.1.4.tgz#e05dbe0dab4b9330215cbb7bf4886eb24bd58700" - integrity sha512-npGsebJejyjMRnLdFu+T/97dnigqIU0Ov3IGrZ8ygd1v7RL1vGkEKtvyWZobqUH1AQgKlg0Yqqe2BtMA9/QZLw== + version "0.1.6" + resolved "https://registry.yarnpkg.com/eval/-/eval-0.1.6.tgz#9620d7d8c85515e97e6b47c5814f46ae381cb3cc" + integrity sha512-o0XUw+5OGkXw4pJZzQoXUk+H87DHuC+7ZE//oSrRGtatTmr12oTnLfg6QOq9DyTt0c/p4TwzgmkKrBzWTSizyQ== dependencies: require-like ">= 0.1.1" @@ -5862,17 +5544,10 @@ events@^1.1.0, events@^1.1.1: resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" integrity sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ= -events@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379" - integrity sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg== - -eventsource@0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-0.1.6.tgz#0acede849ed7dd1ccc32c811bb11b944d4f29232" - integrity sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI= - dependencies: - original ">=0.0.5" +events@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== eventsource@1.0.7, eventsource@^1.0.7: version "1.0.7" @@ -5881,14 +5556,6 @@ eventsource@1.0.7, eventsource@^1.0.7: dependencies: original "^1.0.0" -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - execa@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" @@ -5902,19 +5569,6 @@ execa@^0.7.0: signal-exit "^3.0.0" strip-eof "^1.0.0" -execa@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-0.8.0.tgz#d8d76bbc1b55217ed190fd6dd49d3c774ecfc8da" - integrity sha1-2NdrvBtVIX7RkP1t1J08d07PyNo= - dependencies: - cross-spawn "^5.0.1" - get-stream "^3.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - execa@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" @@ -5989,13 +5643,6 @@ expand-template@^2.0.3: resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== -expand-tilde@^2.0.0, expand-tilde@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" - integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= - dependencies: - homedir-polyfill "^1.0.1" - express-graphql@^0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/express-graphql/-/express-graphql-0.9.0.tgz#00fd8552f866bac5c9a4612b2c4c82076107b3c2" @@ -6084,15 +5731,6 @@ extend@^3.0.0, extend@^3.0.2: resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== -external-editor@^2.0.4: - version "2.2.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" - integrity sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A== - dependencies: - chardet "^0.4.0" - iconv-lite "^0.4.17" - tmp "^0.0.33" - external-editor@^3.0.3: version "3.1.0" resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" @@ -6148,7 +5786,7 @@ fast-json-stable-stringify@^2.0.0: resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: +fast-levenshtein@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= @@ -6158,15 +5796,10 @@ fastest-levenshtein@^1.0.12: resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz#9990f7d3a88cc5a9ffd1f1745745251700d497e2" integrity sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow== -fastparse@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9" - integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ== - fastq@^1.10.0, fastq@^1.6.0: - version "1.10.1" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.10.1.tgz#8b8f2ac8bf3632d67afcd65dac248d5fdc45385e" - integrity sha512-AWuv6Ery3pM+dY7LYS8YIaCiQvUaos9OB1RyNgaOWnaX+Tik7Onvcsf8x8c+YtDeT0maYLniBip2hox5KtEXXA== + version "1.11.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.11.0.tgz#bb9fb955a07130a918eb63c1f5161cc32a5d0858" + integrity sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g== dependencies: reusify "^1.0.4" @@ -6177,7 +5810,7 @@ fault@^1.0.1: dependencies: format "^0.2.0" -faye-websocket@^0.11.3, faye-websocket@~0.11.0: +faye-websocket@^0.11.3: version "0.11.3" resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" integrity sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA== @@ -6196,11 +5829,6 @@ fd@~0.0.2: resolved "https://registry.yarnpkg.com/fd/-/fd-0.0.3.tgz#b3240de86dbf5a345baae7382a07d4713566ff0c" integrity sha512-iAHrIslQb3U68OcMSP0kkNWabp7sSN6d2TBSb2JO3gcLJVDd4owr/hKM4SFJovFOUeeXeItjYgouEDTMWiVAnA== -figgy-pudding@^3.5.1: - version "3.5.2" - resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" - integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== - figures@^1.3.5: version "1.7.0" resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" @@ -6209,13 +5837,6 @@ figures@^1.3.5: escape-string-regexp "^1.0.5" object-assign "^4.1.0" -figures@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" - integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= - dependencies: - escape-string-regexp "^1.0.5" - figures@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" @@ -6223,20 +5844,20 @@ figures@^3.0.0: dependencies: escape-string-regexp "^1.0.5" -file-entry-cache@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" - integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== dependencies: - flat-cache "^2.0.1" + flat-cache "^3.0.4" -file-loader@^1.1.11: - version "1.1.11" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-1.1.11.tgz#6fe886449b0f2a936e43cabaac0cdbfb369506f8" - integrity sha512-TGR4HU7HUsGg6GCOPJnFk06RhWgEWFLAGWiT6rcD+GRC2keU3s9RGJ+b3Z6/U73jwwNb2gKLJ7YCrp+jvU4ALg== +file-loader@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d" + integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw== dependencies: - loader-utils "^1.0.2" - schema-utils "^0.4.5" + loader-utils "^2.0.0" + schema-utils "^3.0.0" file-type@5.2.0, file-type@^5.2.0: version "5.2.0" @@ -6248,10 +5869,10 @@ file-type@^12.0.0: resolved "https://registry.yarnpkg.com/file-type/-/file-type-12.4.2.tgz#a344ea5664a1d01447ee7fb1b635f72feb6169d9" integrity sha512-UssQP5ZgIOKelfsaB5CuGAL+Y+q7EmONuiwF3N5HAH0t27rvrttgi6Ra9k/+DVaY9UF6+ybxu5pOXLUdA8N7Vg== -file-type@^16.0.0: - version "16.2.0" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-16.2.0.tgz#d4f1da71ddda758db7f15f93adfaed09ce9e2715" - integrity sha512-1Wwww3mmZCMmLjBfslCluwt2mxH80GsAXYrvPnfQ42G1EGWag336kB1iyCgyn7UXiKY3cJrNykXPrCwA7xb5Ag== +file-type@^16.0.0, file-type@^16.2.0: + version "16.3.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-16.3.0.tgz#f03af91db30f92cc9a0b335c0644c46101522f6d" + integrity sha512-ZA0hV64611vJT42ltw0T9IDwHApQuxRdrmQZWTeDmeAUtZBBVSQW3nSQqhhW1cAgpXgqcJvm410BYHXJQ9AymA== dependencies: readable-web-to-node-stream "^3.0.0" strtok3 "^6.0.3" @@ -6311,10 +5932,10 @@ filenamify@^4.2.0: strip-outer "^1.0.1" trim-repeated "^1.0.0" -filesize@3.5.11: - version "3.5.11" - resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.5.11.tgz#1919326749433bb3cf77368bd158caabcc19e9ee" - integrity sha512-ZH7loueKBoDb7yG9esn1U+fgq7BzlzW6NRi5/rMdxIZ05dj7GFD/Xc5rq2CDt5Yq86CyfSYVyx4242QQNZbx1g== +filesize@6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/filesize/-/filesize-6.1.0.tgz#e81bdaa780e2451d714d71c0d7a4f3238d37ad00" + integrity sha512-LpCHtPQ3sFx67z+uh2HnSyWSLLu5Jxo21795uRDuar/EOuYWXib5EmPaGIBuSnRqH2IODiKA2k5re/K9OnN/Yg== fill-range@^4.0.0: version "4.0.0" @@ -6333,6 +5954,11 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" +filter-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-1.1.0.tgz#9b311112bc6c6127a16e016c6c5d7f19e0805c5b" + integrity sha1-mzERErxsYSehbgFsbF1/GeCAXFs= + finalhandler@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" @@ -6346,24 +5972,6 @@ finalhandler@~1.1.2: statuses "~1.5.0" unpipe "~1.0.0" -find-cache-dir@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9" - integrity sha1-yN765XyKUqinhPnjHFfHQumToLk= - dependencies: - commondir "^1.0.1" - mkdirp "^0.5.1" - pkg-dir "^1.0.0" - -find-cache-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" - integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== - dependencies: - commondir "^1.0.1" - make-dir "^2.0.0" - pkg-dir "^3.0.0" - find-cache-dir@^3.3.1: version "3.3.1" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" @@ -6373,6 +5981,14 @@ find-cache-dir@^3.3.1: make-dir "^3.0.2" pkg-dir "^4.1.0" +find-up@4.1.0, find-up@^4.0.0, find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + find-up@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" @@ -6395,22 +6011,6 @@ find-up@^3.0.0: dependencies: locate-path "^3.0.0" -find-up@^4.0.0, find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - find-versions@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-3.2.0.tgz#10297f98030a786829681690545ef659ed1d254e" @@ -6418,39 +6018,23 @@ find-versions@^3.0.0: dependencies: semver-regex "^2.0.0" -find-versions@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-4.0.0.tgz#3c57e573bf97769b8cb8df16934b627915da4965" - integrity sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ== - dependencies: - semver-regex "^3.1.2" - -flat-cache@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" - integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== +flat-cache@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== dependencies: - flatted "^2.0.0" - rimraf "2.6.3" - write "1.0.3" + flatted "^3.1.0" + rimraf "^3.0.2" -flatted@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" - integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== - -flush-write-stream@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" - integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== - dependencies: - inherits "^2.0.3" - readable-stream "^2.3.6" +flatted@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469" + integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA== follow-redirects@^1.0.0, follow-redirects@^1.10.0: - version "1.13.2" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.2.tgz#dd73c8effc12728ba5cf4259d760ea5fb83e3147" - integrity sha512-6mPTgLxYm3r6Bkkg0vNM0HTjfGrOEtsfbhagQvbxDEsEkpNhw582upBaoRZylzen6krEmxXJgt9Ju6HiI4O7BA== + version "1.13.3" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.3.tgz#e5598ad50174c1bc4e872301e82ac2cd97f90267" + integrity sha512-DUgl6+HDzB0iEptNQEXLx/KhTmDb8tZUHSeLqpnjpknR70H0nC2t9N73BK6fN4hOvJ84pKlIQVQ4k5FFlBedKA== for-each@^0.3.3: version "0.3.3" @@ -6469,19 +6053,32 @@ foreach@^2.0.5: resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k= -form-data@^2.3.2: - version "2.5.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4" - integrity sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA== +fork-ts-checker-webpack-plugin@4.1.6: + version "4.1.6" + resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-4.1.6.tgz#5055c703febcf37fa06405d400c122b905167fc5" + integrity sha512-DUxuQaKoqfNne8iikd14SAkh5uw4+8vNifp6gmA73yYNS6ywLIWSLD/n/mBzHQRpW3J7rbATEakmiA8JvkTyZw== + dependencies: + "@babel/code-frame" "^7.5.5" + chalk "^2.4.1" + micromatch "^3.1.10" + minimatch "^3.0.4" + semver "^5.6.0" + tapable "^1.0.0" + worker-rpc "^0.1.0" + +form-data@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== dependencies: asynckit "^0.4.0" - combined-stream "^1.0.6" + combined-stream "^1.0.8" mime-types "^2.1.12" form-data@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.0.tgz#31b7e39c85f1355b7139ee0c647cf0de7f83c682" - integrity sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg== + version "3.0.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" + integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== dependencies: asynckit "^0.4.0" combined-stream "^1.0.8" @@ -6497,6 +6094,11 @@ forwarded@~0.1.2: resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= +fraction.js@^4.0.13: + version "4.0.13" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.0.13.tgz#3c1c315fa16b35c85fffa95725a36fa729c69dfe" + integrity sha512-E1fz2Xs9ltlUp+qbiyx9wmt2n9dRzPsS11Jtdb8D2o+cC7wr9xkkKsVKJuBX0ST+LVS+LhLO+SbLJNtfWcJvXA== + fragment-cache@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" @@ -6509,7 +6111,7 @@ fresh@0.5.2: resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= -from2@^2.1.0, from2@^2.1.1: +from2@^2.1.1: version "2.3.0" resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= @@ -6532,15 +6134,6 @@ fs-exists-cached@1.0.0, fs-exists-cached@^1.0.0: resolved "https://registry.yarnpkg.com/fs-exists-cached/-/fs-exists-cached-1.0.0.tgz#cf25554ca050dc49ae6656b41de42258989dcbce" integrity sha1-zyVVTKBQ3EmuZla0HeQiWJidy84= -fs-extra@^4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" - integrity sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - fs-extra@^7.0.0: version "7.0.1" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" @@ -6576,15 +6169,10 @@ fs-minipass@^2.0.0: dependencies: minipass "^3.0.0" -fs-write-stream-atomic@^1.0.8: - version "1.0.10" - resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" - integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= - dependencies: - graceful-fs "^4.1.2" - iferr "^0.1.5" - imurmurhash "^0.1.4" - readable-stream "1 || 2" +fs-monkey@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.1.tgz#4a82f36944365e619f4454d9fff106553067b781" + integrity sha512-fcSa+wyTqZa46iWweI7/ZiUfegOZl0SG8+dltIwFXo7+zYU9J9kpS3NB6pZcSlJdhvIwp81Adx2XhZorncxiaA== fs.realpath@^1.0.0: version "1.0.0" @@ -6600,9 +6188,9 @@ fsevents@^1.2.7: nan "^2.12.1" fsevents@~2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.1.tgz#b209ab14c61012636c8863507edf7fb68cc54e9f" - integrity sha512-YR47Eg4hChJGAB1O3yEAOkGO+rlzutoICGqGo9EZ4lKWokzZRSyIW1QmTzqjtw8MJdj9srP869CuWw/hyzSiBw== + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== function-bind@^1.1.1: version "1.1.1" @@ -6614,34 +6202,10 @@ functional-red-black-tree@^1.0.1: resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= -gatsby-cli@^1.1.58: - version "1.1.58" - resolved "https://registry.yarnpkg.com/gatsby-cli/-/gatsby-cli-1.1.58.tgz#5dda246b9877ab925f6a512f723c20557af22d57" - integrity sha1-Xdoka5h3q5JfalEvcjwgVXryLVc= - dependencies: - babel-code-frame "^6.26.0" - babel-runtime "^6.26.0" - bluebird "^3.5.0" - common-tags "^1.4.0" - convert-hrtime "^2.0.0" - core-js "^2.5.0" - envinfo "^5.8.1" - execa "^0.8.0" - fs-extra "^4.0.1" - hosted-git-info "^2.5.0" - lodash "^4.17.4" - pretty-error "^2.1.1" - resolve-cwd "^2.0.0" - source-map "^0.5.7" - stack-trace "^0.0.10" - update-notifier "^2.3.0" - yargs "^11.1.0" - yurnalist "^0.2.1" - -gatsby-cli@^2.12.93, gatsby-cli@^2.19.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/gatsby-cli/-/gatsby-cli-2.19.0.tgz#b6e42906663e333594d59a546c4ad76f62522e51" - integrity sha512-a9iRf5cnBwwmrtg/tCLi9AkEY6QbPWrskCHFXDBpC8L694baZ/hvPo5vwNc/4T+S6km/vNFivJSvavB088eM1Q== +gatsby-cli@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/gatsby-cli/-/gatsby-cli-3.0.0.tgz#76842780971a15e78c8219118796d18ebe354b54" + integrity sha512-5vVKmj6D1n71xxD/xwCmmh3O4ixG6sCUeFMAbnA8NlhxXiQSrMOhKlozOmLLa8abrvcR/SQLFzEadSxgG5WE8g== dependencies: "@babel/code-frame" "^7.10.4" "@hapi/joi" "^15.1.1" @@ -6652,14 +6216,14 @@ gatsby-cli@^2.12.93, gatsby-cli@^2.19.0: common-tags "^1.8.0" configstore "^5.0.1" convert-hrtime "^3.0.0" - create-gatsby "^0.5.0" + create-gatsby "^1.0.0" envinfo "^7.7.3" execa "^3.4.0" fs-exists-cached "^1.0.0" fs-extra "^8.1.0" - gatsby-core-utils "^1.10.0" - gatsby-recipes "^0.9.0" - gatsby-telemetry "^1.10.0" + gatsby-core-utils "^2.0.0" + gatsby-recipes "^0.11.0" + gatsby-telemetry "^2.0.0" hosted-git-info "^3.0.6" is-valid-path "^0.1.1" lodash "^4.17.20" @@ -6682,78 +6246,69 @@ gatsby-cli@^2.12.93, gatsby-cli@^2.19.0: yoga-layout-prebuilt "^1.9.6" yurnalist "^2.1.0" -gatsby-core-utils@^1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/gatsby-core-utils/-/gatsby-core-utils-1.10.0.tgz#7df5bc7b7e810c71602d5ec18a925e8a7890fb45" - integrity sha512-uI5gJXmVHegn8E/vttoX0BaXRJPC73RzxuZDtl2U5WBEgeg+VVkKCmNVQE9Xk+Qstm2Wd6RU+QJ4LMx5ywYZhQ== +gatsby-core-utils@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/gatsby-core-utils/-/gatsby-core-utils-2.0.0.tgz#00fdc1f2efcaabe7426e63b020a7117ca613780c" + integrity sha512-+DrClKZ/ScTbzhIHZXuU3DoIhEJ95uJV+swR7VVqYVhEpV1CnjUGR/dB+tMd0VqlPdrXB38FuR8O5kuSvYm+/A== dependencies: ci-info "2.0.0" configstore "^5.0.1" + file-type "^16.2.0" fs-extra "^8.1.0" node-object-hash "^2.0.0" proper-lockfile "^4.1.1" tmp "^0.2.1" xdg-basedir "^4.0.0" -gatsby-graphiql-explorer@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/gatsby-graphiql-explorer/-/gatsby-graphiql-explorer-0.11.0.tgz#2fe20ddb756180cf3a86defb2f24326ba0c9b062" - integrity sha512-mmxQhQSDUkbtOhQUek9a9sSg6LpiQUytNNR2hec8iklau2D4MDA5CvHTk9GUGhjdUgtnHSe/MPyZVJGmXSnYAA== - dependencies: - "@babel/runtime" "^7.12.5" - -gatsby-image@^2.4.1: - version "2.11.0" - resolved "https://registry.yarnpkg.com/gatsby-image/-/gatsby-image-2.11.0.tgz#5bbd02c3dcf78291131de26da061b4180bb67e6e" - integrity sha512-H1va64RgXizYXONhoqB3rAdSqALZi0hkBYqEsc0peVEYzb2maRhEwOchg65hKvp3HT/ahnfrik59epRguYvi/g== +gatsby-graphiql-explorer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gatsby-graphiql-explorer/-/gatsby-graphiql-explorer-1.0.0.tgz#5de202dfcf266f4b5e661230e3b862b43c5d3682" + integrity sha512-1ZoeCAEWDLhHLlRwIWG8HjiylgezSXksOYgVn3GfkgwySzFrpqR2CZQlPF342RCoIX2LgcOs2s9It8WT1MDc1A== dependencies: "@babel/runtime" "^7.12.5" - object-fit-images "^3.2.4" - prop-types "^15.7.2" -gatsby-legacy-polyfills@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/gatsby-legacy-polyfills/-/gatsby-legacy-polyfills-0.7.0.tgz#8ef8aeeb59b6679920489edb2493ac16bcd03c82" - integrity sha512-fHDJeFib1iNaFuNRMWOpTmu2aw0AZ1ViIzwY2ar4kL3X3fYDL4RLnoBaw6Fcyc/sCCYHdBDSGzb/imvsddkRaA== +gatsby-legacy-polyfills@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gatsby-legacy-polyfills/-/gatsby-legacy-polyfills-1.0.0.tgz#42e740b9a62df1a4be022b7519e77a504788f857" + integrity sha512-whGt//oMbsQvr2uok4qkd1MrlbpSKYXl1lifkwZnrHTvAAf5wreeOZKbzM/C3SWLb0lmD2X7WO7gAamOBj7PwA== dependencies: core-js-compat "^3.6.5" -gatsby-link@^2.11.0: - version "2.11.0" - resolved "https://registry.yarnpkg.com/gatsby-link/-/gatsby-link-2.11.0.tgz#15e99c89bdde1c99686ce53bda72beb3c9c39455" - integrity sha512-AYXxndlSx5mnYv+/PBPdPBRvdv1LeSGE3WO8uYj2ReYDSbhiAlF3KKz30D62ErartXP0deySPtRKx4Dd3nCFYw== +gatsby-link@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/gatsby-link/-/gatsby-link-3.0.1.tgz#7fdef329da4cc9e53f9a306a68024fa4faa9b00c" + integrity sha512-lHzlYoBHB5tP4/3fb4crtleductDMoi5DcC140u4KKo7JyDqp24v8zDrd/iYa3sHlZagx1CxAtkghsIOJJbnBg== dependencies: "@babel/runtime" "^7.12.5" "@types/reach__router" "^1.3.7" prop-types "^15.7.2" -gatsby-page-utils@^0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/gatsby-page-utils/-/gatsby-page-utils-0.9.0.tgz#2d78e3dfbd5217cb4dc03655ff1777c13810a431" - integrity sha512-79zJtMV18IpChR5Zxl4VbChWgmdzIwg0CTseywnR+gSh2RDDfy81UerttpvSMQcQOv3gezeHxikT3CeopA8Jpg== +gatsby-page-utils@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gatsby-page-utils/-/gatsby-page-utils-1.0.0.tgz#1a9a09cc19e26449950b683dbb7e52ce6d661641" + integrity sha512-2NwkABVWqMtlL4HV0JiJJdd94Hib+qi/sOi2zeASLKjw6Ow7p2wqBrI+O6IfOXlFt9T4xq0BbG6YyzyBAptWaA== dependencies: "@babel/runtime" "^7.12.5" bluebird "^3.7.2" chokidar "^3.5.1" fs-exists-cached "^1.0.0" - gatsby-core-utils "^1.10.0" + gatsby-core-utils "^2.0.0" glob "^7.1.6" lodash "^4.17.20" micromatch "^4.0.2" -gatsby-plugin-algolia@^0.16.3: - version "0.16.3" - resolved "https://registry.yarnpkg.com/gatsby-plugin-algolia/-/gatsby-plugin-algolia-0.16.3.tgz#f455cdc30d9b10ee3d417a9052167339109f0793" - integrity sha512-1ErBAsPtDL/uvUpweBCNpzkMFamXnYYUVdhFnpx488PFAl7N26I0Jsk+TcoHCMTTp9GGRahF8w7VBvv7jtKUAQ== +gatsby-plugin-algolia@^0.17.0: + version "0.17.0" + resolved "https://registry.yarnpkg.com/gatsby-plugin-algolia/-/gatsby-plugin-algolia-0.17.0.tgz#0db6c2d3a1682c8258507f363c43825e40da5392" + integrity sha512-QsMa2ofgIQiU12A0BsLfVc14FIKHBtsEKgGnqh+4OGA4GxaOD123Vp98qBzpiRnZe4mSCCNGMXD1j5ISWvT8ag== dependencies: algoliasearch "^3.24.5" - gatsby-cli "^1.1.58" lodash.chunk "^4.2.0" -gatsby-plugin-catch-links@^2.6.0: - version "2.10.0" - resolved "https://registry.yarnpkg.com/gatsby-plugin-catch-links/-/gatsby-plugin-catch-links-2.10.0.tgz#5ab86087367dc81be7a8c4b4db583be0b77e17ba" - integrity sha512-r+YBR6ChWOwb0VygrjtS6nrz0fv5KyZiyL0aa/6Na4st4D+PHqml2nuYtLx0+otxjscSjJXk+7eg04YDGEeFng== +gatsby-plugin-catch-links@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/gatsby-plugin-catch-links/-/gatsby-plugin-catch-links-3.0.0.tgz#ed7ea5b1cdc19e994222da8ed30387593c0ae02c" + integrity sha512-39ZqHBhOjCdhL7nQHRourd/y2mBvnMrGsUrNQCM2gKdA+IQqGm2ZQkzHVG8CkO0KaSjvM7QeXrXqGUoCeBUpJw== dependencies: "@babel/runtime" "^7.12.5" escape-string-regexp "^1.0.5" @@ -6763,28 +6318,28 @@ gatsby-plugin-google-fonts@^1.0.1: resolved "https://registry.yarnpkg.com/gatsby-plugin-google-fonts/-/gatsby-plugin-google-fonts-1.0.1.tgz#d71054f7bf207b9a8da227380369e18e6f4e0201" integrity sha512-p1NVkn27GUnDA5qHM+Z4cCcLCJIardzZXMon3640sT4xuL/AZJbsx3HEt2KY/5oZu0UXIkytkxzV2Da4rQeUIg== -gatsby-plugin-google-tagmanager@^2.10.0: - version "2.11.0" - resolved "https://registry.yarnpkg.com/gatsby-plugin-google-tagmanager/-/gatsby-plugin-google-tagmanager-2.11.0.tgz#e6fc5e662cc2e11451e8e4c5d762c73ee94b5916" - integrity sha512-TElfBrcitk3bYphBpfFv7rI+tYQ/SwKhQMNKj3J31yoVUh/GUu2/FnRwEpvNbfGkTql87DffxR/83mN4vUCWOA== +gatsby-plugin-google-tagmanager@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/gatsby-plugin-google-tagmanager/-/gatsby-plugin-google-tagmanager-3.0.0.tgz#7dfb88f6cc6edd1d0904c66bdd71f21dcf8f56d0" + integrity sha512-qhbmiEPUeexSgsWfHL1hs853W+xkC8zM6NzHlsAnnmPak0y76yFKsNppGz/UbrbD5SBzZ5i6xETVL84Ytqlm+A== dependencies: "@babel/runtime" "^7.12.5" -gatsby-plugin-manifest@^2.4.10: - version "2.12.0" - resolved "https://registry.yarnpkg.com/gatsby-plugin-manifest/-/gatsby-plugin-manifest-2.12.0.tgz#107bcffaf236fa3b8d2c0ee830bd617bc903273b" - integrity sha512-I+zkLQgR66n7kFfwEwOB2BEIIvCcO+jBUg5WNzKB9N8Hn20ebowU9G/wj01EcZ9A3N2qoe1yVeU+Lo0+kXR5pQ== +gatsby-plugin-manifest@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/gatsby-plugin-manifest/-/gatsby-plugin-manifest-3.0.0.tgz#4d5a7933bd2c539f9d35307812c4903e4c34b107" + integrity sha512-xmnppsXR0+CTQZhEmvcrbbV6rvOgO5ybE6Ywwv0bosSJxML3oBoo+kC8HCwK097Ppofgd1inSwNbJ5FB8wdNbQ== dependencies: "@babel/runtime" "^7.12.5" - gatsby-core-utils "^1.10.0" - gatsby-plugin-utils "^0.9.0" + gatsby-core-utils "^2.0.0" + gatsby-plugin-utils "^1.0.0" semver "^7.3.2" sharp "^0.27.0" -gatsby-plugin-mdx@^1.2.6: - version "1.10.0" - resolved "https://registry.yarnpkg.com/gatsby-plugin-mdx/-/gatsby-plugin-mdx-1.10.0.tgz#d814562fb4d7400038a2061048eb35c8bfe9a284" - integrity sha512-xoiW06TnJpdwWmqOcxcsyXf6KI1fUAWitH0zVaUpYo7use+ffoXCLsV7mU7F4x2ChcoE8eok7EhalYb582kISg== +gatsby-plugin-mdx@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/gatsby-plugin-mdx/-/gatsby-plugin-mdx-2.0.1.tgz#f3762a036ff9db5daa56dfdde313ddbdc67c05e3" + integrity sha512-wNMFTsa5u1KeESt3jyICy3fz5y3JhmKynFJ0J7YeTHm9EMoCclwfR4LRr1Mz9GLTIyWwvZEeVfwc7Vf5svXIvA== dependencies: "@babel/core" "^7.12.3" "@babel/generator" "^7.12.5" @@ -6801,7 +6356,7 @@ gatsby-plugin-mdx@^1.2.6: escape-string-regexp "^1.0.5" eval "^0.1.4" fs-extra "^8.1.0" - gatsby-core-utils "^1.10.0" + gatsby-core-utils "^2.0.0" gray-matter "^4.0.2" json5 "^2.1.3" loader-utils "^1.4.0" @@ -6830,10 +6385,10 @@ gatsby-plugin-meta-redirect@^1.1.1: dependencies: fs-extra "^7.0.0" -gatsby-plugin-netlify@^2.3.13: - version "2.11.0" - resolved "https://registry.yarnpkg.com/gatsby-plugin-netlify/-/gatsby-plugin-netlify-2.11.0.tgz#ad51b3e53df732266ee766bcaea69bd451f81670" - integrity sha512-L84m9sVZ7ZyF05QnuTPAfnr7tUS8lqg5PWN2hqXGSnf1g+9UFlIO3vxsGedQKqgkhjsnn8zVrmvvAtISZXT+bQ== +gatsby-plugin-netlify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/gatsby-plugin-netlify/-/gatsby-plugin-netlify-3.0.0.tgz#39d615fe86a8574324b7ac83923cebb56a81fe69" + integrity sha512-CwBU76pbrgEs3tUQidL8iH5f48QQQn4+3p0ze6pfO7u4eU3qkSaSMbrILzGfqh6yjN/bdDTFldfFmdENjC78Ew== dependencies: "@babel/runtime" "^7.12.5" fs-extra "^8.1.0" @@ -6850,24 +6405,24 @@ gatsby-plugin-nginx-redirect@^0.0.11: lodash "^4.17.20" nginx-conf "^1.5.0" -gatsby-plugin-page-creator@^2.10.0: - version "2.10.0" - resolved "https://registry.yarnpkg.com/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-2.10.0.tgz#81adbe8b03ef46f1553bb5b68abd6c85d3c25433" - integrity sha512-lOzHJpzKEs6DM8Jxci3VozNIxcCTDTwRP5ypK5+7Qx3TUVzcpW7MMgUiwLo9G1kznN2YPe9cuoiTj5wNBjdEfA== +gatsby-plugin-page-creator@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-3.0.0.tgz#546a7d7303d2af775bb07ca4663053efd7705e0a" + integrity sha512-xlywUGKkFZpPNXNJ64H/+aJ+ovFV4FK+cNxy+6M9PP10yayZqEtW+nNujil5yTJwPqcuBhtnQEmQrXhYgE/HqQ== dependencies: "@babel/traverse" "^7.12.5" "@sindresorhus/slugify" "^1.1.0" chokidar "^3.5.1" fs-exists-cached "^1.0.0" - gatsby-page-utils "^0.9.0" - gatsby-telemetry "^1.10.0" + gatsby-page-utils "^1.0.0" + gatsby-telemetry "^2.0.0" globby "^11.0.2" lodash "^4.17.20" -gatsby-plugin-react-helmet@^3.3.1: - version "3.10.0" - resolved "https://registry.yarnpkg.com/gatsby-plugin-react-helmet/-/gatsby-plugin-react-helmet-3.10.0.tgz#421bbee87157c351d19031d62145c2ab6c00ef94" - integrity sha512-TktmUysb7wDwYOKowNcpXxLJfQiwQ7cSQ8ALH3pJrW63wBaCoBXvAHg3OhgHVR74CrqN2Tb89tr3GXa4JhO4Qw== +gatsby-plugin-react-helmet@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/gatsby-plugin-react-helmet/-/gatsby-plugin-react-helmet-4.0.0.tgz#6d4fddc51a271859b21ec93645cdd0d3ad03b02c" + integrity sha512-l83wSwjF3Wq8ZHAFwhwx5EKQ67NUNCaZp9XDDplVQ+zFZ6dVAAax56wZLp6kQ++bYr+Hu9NOODLbLITtff+Eiw== dependencies: "@babel/runtime" "^7.12.5" @@ -6883,26 +6438,27 @@ gatsby-plugin-remove-fingerprints@^0.0.2: resolved "https://registry.yarnpkg.com/gatsby-plugin-remove-fingerprints/-/gatsby-plugin-remove-fingerprints-0.0.2.tgz#ef21a184e2f5deffe644aebd16b8d67f46a7d51b" integrity sha512-af1zbr0+cr3fcjEAVAbUia/On6GJbrxoLVNZf7TxLqKzPMfMlDNXf6hDXAJy0dzxE6qrqD2oyGZpk1rOdgUQ0Q== -gatsby-plugin-sass@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/gatsby-plugin-sass/-/gatsby-plugin-sass-3.2.0.tgz#1fe8f6c28fef964994681a509833eb731f1bf763" - integrity sha512-YlQX1Kn1wGcKCgyS8OfD0/W16XIRKvE/5wg6HRnUhJV03MNTB/41eRDsgGe0zLb3jb/aw1bH7leWcBVy0RoClA== +gatsby-plugin-sass@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/gatsby-plugin-sass/-/gatsby-plugin-sass-4.0.2.tgz#8d877ebe5d5bd9b1611e0f59f1dcf696dc8b400f" + integrity sha512-ngiC/3Kka2pljqzZ4ZoXOKC+cXq1StLlZc7+FLvRm555RTMfJqgHWM8FCELZ5j5hxlBHIZ5cZ9Ur8GbScQD58g== dependencies: "@babel/runtime" "^7.12.5" - sass-loader "^10.1.0" + resolve-url-loader "^3.1.2" + sass-loader "^10.1.1" -gatsby-plugin-sharp@^2.13.2: - version "2.14.0" - resolved "https://registry.yarnpkg.com/gatsby-plugin-sharp/-/gatsby-plugin-sharp-2.14.0.tgz#763600d1339b5d9197371aa7e1cca7a614ebd269" - integrity sha512-399SJ83vuqP2gkf0PdC1CXALNebPfaTxzuE3uF1LalemeXuBlR0YvVo5QG84AxhnEzTfg5hWKk36F5A36xX9ow== +gatsby-plugin-sharp@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/gatsby-plugin-sharp/-/gatsby-plugin-sharp-3.0.1.tgz#994a2a2a0305bd7d3e4aa698e30532c0b7cfba96" + integrity sha512-HL519LIhTmTySUPFO2IuwIHBlgo/0N7gJng2gu2XwD/DJ3ENgw5+SXmiVTwvERx7Pr5YVPECgYuszWdlYgJmgw== dependencies: "@babel/runtime" "^7.12.5" async "^3.2.0" bluebird "^3.7.2" filenamify "^4.2.0" fs-extra "^9.1.0" - gatsby-core-utils "^1.10.0" - gatsby-telemetry "^1.10.0" + gatsby-core-utils "^2.0.0" + gatsby-telemetry "^2.0.0" got "^10.7.0" imagemin "^7.0.1" imagemin-mozjpeg "^9.0.0" @@ -6917,10 +6473,10 @@ gatsby-plugin-sharp@^2.13.2: svgo "1.3.2" uuid "3.4.0" -gatsby-plugin-sitemap@^2.4.13: - version "2.12.0" - resolved "https://registry.yarnpkg.com/gatsby-plugin-sitemap/-/gatsby-plugin-sitemap-2.12.0.tgz#bd3dc88d59ee9a94b0131a28623d79eb738dc375" - integrity sha512-oY0SzFl7xDVfIp3f4dhsKuGknc6tLsZIdNWPB9jv3HEDIFpyohFjJ4tcH2rHG8Wm8ceW34XjgSW0fcyu/QQYxQ== +gatsby-plugin-sitemap@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/gatsby-plugin-sitemap/-/gatsby-plugin-sitemap-3.0.0.tgz#2a20670fc2e939f95e5fb186169be59919e7c2fd" + integrity sha512-LRcHozxOhUzMQ/noWz9m603oWixhhN1u+SOTl7t3XRVI+92sA/V1HuEHT2QvnMQ54TNhRC0aLl1gvBwMVsl7ng== dependencies: "@babel/runtime" "^7.12.5" common-tags "^1.8.0" @@ -6928,10 +6484,10 @@ gatsby-plugin-sitemap@^2.4.13: pify "^3.0.0" sitemap "^1.13.0" -gatsby-plugin-typescript@^2.12.0: - version "2.12.0" - resolved "https://registry.yarnpkg.com/gatsby-plugin-typescript/-/gatsby-plugin-typescript-2.12.0.tgz#44df6cfde747ab94c1984621e5bb749da94af959" - integrity sha512-Gb8mPdIgAmlxb/EgH7h5ewq3nMJ+oU640AyfTCAp9GtQspRztRRKjuGceJH3gDVq8bO6wFOWxdRVYIC2KZF9mw== +gatsby-plugin-typescript@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/gatsby-plugin-typescript/-/gatsby-plugin-typescript-3.0.0.tgz#09464dcab1f88d572ba2dedd970cef430a05fd5c" + integrity sha512-s9bhqc8FI12iu07KHzYeQ2yf2LRh0NsfPysKR5prhy9+tmtHT5n7r/JLYJ4AaEycuJfqBYLo4UbR5+WqwVe3sg== dependencies: "@babel/core" "^7.12.3" "@babel/plugin-proposal-nullish-coalescing-operator" "^7.12.1" @@ -6939,26 +6495,26 @@ gatsby-plugin-typescript@^2.12.0: "@babel/plugin-proposal-optional-chaining" "^7.12.1" "@babel/preset-typescript" "^7.12.1" "@babel/runtime" "^7.12.5" - babel-plugin-remove-graphql-queries "^2.16.0" + babel-plugin-remove-graphql-queries "^3.0.0" -gatsby-plugin-utils@^0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/gatsby-plugin-utils/-/gatsby-plugin-utils-0.9.0.tgz#64b35a0faaabad5b5c99ee8951a9c08cd64be289" - integrity sha512-InM8PNHtx1kF87qQOlf4pVeNA8lSIsvSjImvN6dvpUjeQqOMRN1avY0W9Trh6LKTF/keWWj975Gk8Vcr+PYyDA== +gatsby-plugin-utils@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gatsby-plugin-utils/-/gatsby-plugin-utils-1.0.0.tgz#1733a1a9c1704ddedbcf490684f590c7d1ddbe7e" + integrity sha512-Z7Yi/y03aObiQ8kkMQGpE5lkIN7GKLfXSDlmriuzU0g7XPUUBwuWQPFVG/hSb4f30KWJ1icBe+Ropivu17rURw== dependencies: joi "^17.2.1" -gatsby-react-router-scroll@^3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/gatsby-react-router-scroll/-/gatsby-react-router-scroll-3.7.0.tgz#4b519c517f09f263275d3ac9001efe3d1f2b5957" - integrity sha512-8sm04EQac7fccJZlllFEo349wAlNEuPVu35juuL0hgMDTyWlk4nPwPH/ACdpn2MgpEmrTSfp2yPxyzaRKVyzeQ== +gatsby-react-router-scroll@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/gatsby-react-router-scroll/-/gatsby-react-router-scroll-4.0.1.tgz#ac9b7722057b7f14a28136f77e6aa984dbceff03" + integrity sha512-I0owccfyHioK6V8LhbRXkQde9YPbiDzMyA3SGy7p9zRWO5lqmpJU/0g+qf7UAZYYTeoaDyYOP9pek6KcIUwf8Q== dependencies: "@babel/runtime" "^7.12.5" -gatsby-recipes@^0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/gatsby-recipes/-/gatsby-recipes-0.9.0.tgz#da439b1fdf7d93abd81632a8ec2f2b86cfde9ef3" - integrity sha512-+Kf5BBJRH+UKOeb3j7Y5c5AW9/oiL7enebXo/BKoPEI22nk97fDCB5p1dmAzo8S/WPODV3T/M8sWyvY2spWH2A== +gatsby-recipes@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/gatsby-recipes/-/gatsby-recipes-0.11.0.tgz#5138fd1ad34b766fe438387a35f019e3fa09c160" + integrity sha512-HJXVEKs71HFleUvaapEfqjZLqZOFRbr90uKSn75CsZNnv1SC2HJ2kTEGb4P67CoFlJx4QUG71mhYyT1kPyy+tQ== dependencies: "@babel/core" "^7.12.3" "@babel/generator" "^7.12.5" @@ -6983,11 +6539,11 @@ gatsby-recipes@^0.9.0: express "^4.17.1" express-graphql "^0.9.0" fs-extra "^8.1.0" - gatsby-core-utils "^1.10.0" - gatsby-telemetry "^1.10.0" + gatsby-core-utils "^2.0.0" + gatsby-telemetry "^2.0.0" glob "^7.1.6" - graphql "^14.6.0" - graphql-compose "^6.3.8" + graphql "^15.4.0" + graphql-compose "~7.25.0" graphql-subscriptions "^1.1.0" graphql-type-json "^0.3.2" hicat "^0.8.0" @@ -7019,10 +6575,10 @@ gatsby-recipes@^0.9.0: xstate "^4.9.1" yoga-layout-prebuilt "^1.9.6" -gatsby-remark-autolink-headers@^2.3.1: - version "2.11.0" - resolved "https://registry.yarnpkg.com/gatsby-remark-autolink-headers/-/gatsby-remark-autolink-headers-2.11.0.tgz#15164df535e408d9ba674a24ed5a412aaae8a609" - integrity sha512-4MhzE4zML/2v1xvhCO8ujUJHZUXqwe1mU9ptdKXocQhTZfek9Or5YWbKRT6hFEvalqhwqEwFabSyGVIWyT+5KQ== +gatsby-remark-autolink-headers@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/gatsby-remark-autolink-headers/-/gatsby-remark-autolink-headers-3.0.0.tgz#07c59916d84585332eb7d7a8f34e1763419f0f6c" + integrity sha512-0+ipbvxuK4hPBlrkNR17JuhZcHn6oogLdGD0V2mMUU3bdhy7493s2V4u8gj06GCQkuDdegN2oeBq2C60EFbZPQ== dependencies: "@babel/runtime" "^7.12.5" github-slugger "^1.3.0" @@ -7030,15 +6586,15 @@ gatsby-remark-autolink-headers@^2.3.1: mdast-util-to-string "^1.1.0" unist-util-visit "^1.4.1" -gatsby-remark-images@^3.10.0: - version "3.11.0" - resolved "https://registry.yarnpkg.com/gatsby-remark-images/-/gatsby-remark-images-3.11.0.tgz#e7cdf205c8c60f534292453e1a01dbb9c754936b" - integrity sha512-IjttA5Z3A5DG2rusdRqwGL6tfGoe7KO+Hu4izLcKfCXyh5aNpSPMD+L7lNuRLefL8cLA9C1w981PGGiRxiw0iw== +gatsby-remark-images@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/gatsby-remark-images/-/gatsby-remark-images-4.0.0.tgz#1a6f2421495e41cf34358a4ae4883a9f51225cb5" + integrity sha512-N6SZdZBbNoXpJO1dFceh1fSr0ac/ApslvEognsU6qpr2Rb9kocrF1qC9A+zh/nk82DQ8gVeL8COLfGtPb8T7mw== dependencies: "@babel/runtime" "^7.12.5" chalk "^4.1.0" cheerio "^1.0.0-rc.3" - gatsby-core-utils "^1.10.0" + gatsby-core-utils "^2.0.0" is-relative-url "^3.0.0" lodash "^4.17.20" mdast-util-definitions "^1.2.5" @@ -7047,26 +6603,26 @@ gatsby-remark-images@^3.10.0: unist-util-select "^1.5.0" unist-util-visit-parents "^2.1.2" -gatsby-remark-prismjs@^3.5.4: - version "3.13.0" - resolved "https://registry.yarnpkg.com/gatsby-remark-prismjs/-/gatsby-remark-prismjs-3.13.0.tgz#010c4f9371154536018d4488ee474066a438a0cb" - integrity sha512-6dEuXqSCoxgfiArhiK+QK07IBuheoEyXrSd6o8mZ9zqId4Clp/p3ponANwoB2WYQSQmMG6eUOX+eV9qias3ECA== +gatsby-remark-prismjs@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/gatsby-remark-prismjs/-/gatsby-remark-prismjs-4.0.0.tgz#2a0a4903bbdf0bceb7ca13803e0122bbe61f8ba0" + integrity sha512-/wbPlO4DqCQx1Tlscn76KWw4pi3Ha5qpgfep9aaceJwrkM0sUwD3MoLFvnnT2kl9gE5R1upUm8YLFJZKzJA08w== dependencies: "@babel/runtime" "^7.12.5" parse-numeric-range "^0.0.2" unist-util-visit "^1.4.1" -gatsby-source-filesystem@^2.3.1: - version "2.11.0" - resolved "https://registry.yarnpkg.com/gatsby-source-filesystem/-/gatsby-source-filesystem-2.11.0.tgz#3fff5398796b17eb960e83d0eaa99e578b6e4ef1" - integrity sha512-SLKksyfRvdMHyF0kb3YCr4ME6RW4Pje9zo1RVAJ1sqaBFDch0YUZzTE51QO586JSkrN00UeE8lU++ODXlm425g== +gatsby-source-filesystem@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/gatsby-source-filesystem/-/gatsby-source-filesystem-3.0.0.tgz#6f82e8eeac8772be2848bee9959f217c87f5b86e" + integrity sha512-t51BSxAqRKO/veY99U/TcsWA7C1MRIokOJHGHoJij1ZLBzvB2GMB7dNQHhAyHa7MWwfzAwd7jI/TJCJX9l0KlQ== dependencies: "@babel/runtime" "^7.12.5" better-queue "^3.8.10" chokidar "^3.4.3" file-type "^16.0.0" fs-extra "^8.1.0" - gatsby-core-utils "^1.10.0" + gatsby-core-utils "^2.0.0" got "^9.6.0" md5-file "^5.0.0" mime "^2.4.6" @@ -7075,10 +6631,10 @@ gatsby-source-filesystem@^2.3.1: valid-url "^1.0.9" xstate "^4.14.0" -gatsby-telemetry@^1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/gatsby-telemetry/-/gatsby-telemetry-1.10.0.tgz#8c8552df575e66d58ca785554e47306d9cbe53d2" - integrity sha512-lGUCwAASThIK5KtFwbVnQfthcKJRosxK70BrXy7c7h3FPSdbahy8DZvpuNz6beCAets3ZDGTXVzPGtzPZI1u6Q== +gatsby-telemetry@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/gatsby-telemetry/-/gatsby-telemetry-2.0.0.tgz#cf22d8dcee13c5e574569f8182204d3fa63a1805" + integrity sha512-ldEg8jFUW+7JFcMn+6TnH+xHfLM+VIhDvyOIbkAYZZ+rO/RWnCwM44ZZUUpRp4/Ivn/IAiubGwQyXErMHErbAg== dependencies: "@babel/code-frame" "^7.10.4" "@babel/runtime" "^7.12.5" @@ -7088,29 +6644,29 @@ gatsby-telemetry@^1.10.0: boxen "^4.2.0" configstore "^5.0.1" fs-extra "^8.1.0" - gatsby-core-utils "^1.10.0" + gatsby-core-utils "^2.0.0" git-up "^4.0.2" is-docker "^2.1.1" lodash "^4.17.20" node-fetch "^2.6.1" uuid "3.4.0" -gatsby-transformer-json@^2.4.3: - version "2.11.0" - resolved "https://registry.yarnpkg.com/gatsby-transformer-json/-/gatsby-transformer-json-2.11.0.tgz#a97603c76db256b890eb1e20922aa4d436b8357e" - integrity sha512-3619clIflEMl4OSo/Y9/6Uz+JrpSKKE9WI6i+ciCC7l7ER0lbsPNUBGxf1lXH1xgs5881+QiL8vNeiiwTYetIw== +gatsby-transformer-json@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/gatsby-transformer-json/-/gatsby-transformer-json-3.0.0.tgz#e8ab61ac5aa9aa7699c00d869c63b91ce37d606e" + integrity sha512-MyQZdoGbr1OEtFkAF1BAEvfhZKZVeD00yCX/9E/CSd/73jrBqxXqSWN2gIVx9HlPRbPUjmChMW6Nwx0z6GF+MA== dependencies: "@babel/runtime" "^7.12.5" bluebird "^3.7.2" -gatsby-transformer-remark@^2.8.15: - version "2.16.0" - resolved "https://registry.yarnpkg.com/gatsby-transformer-remark/-/gatsby-transformer-remark-2.16.0.tgz#dd9ef9d6b0a9154c7ab9c7f7a189f8e1dc645b7c" - integrity sha512-zphmbrW1HOAgAjZdmyEZQDfbrVeQT+Q6BKaF+x76Vwk7KV2TGqhGfwyU4wg7Kv3tOGMDSwr73hxQvKqtrAqZPw== +gatsby-transformer-remark@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/gatsby-transformer-remark/-/gatsby-transformer-remark-3.0.0.tgz#378e22176fc0ad9764df75d795445c3773d10ec7" + integrity sha512-vidJOLdDhisOfDipJcmGnUstoDKD/k88htw9Ixd87DR10/FZTm5fSiinN2cd5+H1tFCgqTikGCOoo9MrH9QKTg== dependencies: "@babel/runtime" "^7.12.5" bluebird "^3.7.2" - gatsby-core-utils "^1.10.0" + gatsby-core-utils "^2.0.0" gray-matter "^4.0.2" hast-util-raw "^4.0.0" hast-util-to-html "^4.0.1" @@ -7130,52 +6686,52 @@ gatsby-transformer-remark@^2.8.15: unist-util-select "^1.5.0" unist-util-visit "^1.4.1" -gatsby-transformer-sharp@^2.5.1: - version "2.12.0" - resolved "https://registry.yarnpkg.com/gatsby-transformer-sharp/-/gatsby-transformer-sharp-2.12.0.tgz#c33a92788e8b432f01960f4de2745c105cea4784" - integrity sha512-3rtukdy9+QZL5ioMs+q2IjevJFOz0ORJzoGbnM/ups5C5ZtRQKRZNQ0920BP/eqpLQLI4lkQuyp+GCxfSQLkCQ== +gatsby-transformer-sharp@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/gatsby-transformer-sharp/-/gatsby-transformer-sharp-3.0.0.tgz#7fb9806aef08966d2cb610cc6e814639075c931f" + integrity sha512-ydkUxYdoELPHcuE2OyTjgS3odcCikn6MPRC//dxPYDrIDMoJ6xPkbetTrshOEdGa2Yf02pp75Fs82PSeC+AXhA== dependencies: "@babel/runtime" "^7.12.5" bluebird "^3.7.2" + common-tags "^1.8.0" fs-extra "^9.1.0" potrace "^2.1.8" probe-image-size "^6.0.0" semver "^7.3.4" sharp "^0.27.0" -gatsby@^2.31.1: - version "2.32.0" - resolved "https://registry.yarnpkg.com/gatsby/-/gatsby-2.32.0.tgz#313eea05393f5e4fc4c979c0a450fa86a03773c7" - integrity sha512-i7he7/+evhK9bijEO8UQggJLoXdmBeSlF7yTALY4Mf63uqCxILpZz76sMbXP1c8vioC0nbghpf5akrtwj25Pvw== +gatsby@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/gatsby/-/gatsby-3.0.4.tgz#dce3e44cb85ee6a4cdc71a5be9b3485206bea0fc" + integrity sha512-LIBeox/O4XlgfpPYScS5LwFreWlZuuz4OZl0cnkA3M8EfxelHwLpqMvOeSYsoMHvogBJzlLocfRQIgzqvXS7kA== dependencies: "@babel/code-frame" "^7.10.4" "@babel/core" "^7.12.3" + "@babel/eslint-parser" "^7.13.4" "@babel/parser" "^7.12.5" "@babel/runtime" "^7.12.5" "@babel/traverse" "^7.12.5" "@babel/types" "^7.12.6" + "@gatsbyjs/reach-router" "^1.3.6" + "@gatsbyjs/webpack-hot-middleware" "^2.25.2" "@hapi/joi" "^15.1.1" "@mikaelkristiansson/domready" "^1.0.10" "@nodelib/fs.walk" "^1.2.4" - "@pieh/friendly-errors-webpack-plugin" "1.7.0-chalk-2" - "@pmmmwh/react-refresh-webpack-plugin" "^0.4.1" - "@reach/router" "^1.3.4" + "@pmmmwh/react-refresh-webpack-plugin" "^0.4.3" "@types/http-proxy" "^1.17.4" - "@typescript-eslint/eslint-plugin" "^2.24.0" - "@typescript-eslint/parser" "^2.24.0" + "@typescript-eslint/eslint-plugin" "^4.15.2" + "@typescript-eslint/parser" "^4.15.2" address "1.1.2" anser "^2.0.1" ansi-html "^0.0.7" - autoprefixer "^9.8.4" + autoprefixer "^10.2.4" axios "^0.21.1" - babel-core "7.0.0-bridge.0" - babel-eslint "^10.1.0" - babel-loader "^8.1.0" + babel-loader "^8.2.2" babel-plugin-add-module-exports "^1.0.4" babel-plugin-dynamic-import-node "^2.3.3" babel-plugin-lodash "^3.3.4" - babel-plugin-remove-graphql-queries "^2.16.0" - babel-preset-gatsby "^0.12.0" + babel-plugin-remove-graphql-queries "^3.0.0" + babel-preset-gatsby "^1.0.0" better-opn "^2.0.0" better-queue "^3.8.10" bluebird "^3.7.2" @@ -7186,50 +6742,51 @@ gatsby@^2.31.1: chokidar "^3.4.2" common-tags "^1.8.0" compression "^1.7.4" - convert-hrtime "^3.0.0" copyfiles "^2.3.0" core-js "^3.6.5" cors "^2.8.5" - css-loader "^1.0.1" + css-loader "^5.0.1" + css-minimizer-webpack-plugin "^1.2.0" + css.escape "^1.5.1" date-fns "^2.14.0" debug "^3.2.7" del "^5.1.0" detect-port "^1.3.0" devcert "^1.1.3" dotenv "^8.2.0" - eslint "^6.8.0" - eslint-config-react-app "^5.2.1" - eslint-loader "^2.2.1" - eslint-plugin-flowtype "^3.13.0" + eslint "^7.20.0" + eslint-config-react-app "^6.0.0" + eslint-plugin-flowtype "^5.3.1" eslint-plugin-graphql "^4.0.0" - eslint-plugin-import "^2.22.0" - eslint-plugin-jsx-a11y "^6.3.1" - eslint-plugin-react "^7.20.6" - eslint-plugin-react-hooks "^1.7.0" + eslint-plugin-import "^2.22.1" + eslint-plugin-jsx-a11y "^6.4.1" + eslint-plugin-react "^7.22.0" + eslint-plugin-react-hooks "^4.2.0" + eslint-webpack-plugin "^2.5.2" event-source-polyfill "^1.0.15" execa "^4.0.3" express "^4.17.1" express-graphql "^0.9.0" fastest-levenshtein "^1.0.12" fastq "^1.10.0" - file-loader "^1.1.11" + file-loader "^6.2.0" find-cache-dir "^3.3.1" fs-exists-cached "1.0.0" fs-extra "^8.1.0" - gatsby-cli "^2.19.0" - gatsby-core-utils "^1.10.0" - gatsby-graphiql-explorer "^0.11.0" - gatsby-legacy-polyfills "^0.7.0" - gatsby-link "^2.11.0" - gatsby-plugin-page-creator "^2.10.0" - gatsby-plugin-typescript "^2.12.0" - gatsby-plugin-utils "^0.9.0" - gatsby-react-router-scroll "^3.7.0" - gatsby-telemetry "^1.10.0" + gatsby-cli "^3.0.0" + gatsby-core-utils "^2.0.0" + gatsby-graphiql-explorer "^1.0.0" + gatsby-legacy-polyfills "^1.0.0" + gatsby-link "^3.0.1" + gatsby-plugin-page-creator "^3.0.0" + gatsby-plugin-typescript "^3.0.0" + gatsby-plugin-utils "^1.0.0" + gatsby-react-router-scroll "^4.0.1" + gatsby-telemetry "^2.0.0" glob "^7.1.6" got "8.3.2" - graphql "^14.6.0" - graphql-compose "^6.3.8" + graphql "^15.4.0" + graphql-compose "~7.25.0" graphql-playground-middleware-express "^1.7.18" hasha "^5.2.0" http-proxy "^1.18.1" @@ -7247,60 +6804,57 @@ gatsby@^2.31.1: memoizee "^0.4.15" micromatch "^4.0.2" mime "^2.4.6" - mini-css-extract-plugin "^0.11.2" + mini-css-extract-plugin "1.3.9" mitt "^1.2.0" mkdirp "^0.5.1" moment "^2.27.0" name-all-modules-plugin "^1.0.1" normalize-path "^3.0.0" - null-loader "^3.0.0" + null-loader "^4.0.1" opentracing "^0.14.4" - optimize-css-assets-webpack-plugin "^5.0.3" p-defer "^3.0.0" parseurl "^1.3.3" physical-cpu-count "^2.0.0" + platform "^1.3.6" pnp-webpack-plugin "^1.6.4" - postcss-flexbugs-fixes "^4.2.1" - postcss-loader "^3.0.0" + postcss "8.2.6" + postcss-flexbugs-fixes "^5.0.2" + postcss-loader "^5.0.0" prompts "^2.3.2" prop-types "^15.7.2" query-string "^6.13.1" - raw-loader "^0.5.1" - react-dev-utils "^4.2.3" - react-error-overlay "^3.0.0" - react-hot-loader "^4.12.21" - react-refresh "^0.8.3" + raw-loader "^4.0.2" + react-dev-utils "^11.0.3" + react-refresh "^0.9.0" redux "^4.0.5" redux-thunk "^2.3.0" semver "^7.3.2" shallow-compare "^1.2.2" signal-exit "^3.0.3" slugify "^1.4.4" - socket.io "2.3.0" - socket.io-client "2.3.0" + socket.io "3.1.1" + socket.io-client "3.1.1" source-map "^0.7.3" source-map-support "^0.5.19" st "^2.0.0" stack-trace "^0.0.10" string-similarity "^1.2.2" strip-ansi "^5.2.0" - style-loader "^0.23.1" - terminal-link "^2.1.1" - terser-webpack-plugin "^2.3.8" + style-loader "^2.0.0" + terser-webpack-plugin "^5.1.1" tmp "^0.2.1" "true-case-path" "^2.2.1" type-of "^2.0.1" - url-loader "^1.1.2" + url-loader "^4.1.1" util.promisify "^1.0.1" uuid "3.4.0" v8-compile-cache "^2.2.0" - webpack "^4.44.1" - webpack-dev-middleware "^3.7.2" + webpack "^5.16.0" + webpack-dev-middleware "^4.1.0" webpack-dev-server "^3.11.2" - webpack-hot-middleware "^2.25.0" - webpack-merge "^4.2.2" - webpack-stats-plugin "^0.3.2" - webpack-virtual-modules "^0.2.2" + webpack-merge "^5.7.3" + webpack-stats-plugin "^1.0.3" + webpack-virtual-modules "^0.3.2" xstate "^4.11.0" yaml-loader "^0.6.0" @@ -7318,25 +6872,20 @@ gauge@~2.7.3: strip-ansi "^3.0.1" wide-align "^1.1.0" -gensync@^1.0.0-beta.1: +gensync@^1.0.0-beta.1, gensync@^1.0.0-beta.2: version "1.0.0-beta.2" resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== -get-caller-file@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" - integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== - get-caller-file@^2.0.1, get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.0.1, get-intrinsic@^1.0.2, get-intrinsic@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.0.tgz#892e62931e6938c8a23ea5aaebcfb67bd97da97e" - integrity sha512-M11rgtQp5GZMZzDL7jLTNxbDfurpzuau5uqRWDPvlHjfvg3TdScAZo96GLvhMjImrmR8uAt0FS2RLoMrfWGKlg== +get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" + integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== dependencies: function-bind "^1.1.1" has "^1.0.3" @@ -7428,12 +6977,17 @@ glob-parent@^3.1.0: path-dirname "^1.0.0" glob-parent@^5.0.0, glob-parent@^5.1.0, glob-parent@~5.1.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" - integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" +glob-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: version "7.1.6" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" @@ -7446,13 +7000,6 @@ glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, gl once "^1.3.0" path-is-absolute "^1.0.0" -global-dirs@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" - integrity sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU= - dependencies: - ini "^1.3.4" - global-dirs@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.0.tgz#70a76fe84ea315ab37b1f5576cbde7d48ef72686" @@ -7460,27 +7007,23 @@ global-dirs@^3.0.0: dependencies: ini "2.0.0" -global-modules@1.0.0, global-modules@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" - integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== +global-modules@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" + integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== dependencies: - global-prefix "^1.0.1" - is-windows "^1.0.1" - resolve-dir "^1.0.0" + global-prefix "^3.0.0" -global-prefix@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" - integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= +global-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" + integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== dependencies: - expand-tilde "^2.0.2" - homedir-polyfill "^1.0.1" - ini "^1.3.4" - is-windows "^1.0.1" - which "^1.2.14" + ini "^1.3.5" + kind-of "^6.0.2" + which "^1.3.1" -global@^4.3.0, global@^4.3.2, global@~4.4.0: +global@^4.3.2, global@~4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406" integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w== @@ -7500,6 +7043,13 @@ globals@^12.1.0: dependencies: type-fest "^0.8.1" +globals@^13.6.0: + version "13.6.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.6.0.tgz#d77138e53738567bb96a3916ff6f6b487af20ef7" + integrity sha512-YFKCX0SiPg7l5oKYCJ2zZGxcXprVXHcSnVuvzrT3oSENQonVLqM5pf9fN5dLGZGyCjhw8TN8Btwe/jKnZ0pjvQ== + dependencies: + type-fest "^0.20.2" + globby@11.0.1: version "11.0.1" resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.1.tgz#9a2bf107a068f3ffeabc49ad702c79ede8cfd357" @@ -7512,6 +7062,18 @@ globby@11.0.1: merge2 "^1.3.0" slash "^3.0.0" +globby@11.0.2, globby@^11.0.1, globby@^11.0.2: + version "11.0.2" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.2.tgz#1af538b766a3b540ebfb58a32b2e2d5897321d83" + integrity sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.1.1" + ignore "^5.1.4" + merge2 "^1.3.0" + slash "^3.0.0" + globby@^10.0.0, globby@^10.0.1: version "10.0.2" resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.2.tgz#277593e745acaa4646c3ab411289ec47a0392543" @@ -7526,18 +7088,6 @@ globby@^10.0.0, globby@^10.0.1: merge2 "^1.2.3" slash "^3.0.0" -globby@^11.0.2: - version "11.0.2" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.2.tgz#1af538b766a3b540ebfb58a32b2e2d5897321d83" - integrity sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.1.1" - ignore "^5.1.4" - merge2 "^1.3.0" - slash "^3.0.0" - globby@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" @@ -7594,28 +7144,11 @@ got@^10.7.0: get-stream "^5.0.0" lowercase-keys "^2.0.0" mimic-response "^2.1.0" - p-cancelable "^2.0.0" - p-event "^4.0.0" - responselike "^2.0.0" - to-readable-stream "^2.0.0" - type-fest "^0.10.0" - -got@^6.7.1: - version "6.7.1" - resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" - integrity sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA= - dependencies: - create-error-class "^3.0.0" - duplexer3 "^0.1.4" - get-stream "^3.0.0" - is-redirect "^1.0.0" - is-retry-allowed "^1.0.0" - is-stream "^1.0.0" - lowercase-keys "^1.0.0" - safe-buffer "^5.0.1" - timed-out "^4.0.0" - unzip-response "^2.0.1" - url-parse-lax "^1.0.0" + p-cancelable "^2.0.0" + p-event "^4.0.0" + responselike "^2.0.0" + to-readable-stream "^2.0.0" + type-fest "^0.10.0" got@^7.0.0: version "7.1.0" @@ -7654,18 +7187,18 @@ got@^9.6.0: to-readable-stream "^1.0.0" url-parse-lax "^3.0.0" -graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.3, graceful-fs@^4.2.4: - version "4.2.4" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" - integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== +graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.3, graceful-fs@^4.2.4: + version "4.2.6" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" + integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== -graphql-compose@^6.3.8: - version "6.3.8" - resolved "https://registry.yarnpkg.com/graphql-compose/-/graphql-compose-6.3.8.tgz#9f82a85d5001a83adf1f7c4d3b5e5f72c432a062" - integrity sha512-o0/jzQEMIpSjryLKwmD1vGrCubiPxD0LxlGTgWDSu38TBepu2GhugC9gYgTEbtiCZAHPtvkZ90SzzABOWZyQLA== +graphql-compose@~7.25.0: + version "7.25.0" + resolved "https://registry.yarnpkg.com/graphql-compose/-/graphql-compose-7.25.0.tgz#cd893172616ce56b0566e62fd249fb7782332d38" + integrity sha512-Zd2G62Sq0ZQW+qXds/LgSi3YSulmk2t2YS3WJfHvNslkEbyAcE1mFiy7c1wU0tl3woB0vPRwI0jAYtSSG6llNA== dependencies: - graphql-type-json "^0.2.4" - object-path "^0.11.4" + graphql-type-json "0.3.2" + object-path "0.11.5" graphql-config@^3.0.2: version "3.2.0" @@ -7700,18 +7233,13 @@ graphql-playground-middleware-express@^1.7.18: graphql-playground-html "^1.6.29" graphql-subscriptions@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/graphql-subscriptions/-/graphql-subscriptions-1.1.0.tgz#5f2fa4233eda44cf7570526adfcf3c16937aef11" - integrity sha512-6WzlBFC0lWmXJbIVE8OgFgXIP4RJi3OQgTPa0DVMsDXdpRDjTsM1K9wfl5HSYX7R87QAGlvcv2Y4BIZa/ItonA== + version "1.2.1" + resolved "https://registry.yarnpkg.com/graphql-subscriptions/-/graphql-subscriptions-1.2.1.tgz#2142b2d729661ddf967b7388f7cf1dd4cf2e061d" + integrity sha512-95yD/tKi24q8xYa7Q9rhQN16AYj5wPbrb8tmHGM3WRc9EBmWrG/0kkMl+tQG8wcEuE9ibR4zyOM31p5Sdr2v4g== dependencies: - iterall "^1.2.1" + iterall "^1.3.0" -graphql-type-json@^0.2.4: - version "0.2.4" - resolved "https://registry.yarnpkg.com/graphql-type-json/-/graphql-type-json-0.2.4.tgz#545af27903e40c061edd30840a272ea0a49992f9" - integrity sha512-/tq02ayMQjrG4oDFDRLLrPk0KvJXue0nVXoItBe7uAdbNXjQUu+HYCBdAmPLQoseVzUKKMzrhq2P/sfI76ON6w== - -graphql-type-json@^0.3.2: +graphql-type-json@0.3.2, graphql-type-json@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/graphql-type-json/-/graphql-type-json-0.3.2.tgz#f53a851dbfe07bd1c8157d24150064baab41e115" integrity sha512-J+vjof74oMlCWXSvt0DOf2APEdZOCdubEvGDUAlqH//VBYcOYsGgRW7Xzorr44LvkjiuvecWc8fChxuZZbChtg== @@ -7727,17 +7255,15 @@ graphql-upload@^11.0.0: isobject "^4.0.0" object-path "^0.11.4" -graphql-ws@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/graphql-ws/-/graphql-ws-4.1.0.tgz#cebe281474b5501d7be66210fb5711633b27fd78" - integrity sha512-DxJP1y2YzCqVLy7DrQN0iuR2l48vMOBWukX2d/J9aN2o5x9un5psIIq/2UFRh91UGARmfvPH86y1p4qbC1dITg== +graphql-ws@4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/graphql-ws/-/graphql-ws-4.1.5.tgz#03526b29acb54a424a9fbe300a4bd69ff65a50b3" + integrity sha512-yUQ1AjegD1Y9jDS699kyw7Mw+9H+rILm2HoS8N5a5B5YTH93xy3yifFhAJpKGc2wb/8yGdlVy8gTcud0TPqi6Q== -graphql@^14.6.0: - version "14.7.0" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-14.7.0.tgz#7fa79a80a69be4a31c27dda824dc04dac2035a72" - integrity sha512-l0xWZpoPKpppFzMfvVyFmp9vLN7w/ZZJPefUicMCepfJeQ8sMcztloGYY9DfjVPo6tIUDzU5Hw3MUbIjj9AVVA== - dependencies: - iterall "^1.2.2" +graphql@^15.4.0: + version "15.5.0" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.5.0.tgz#39d19494dbe69d1ea719915b578bf920344a69d5" + integrity sha512-OmaM7y0kaK31NKG31q4YbD2beNYa6jBBKtMFT6gLYJljHLJr42IqJ8KX08u3Li/0ifzTU5HjmoOOrwa5BRLeDA== gray-matter@^4.0.2: version "4.0.2" @@ -7749,17 +7275,13 @@ gray-matter@^4.0.2: section-matter "^1.0.0" strip-bom-string "^1.0.0" -gud@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/gud/-/gud-1.0.0.tgz#a489581b17e6a70beca9abe3ae57de7a499852c0" - integrity sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw== - -gzip-size@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-3.0.0.tgz#546188e9bdc337f673772f81660464b389dce520" - integrity sha1-VGGI6b3DN/Zzdy+BZgRks4nc5SA= +gzip-size@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.1.1.tgz#cb9bee692f87c0612b232840a873904e4c135274" + integrity sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA== dependencies: duplexer "^0.1.1" + pify "^4.0.1" handle-thing@^2.0.0: version "2.0.1" @@ -7773,12 +7295,10 @@ has-ansi@^2.0.0: dependencies: ansi-regex "^2.0.0" -has-binary2@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d" - integrity sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw== - dependencies: - isarray "2.0.1" +has-bigints@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" + integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== has-cors@1.1.0: version "1.1.0" @@ -7800,10 +7320,10 @@ has-symbol-support-x@^1.4.1: resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" integrity sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw== -has-symbols@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" - integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== +has-symbols@^1.0.0, has-symbols@^1.0.1, has-symbols@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" + integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== has-to-string-tag-x@^1.2.0: version "1.4.1" @@ -7860,23 +7380,6 @@ has@^1.0.0, has@^1.0.3: dependencies: function-bind "^1.1.1" -hash-base@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" - integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== - dependencies: - inherits "^2.0.4" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - hasha@^5.2.0: version "5.2.2" resolved "https://registry.yarnpkg.com/hasha/-/hasha-5.2.2.tgz#a48477989b3b327aea3c04f53096d816d97522a1" @@ -8153,34 +7656,11 @@ hicat@^0.8.0: minimist "^1.2.5" highlight.js@^10.4.1: - version "10.5.0" - resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.5.0.tgz#3f09fede6a865757378f2d9ebdcbc15ba268f98f" - integrity sha512-xTmvd9HiIHR6L53TMC7TKolEj65zG1XU+Onr8oi86mYa+nLcIbxTTWkpW7CsEwv/vK7u1zb8alZIMLDqqN6KTw== - -hmac-drbg@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -hoist-non-react-statics@^3.3.0: - version "3.3.2" - resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" - integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== - dependencies: - react-is "^16.7.0" + version "10.6.0" + resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.6.0.tgz#0073aa71d566906965ba6e1b7be7b2682f5e18b6" + integrity sha512-8mlRcn5vk/r4+QcqerapwBYTe+iPL5ih6xrNylxrnBdHQiijDETfXX7VIxC3UiCRiINBJfANBAsPzAvRQj8RpQ== -homedir-polyfill@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" - integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== - dependencies: - parse-passwd "^1.0.0" - -hosted-git-info@^2.1.4, hosted-git-info@^2.5.0: +hosted-git-info@^2.1.4: version "2.8.8" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== @@ -8217,11 +7697,16 @@ html-comment-regex@^1.1.0: resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== -html-entities@^1.2.0, html-entities@^1.2.1, html-entities@^1.3.1: +html-entities@^1.2.1, html-entities@^1.3.1: version "1.4.0" resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.4.0.tgz#cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc" integrity sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA== +html-entities@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.1.1.tgz#faa5fc521e2d18499627835d22be3554c202208f" + integrity sha512-HjNLgm9Ba8zKd6NDMkXa0mMPn3eDUxOUnEIm/qy2Rm6rnqRHgI9DpMYIv1Fndu8haUmfMQHNYNrlNKmdU8GMnQ== + html-void-elements@^1.0.0, html-void-elements@^1.0.1: version "1.0.5" resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-1.0.5.tgz#ce9159494e86d95e45795b166c2021c2cfca4483" @@ -8255,9 +7740,9 @@ htmlparser2@^4.1.0: entities "^2.0.0" htmlparser2@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.0.0.tgz#c2da005030390908ca4c91e5629e418e0665ac01" - integrity sha512-numTQtDZMoh78zJpaNdJ9MXb2cv5G3jwUoe3dMQODubZvLoGvTE/Ofp6sHvH8OGKcN/8A47pGLi/k58xHP/Tfw== + version "6.0.1" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.0.1.tgz#422521231ef6d42e56bd411da8ba40aa36e91446" + integrity sha512-GDKPd+vk4jvSuvCbyuzx/unmXkk090Azec7LovXP8as1Hn8q9p3hbjmDGbUqqhknw0ajwit6LiiWqfiTUPMK7w== dependencies: domelementtype "^2.0.1" domhandler "^4.0.0" @@ -8346,61 +7831,33 @@ http-proxy@^1.17.0, http-proxy@^1.18.1: follow-redirects "^1.0.0" requires-port "^1.0.0" -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= - human-signals@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== -husky@^4.3.5: - version "4.3.8" - resolved "https://registry.yarnpkg.com/husky/-/husky-4.3.8.tgz#31144060be963fd6850e5cc8f019a1dfe194296d" - integrity sha512-LCqqsB0PzJQ/AlCgfrfzRe3e3+NvmefAdKQhRYpxS4u6clblBoDdzzvHi8fmxKRzvMxPY/1WZWzomPZww0Anow== - dependencies: - chalk "^4.0.0" - ci-info "^2.0.0" - compare-versions "^3.6.0" - cosmiconfig "^7.0.0" - find-versions "^4.0.0" - opencollective-postinstall "^2.0.2" - pkg-dir "^5.0.0" - please-upgrade-node "^3.2.0" - slash "^3.0.0" - which-pm-runs "^1.0.0" +husky@^5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/husky/-/husky-5.1.3.tgz#1a0645a4fe3ffc006c4d0d8bd0bcb4c98787cc9d" + integrity sha512-fbNJ+Gz5wx2LIBtMweJNY1D7Uc8p1XERi5KNRMccwfQA+rXlxWNSdUxswo0gT8XqxywTIw7Ywm/F4v/O35RdMg== -iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.24, iconv-lite@^0.4.4: +iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== dependencies: safer-buffer ">= 2.1.2 < 3" -icss-replace-symbols@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" - integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0= - -icss-utils@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-2.1.0.tgz#83f0a0ec378bf3246178b6c2ad9136f135b1c962" - integrity sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI= - dependencies: - postcss "^6.0.1" +icss-utils@^5.0.0, icss-utils@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" + integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== -ieee754@^1.1.13, ieee754@^1.1.4, ieee754@^1.2.1: +ieee754@^1.1.13, ieee754@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== -iferr@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" - integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= - ignore@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" @@ -8426,9 +7883,9 @@ imagemin-mozjpeg@^9.0.0: mozjpeg "^7.0.0" imagemin-pngquant@^9.0.1: - version "9.0.1" - resolved "https://registry.yarnpkg.com/imagemin-pngquant/-/imagemin-pngquant-9.0.1.tgz#ecf22f522bdb734a503ecc21bdd7bc3d0230edcc" - integrity sha512-PYyo9G/xwddf+Qqlqe3onz5ZH7p6vHYVVkiuuczUjxZmfekyY77RXaOA/AR6FnVoeQxGa/pDtEK5xUKOcVo+sA== + version "9.0.2" + resolved "https://registry.yarnpkg.com/imagemin-pngquant/-/imagemin-pngquant-9.0.2.tgz#38155702b0cc4f60f671ba7c2b086ea3805d9567" + integrity sha512-cj//bKo8+Frd/DM8l6Pg9pws1pnDUjgb7ae++sUX1kUVdv2nrngPykhiUOgFeE0LGY/LmUbCf4egCHC4YUcZSg== dependencies: execa "^4.0.0" is-png "^2.0.0" @@ -8449,12 +7906,10 @@ imagemin@^7.0.1: p-pipe "^3.0.0" replace-ext "^1.0.0" -import-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" - integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk= - dependencies: - import-from "^2.1.0" +immer@8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/immer/-/immer-8.0.1.tgz#9c73db683e2b3975c424fb0572af5889877ae656" + integrity sha512-aqXhGP7//Gui2+UrEtvxZxSquQVXTpZ7KDxfCcKAF3Vysvw0CViVaW9RZ1j1xlIYqaaaipBoqdqeibkc18PNvA== import-fresh@^2.0.0: version "2.0.0" @@ -8479,13 +7934,6 @@ import-from@3.0.0: dependencies: resolve-from "^5.0.0" -import-from@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" - integrity sha1-M1238qev/VOqpHHUuAId7ja387E= - dependencies: - resolve-from "^3.0.0" - import-lazy@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" @@ -8526,12 +7974,7 @@ indexes-of@^1.0.1: resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= -indexof@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" - integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= - -infer-owner@^1.0.3, infer-owner@^1.0.4: +infer-owner@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== @@ -8549,11 +7992,6 @@ inherits@2, inherits@2.0.4, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, i resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= - inherits@2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" @@ -8564,7 +8002,7 @@ ini@2.0.0: resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== -ini@^1.3.4, ini@~1.3.0: +ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: version "1.3.8" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== @@ -8574,26 +8012,6 @@ inline-style-parser@0.1.1: resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1" integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q== -inquirer@3.3.0, inquirer@^3.0.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" - integrity sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ== - dependencies: - ansi-escapes "^3.0.0" - chalk "^2.0.0" - cli-cursor "^2.1.0" - cli-width "^2.0.0" - external-editor "^2.0.4" - figures "^2.0.0" - lodash "^4.3.0" - mute-stream "0.0.7" - run-async "^2.2.0" - rx-lite "^4.0.8" - rx-lite-aggregates "^4.0.8" - string-width "^2.1.0" - strip-ansi "^4.0.0" - through "^2.3.6" - inquirer@^7.0.0: version "7.3.3" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" @@ -8621,7 +8039,7 @@ internal-ip@^4.3.0: default-gateway "^4.2.0" ipaddr.js "^1.9.0" -internal-slot@^1.0.2: +internal-slot@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== @@ -8638,18 +8056,13 @@ into-stream@^3.1.0: from2 "^2.1.1" p-is-promise "^1.1.0" -invariant@^2.2.0, invariant@^2.2.3, invariant@^2.2.4: +invariant@^2.2.3, invariant@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== dependencies: loose-envify "^1.0.0" -invert-kv@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" - integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== - ip-regex@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" @@ -8724,6 +8137,11 @@ is-arrayish@^0.3.1: resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== +is-bigint@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.1.tgz#6923051dfcbc764278540b9ce0e6b3213aa5ebc2" + integrity sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg== + is-binary-path@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" @@ -8738,6 +8156,13 @@ is-binary-path@^2.1.0, is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" +is-boolean-object@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.0.tgz#e2aaad3a3a8fca34c28f6eee135b156ed2587ff0" + integrity sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA== + dependencies: + call-bind "^1.0.0" + is-buffer@^1.1.4, is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" @@ -8748,25 +8173,11 @@ is-buffer@^2.0.0: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== -is-builtin-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" - integrity sha1-VAVy0096wxGfj3bDDLwbHgN6/74= - dependencies: - builtin-modules "^1.0.0" - -is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.2: +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== -is-ci@^1.0.10: - version "1.2.1" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" - integrity sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg== - dependencies: - ci-info "^1.5.0" - is-ci@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" @@ -8786,7 +8197,7 @@ is-color-stop@^1.0.0: rgb-regex "^1.0.1" rgba-regex "^1.0.0" -is-core-module@^2.1.0: +is-core-module@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== @@ -8920,14 +8331,6 @@ is-hexadecimal@^1.0.0: resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== -is-installed-globally@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" - integrity sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA= - dependencies: - global-dirs "^0.1.0" - is-path-inside "^1.0.0" - is-installed-globally@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" @@ -8965,16 +8368,16 @@ is-negative-zero@^2.0.1: resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== -is-npm@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" - integrity sha1-8vtjpl5JBbQGyGBydloaTceTufQ= - is-npm@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-5.0.0.tgz#43e8d65cc56e1b67f8d47262cf667099193f45a8" integrity sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA== +is-number-object@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.4.tgz#36ac95e741cf18b283fc1ddf5e83da798e3ec197" + integrity sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw== + is-number@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" @@ -8987,11 +8390,6 @@ is-number@^7.0.0: resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== -is-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" - integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= - is-obj@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" @@ -9014,13 +8412,6 @@ is-path-in-cwd@^2.0.0: dependencies: is-path-inside "^2.1.0" -is-path-inside@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" - integrity sha1-jvW33lBDej/cprToZe96pVy0gDY= - dependencies: - path-is-inside "^1.0.1" - is-path-inside@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" @@ -9029,9 +8420,9 @@ is-path-inside@^2.1.0: path-is-inside "^1.0.2" is-path-inside@^3.0.1, is-path-inside@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.2.tgz#f5220fc82a3e233757291dddc9c5877f2a1f3017" - integrity sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg== + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: version "1.1.0" @@ -9065,12 +8456,7 @@ is-promise@^2.2.2: resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== -is-redirect@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" - integrity sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ= - -is-regex@^1.0.4, is-regex@^1.1.1: +is-regex@^1.0.4, is-regex@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.2.tgz#81c8ebde4db142f2cf1c53fc86d6a45788266251" integrity sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg== @@ -9102,10 +8488,10 @@ is-retry-allowed@^1.0.0, is-retry-allowed@^1.1.0: resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== -is-root@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-root/-/is-root-1.0.0.tgz#07b6c233bc394cd9d02ba15c966bd6660d6342d5" - integrity sha1-B7bCM7w5TNnQK6FclmvWZg1jQtU= +is-root@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c" + integrity sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg== is-ssh@^1.3.0: version "1.3.2" @@ -9136,7 +8522,7 @@ is-svg@^3.0.0: dependencies: html-comment-regex "^1.1.0" -is-symbol@^1.0.2: +is-symbol@^1.0.2, is-symbol@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== @@ -9184,7 +8570,7 @@ is-whitespace-character@^1.0.0: resolved "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz#0858edd94a95594c7c9dd0b5c174ec6e45ee4aa7" integrity sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w== -is-windows@^1.0.1, is-windows@^1.0.2: +is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== @@ -9221,11 +8607,6 @@ isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= -isarray@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" - integrity sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4= - isarray@^2.0.1: version "2.0.5" resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" @@ -9253,13 +8634,6 @@ isobject@^4.0.0: resolved "https://registry.yarnpkg.com/isobject/-/isobject-4.0.0.tgz#3f1c9155e73b192022a80819bacd0343711697b0" integrity sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA== -isomorphic-form-data@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isomorphic-form-data/-/isomorphic-form-data-2.0.0.tgz#9f6adf1c4c61ae3aefd8f110ab60fb9b143d6cec" - integrity sha512-TYgVnXWeESVmQSg4GLVbalmQ+B4NPi/H4eWxqALKj63KsUrcu301YDjBqaOw3h+cbak7Na4Xyps3BiptHtxTfg== - dependencies: - form-data "^2.3.2" - isomorphic-ws@4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" @@ -9273,7 +8647,7 @@ isurl@^1.0.0-alpha5: has-to-string-tag-x "^1.2.0" is-object "^1.0.1" -iterall@^1.2.1, iterall@^1.2.2: +iterall@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.3.0.tgz#afcb08492e2915cbd8a0884eb93a8c94d0d72fea" integrity sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg== @@ -9301,11 +8675,12 @@ jest-worker@^24.9.0: merge-stream "^2.0.0" supports-color "^6.1.0" -jest-worker@^25.4.0: - version "25.5.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-25.5.0.tgz#2611d071b79cea0f43ee57a3d118593ac1547db1" - integrity sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw== +jest-worker@^26.3.0, jest-worker@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" + integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== dependencies: + "@types/node" "*" merge-stream "^2.0.0" supports-color "^7.0.0" @@ -9321,9 +8696,9 @@ jimp@^0.14.0: regenerator-runtime "^0.13.3" joi@^17.2.1: - version "17.3.0" - resolved "https://registry.yarnpkg.com/joi/-/joi-17.3.0.tgz#f1be4a6ce29bc1716665819ac361dfa139fff5d2" - integrity sha512-Qh5gdU6niuYbUIUV5ejbsMiiFmBdw8Kcp8Buj2JntszCkCfxJ9Cz76OtHxOZMPXrt5810iDIXs+n1nNVoquHgg== + version "17.4.0" + resolved "https://registry.yarnpkg.com/joi/-/joi-17.4.0.tgz#b5c2277c8519e016316e49ababd41a1908d9ef20" + integrity sha512-F4WiW2xaV6wc1jxete70Rw4V/VuMd6IN+a5ilZsxG4uYtUXWu2kq9W5P2dz30e7Gmw8RCbY/u/uk+dMPma9tAg== dependencies: "@hapi/hoek" "^9.0.0" "@hapi/topo" "^5.0.0" @@ -9341,11 +8716,6 @@ jpeg-js@^0.4.0: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-tokens@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= - js-yaml@^3.11.0, js-yaml@^3.13.1: version "3.14.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" @@ -9394,6 +8764,11 @@ json-schema-traverse@^0.4.1: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" @@ -9404,7 +8779,7 @@ json-stringify-safe@^5.0.1: resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= -json3@^3.3.2, json3@^3.3.3: +json3@^3.3.3: version "3.3.3" resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== @@ -9444,11 +8819,6 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" -jsonify@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" - integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= - "jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.1.0: version "3.2.0" resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz#41108d2cec408c3453c1bbe8a4aae9e1e2bd8f82" @@ -9541,14 +8911,6 @@ language-tags@^1.0.5: dependencies: language-subtag-registry "~0.3.2" -last-call-webpack-plugin@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz#9742df0e10e3cf46e5c0381c2de90d3a7a2d7555" - integrity sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w== - dependencies: - lodash "^4.17.5" - webpack-sources "^1.1.0" - latest-version@5.1.0, latest-version@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" @@ -9556,32 +8918,13 @@ latest-version@5.1.0, latest-version@^5.1.0: dependencies: package-json "^6.3.0" -latest-version@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" - integrity sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU= - dependencies: - package-json "^4.0.0" - -lcid@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" - integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== - dependencies: - invert-kv "^2.0.0" - -leven@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" - integrity sha1-wuep93IJTe6dNCAq6KzORoeHVYA= - -levn@^0.3.0, levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" + prelude-ls "^1.2.1" + type-check "~0.4.0" lines-and-columns@^1.1.6: version "1.1.6" @@ -9628,18 +8971,10 @@ load-script@^1.0.0: resolved "https://registry.yarnpkg.com/load-script/-/load-script-1.0.0.tgz#0491939e0bee5643ee494a7e3da3d2bac70c6ca4" integrity sha1-BJGTngvuVkPuSUp+PaPSuscMbKQ= -loader-fs-cache@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/loader-fs-cache/-/loader-fs-cache-1.0.3.tgz#f08657646d607078be2f0a032f8bd69dd6f277d9" - integrity sha512-ldcgZpjNJj71n+2Mf6yetz+c9bM4xpKtNds4LbqXzU/PTdeAX0g3ytnU1AJMEcTk2Lex4Smpe3Q/eCTsvUBxbA== - dependencies: - find-cache-dir "^0.1.1" - mkdirp "^0.5.1" - -loader-runner@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" - integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== +loader-runner@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384" + integrity sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw== loader-utils@1.1.0: version "1.1.0" @@ -9650,16 +8985,16 @@ loader-utils@1.1.0: emojis-list "^2.0.0" json5 "^0.5.0" -loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" - integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== +loader-utils@1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" + integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== dependencies: big.js "^5.2.2" - emojis-list "^3.0.0" + emojis-list "^2.0.0" json5 "^1.0.1" -loader-utils@^2.0.0: +loader-utils@2.0.0, loader-utils@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== @@ -9668,6 +9003,15 @@ loader-utils@^2.0.0: emojis-list "^3.0.0" json5 "^2.1.2" +loader-utils@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" + integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^1.0.1" + locate-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" @@ -9691,22 +9035,15 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - lock@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/lock/-/lock-1.1.0.tgz#53157499d1653b136ca66451071fca615703fa55" integrity sha1-UxV0mdFlOxNspmRRBx/KYVcD+lU= lodash-es@^4.17.20: - version "4.17.20" - resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.20.tgz#29f6332eefc60e849f869c264bc71126ad61e8f7" - integrity sha512-JD1COMZsq8maT6mnuz1UMV0jvYD0E0aUsSOdrr1/nAG3dhqQXwRRgeW0cSqH1U43INKcqxaiVIQNOUDld7gRDA== + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" + integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== lodash.assignin@^4.0.9: version "4.2.0" @@ -9728,6 +9065,11 @@ lodash.clonedeep@4.5.0: resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= + lodash.deburr@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/lodash.deburr/-/lodash.deburr-4.1.0.tgz#ddb1bbb3ef07458c0177ba07de14422cb033ff9b" @@ -9823,11 +9165,6 @@ lodash.some@^4.4.0: resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" integrity sha1-G7nzFO9ri63tE7VJFpsqlF62jk0= -lodash.toarray@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz#24c4bfcd6b2fba38bfd0594db1179d8e9b656561" - integrity sha1-JMS/zWsvuji/0FlNsRedjptlZWE= - lodash.uniq@4.5.0, lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" @@ -9838,10 +9175,10 @@ lodash.without@^4.4.0: resolved "https://registry.yarnpkg.com/lodash.without/-/lodash.without-4.4.0.tgz#3cd4574a00b67bae373a94b748772640507b7aac" integrity sha1-PNRXSgC2e643OpS3SHcmQFB7eqw= -lodash@^4.0.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.3.0: - version "4.17.20" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" - integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== +lodash@^4.0.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== logalot@^2.0.0, logalot@^2.1.0: version "2.1.0" @@ -9873,7 +9210,7 @@ loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: dependencies: js-tokens "^3.0.0 || ^4.0.0" -loud-rejection@^1.0.0, loud-rejection@^1.2.0: +loud-rejection@^1.0.0: version "1.6.0" resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= @@ -9941,13 +9278,6 @@ lru-cache@^4.0.0, lru-cache@^4.0.1: pseudomap "^1.0.2" yallist "^2.1.2" -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - lru-cache@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" @@ -9969,14 +9299,6 @@ make-dir@^1.0.0, make-dir@^1.2.0: dependencies: pify "^3.0.0" -make-dir@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" - integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== - dependencies: - pify "^4.0.1" - semver "^5.6.0" - make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" @@ -9989,7 +9311,7 @@ make-error@^1, make-error@^1.1.1: resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== -map-age-cleaner@^0.1.1: +map-age-cleaner@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== @@ -10031,24 +9353,15 @@ markdown-table@^2.0.0: repeat-string "^1.0.0" markdown-to-jsx@^7.0.0: - version "7.1.1" - resolved "https://registry.yarnpkg.com/markdown-to-jsx/-/markdown-to-jsx-7.1.1.tgz#269145a585650258691a9a1ec9fb4b273ed2d32a" - integrity sha512-PJgNmvdKM7f7dFDgr4N2ZQv5OuJ2dwwBZvKel61BO7JLh2QQLDs880uQO+OjsEKNmhCZ0ZOIKkCXFEuY9G0yEA== + version "7.1.2" + resolved "https://registry.yarnpkg.com/markdown-to-jsx/-/markdown-to-jsx-7.1.2.tgz#19d3da4cd8864045cdd13a0d179147fbd6a088d4" + integrity sha512-O8DMCl32V34RrD+ZHxcAPc2+kYytuDIoQYjY36RVdsLK7uHjgNVvFec4yv0X6LgB4YEZgSvK5QtFi5YVqEpoMA== md5-file@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/md5-file/-/md5-file-5.0.0.tgz#e519f631feca9c39e7f9ea1780b63c4745012e20" integrity sha512-xbEFXCYVWrSx/gEKS1VPlg84h/4L20znVIulKw6kMfmBUAZNAnF00eczz9ICMl+/hjQGo5KSXRxbL/47X3rmMw== -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - mdast-squeeze-paragraphs@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-4.0.0.tgz#7c4c114679c3bee27ef10b58e2e015be79f1ef97" @@ -10190,14 +9503,20 @@ media-typer@0.3.0: resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= -mem@^4.0.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" - integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w== +mem@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-8.0.0.tgz#b5e4b6d2d241c6296da05436173b4d0c7ae1f9ac" + integrity sha512-qrcJOe6uD+EW8Wrci1Vdiua/15Xw3n/QnaNXE7varnB6InxSk7nu3/i5jfy3S6kWxr8WYJ6R1o0afMUtvorTsA== + dependencies: + map-age-cleaner "^0.1.3" + mimic-fn "^3.1.0" + +memfs@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.2.0.tgz#f9438e622b5acd1daa8a4ae160c496fdd1325b26" + integrity sha512-f/xxz2TpdKv6uDn6GtHee8ivFyxwxmPuXatBb1FBwxYNuVpbM3k/Y1Z+vC0mH/dIXXrukYfe3qe5J32Dfjg93A== dependencies: - map-age-cleaner "^0.1.1" - mimic-fn "^2.0.0" - p-is-promise "^2.0.0" + fs-monkey "1.0.1" memoizee@^0.4.15: version "0.4.15" @@ -10221,14 +9540,6 @@ memory-fs@^0.4.1: errno "^0.1.3" readable-stream "^2.0.1" -memory-fs@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" - integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - meow@^3.3.0: version "3.7.0" resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" @@ -10265,6 +9576,11 @@ methods@~1.1.2: resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= +microevent.ts@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/microevent.ts/-/microevent.ts-0.1.1.tgz#70b09b83f43df5172d0205a63025bce0f7357fa0" + integrity sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g== + micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" @@ -10292,46 +9608,38 @@ micromatch@^4.0.2: braces "^3.0.1" picomatch "^2.0.5" -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - -mime-db@1.45.0, "mime-db@>= 1.43.0 < 2", mime-db@^1.28.0: - version "1.45.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.45.0.tgz#cceeda21ccd7c3a745eba2decd55d4b73e7879ea" - integrity sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w== +mime-db@1.46.0, "mime-db@>= 1.43.0 < 2", mime-db@^1.28.0: + version "1.46.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.46.0.tgz#6267748a7f799594de3cbc8cde91def349661cee" + integrity sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ== -mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.24: - version "2.1.28" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.28.tgz#1160c4757eab2c5363888e005273ecf79d2a0ecd" - integrity sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ== +mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.28, mime-types@~2.1.17, mime-types@~2.1.24: + version "2.1.29" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.29.tgz#1d4ab77da64b91f5f72489df29236563754bb1b2" + integrity sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ== dependencies: - mime-db "1.45.0" + mime-db "1.46.0" mime@1.6.0, mime@^1.3.4: version "1.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== -mime@^2.0.3, mime@^2.4.4, mime@^2.4.6: - version "2.5.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.0.tgz#2b4af934401779806ee98026bb42e8c1ae1876b1" - integrity sha512-ft3WayFSFUVBuJj7BMLKAQcSlItKtfjsKDDsii3rqFDAZ7t11zRe8ASw/GlmivGwVUYtwkQrxiGGpL6gFvB0ag== - -mimic-fn@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" - integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== +mime@^2.4.4, mime@^2.4.6: + version "2.5.2" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe" + integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg== -mimic-fn@^2.0.0, mimic-fn@^2.1.0: +mimic-fn@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== +mimic-fn@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-3.1.0.tgz#65755145bbf3e36954b949c16450427451d5ca74" + integrity sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ== + mimic-response@^1.0.0, mimic-response@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" @@ -10359,14 +9667,13 @@ min-indent@^1.0.0: resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== -mini-css-extract-plugin@^0.11.2: - version "0.11.3" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.11.3.tgz#15b0910a7f32e62ffde4a7430cfefbd700724ea6" - integrity sha512-n9BA8LonkOkW1/zn+IbLPQmovsL0wMb9yx75fMJQZf2X1Zoec9yTZtyMePcyu19wPkmFbzZZA6fLTotpFhQsOA== +mini-css-extract-plugin@1.3.9: + version "1.3.9" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-1.3.9.tgz#47a32132b0fd97a119acd530e8421e8f6ab16d5e" + integrity sha512-Ac4s+xhVbqlyhXS5J/Vh/QXUz3ycXlCqoCPpg0vdfhsIBH9eg/It/9L1r1XhSCH737M1lqcWnMuWL13zcygn5A== dependencies: - loader-utils "^1.1.0" - normalize-url "1.9.1" - schema-utils "^1.0.0" + loader-utils "^2.0.0" + schema-utils "^3.0.0" webpack-sources "^1.1.0" mini-svg-data-uri@^1.2.3: @@ -10374,23 +9681,11 @@ mini-svg-data-uri@^1.2.3: resolved "https://registry.yarnpkg.com/mini-svg-data-uri/-/mini-svg-data-uri-1.2.3.tgz#e16baa92ad55ddaa1c2c135759129f41910bc39f" integrity sha512-zd6KCAyXgmq6FV1mR10oKXYtvmA9vRoB6xPSTUJTbFApCtkefDnYueVR1gkof3KcdLZo1Y8mjF2DFmQMIxsHNQ== -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: +minimalistic-assert@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== -minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= - -minimatch@3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" - integrity sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q= - dependencies: - brace-expansion "^1.0.0" - minimatch@3.0.4, minimatch@^3.0.3, minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" @@ -10431,21 +9726,13 @@ minipass@^3.0.0, minipass@^3.1.1: dependencies: yallist "^4.0.0" -mississippi@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" - integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== +minizlib@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== dependencies: - concat-stream "^1.5.0" - duplexify "^3.4.2" - end-of-stream "^1.1.0" - flush-write-stream "^1.0.0" - from2 "^2.1.0" - parallel-transform "^1.1.0" - pump "^3.0.0" - pumpify "^1.3.3" - stream-each "^1.1.0" - through2 "^2.0.0" + minipass "^3.0.0" + yallist "^4.0.0" mitt@^1.2.0: version "1.2.0" @@ -10465,14 +9752,14 @@ mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== -mkdirp@^0.5, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5, mkdirp@~0.5.1: +mkdirp@^0.5, mkdirp@^0.5.1, mkdirp@^0.5.5, mkdirp@~0.5.1: version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== dependencies: minimist "^1.2.5" -mkdirp@^1.0.4: +mkdirp@^1.0.3, mkdirp@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== @@ -10482,18 +9769,6 @@ moment@^2.27.0: resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3" integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ== -move-concurrently@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" - integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= - dependencies: - aproba "^1.1.1" - copy-concurrently "^1.0.0" - fs-write-stream-atomic "^1.0.8" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.3" - mozjpeg@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/mozjpeg/-/mozjpeg-7.0.0.tgz#c20f67a538fcaaa388d325875c53c0e7bc432f7d" @@ -10552,11 +9827,6 @@ multimatch@^4.0.0: arrify "^2.0.1" minimatch "^3.0.4" -mute-stream@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" - integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= - mute-stream@0.0.8, mute-stream@~0.0.4: version "0.0.8" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" @@ -10572,6 +9842,11 @@ nan@^2.12.1: resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== +nanoid@^3.1.20: + version "3.1.22" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.22.tgz#b35f8fb7d151990a8aebd5aa5015c03cf726f844" + integrity sha512-/2ZUaJX2ANuLtTvqTlgqBQNJoQO398KyJgZloL0PZkC0dpysjncRUPsFe3DUPzz/y3h+u7C46np8RMuvF3jsSQ== + nanomatch@^1.2.9: version "1.2.13" resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" @@ -10620,7 +9895,7 @@ negotiator@0.6.2, negotiator@~0.6.2: resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== -neo-async@^2.5.0, neo-async@^2.6.1, neo-async@^2.6.2: +neo-async@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== @@ -10666,9 +9941,9 @@ no-case@^3.0.4: tslib "^2.0.3" node-abi@^2.7.0: - version "2.19.3" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.19.3.tgz#252f5dcab12dad1b5503b2d27eddd4733930282d" - integrity sha512-9xZrlyfvKhWme2EXFKQhZRp1yNWT/uI1luYPr3sFl+H4keYY4xR+1jO7mvTTijIsHf1M+QDe9uWuKeEpLInIlg== + version "2.21.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.21.0.tgz#c2dc9ebad6f4f53d6ea9b531e7b8faad81041d48" + integrity sha512-smhrivuPqEM3H5LmnY3KU6HfYv0u4QklgAxfFyRNujKUzbUcYZ+Jc2EhukB9SRcD2VpqhxM7n/MIcp1Ua1/JMg== dependencies: semver "^5.4.1" @@ -10677,13 +9952,6 @@ node-addon-api@^3.1.0: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.1.0.tgz#98b21931557466c6729e51cb77cd39c965f42239" integrity sha512-flmrDNB06LIl5lywUz7YlNGZH/5p0M7W28k8hzd9Lshtdh1wshD2Y+U4h9LD6KObOy1f+fEVdgprPrEymjM5uw== -node-emoji@^1.0.4: - version "1.10.0" - resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.10.0.tgz#8886abd25d9c7bb61802a658523d1f8d2a89b2da" - integrity sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw== - dependencies: - lodash.toarray "^4.4.0" - node-eta@^0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/node-eta/-/node-eta-0.9.0.tgz#9fb0b099bcd2a021940e603c64254dc003d9a7a8" @@ -10699,44 +9967,15 @@ node-forge@^0.10.0: resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== -node-libs-browser@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" - integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== - dependencies: - assert "^1.1.1" - browserify-zlib "^0.2.0" - buffer "^4.3.0" - console-browserify "^1.1.0" - constants-browserify "^1.0.0" - crypto-browserify "^3.11.0" - domain-browser "^1.1.1" - events "^3.0.0" - https-browserify "^1.0.0" - os-browserify "^0.3.0" - path-browserify "0.0.1" - process "^0.11.10" - punycode "^1.2.4" - querystring-es3 "^0.2.0" - readable-stream "^2.3.3" - stream-browserify "^2.0.1" - stream-http "^2.7.2" - string_decoder "^1.0.0" - timers-browserify "^2.0.4" - tty-browserify "0.0.0" - url "^0.11.0" - util "^0.11.0" - vm-browserify "^1.0.1" - node-object-hash@^2.0.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/node-object-hash/-/node-object-hash-2.1.2.tgz#10c79a43640b4659d06be201b27bc4e3d77ae9fc" - integrity sha512-ltdyKf+VUyPHI/FUWC053xCm0Fs3LfUvsI5eqAmQJ6KZSoXAdTWkm6EWFfeTy5SyJTVptTdPn1X8C4EUwo0T1Q== + version "2.3.1" + resolved "https://registry.yarnpkg.com/node-object-hash/-/node-object-hash-2.3.1.tgz#5e4a6ac7f932cec4f90aff2fbdb953cb83344416" + integrity sha512-ab7pm34jqISawXpJ+fHjj2E9CmzDtm2fTTdurgzbWXIrdTEk2q2cSZRzoeGrwa0cvq6Sqezq6S9bhOBYPHRzuQ== -node-releases@^1.1.70: - version "1.1.70" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.70.tgz#66e0ed0273aa65666d7fe78febe7634875426a08" - integrity sha512-Slf2s69+2/uAD79pVVQo8uSiC34+g8GWY8UH2Qtqv34ZfhYrxpYpfzs9Js9d6O0mbDmALuxaTlplnBTnSELcrw== +node-releases@^1.1.61, node-releases@^1.1.70: + version "1.1.71" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.71.tgz#cb1334b179896b1c89ecfdd4b725fb7bbdfc7dbb" + integrity sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg== noms@0.0.0: version "0.0.0" @@ -10778,16 +10017,6 @@ normalize-range@^0.1.2: resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= -normalize-url@1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" - integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw= - dependencies: - object-assign "^4.0.1" - prepend-http "^1.0.0" - query-string "^4.1.0" - sort-keys "^1.0.0" - normalize-url@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-2.0.1.tgz#835a9da1551fa26f70e92329069a23aa6574d7e6" @@ -10853,18 +10082,13 @@ nth-check@^2.0.0: dependencies: boolbase "^1.0.0" -null-loader@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/null-loader/-/null-loader-3.0.0.tgz#3e2b6c663c5bda8c73a54357d8fa0708dc61b245" - integrity sha512-hf5sNLl8xdRho4UPBOOeoIwT3WhjYcMUQm0zj44EhD6UscMAz72o2udpoDFBgykucdEDGIcd6SXbc/G6zssbzw== +null-loader@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/null-loader/-/null-loader-4.0.1.tgz#8e63bd3a2dd3c64236a4679428632edd0a6dbc6a" + integrity sha512-pxqVbi4U6N26lq+LmgIbB5XATP0VdZKOG25DhHi8btMmJJefGArFyDg1yc4U3hWCJbMqSrw0qyrz1UQX+qYXqg== dependencies: - loader-utils "^1.2.3" - schema-utils "^1.0.0" - -num2fraction@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" - integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= + loader-utils "^2.0.0" + schema-utils "^3.0.0" number-is-nan@^1.0.0: version "1.0.1" @@ -10876,11 +10100,6 @@ object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1 resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= -object-component@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" - integrity sha1-8MaapQ78lbhmwYb0AKM3acsvEpE= - object-copy@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" @@ -10890,27 +10109,17 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" -object-fit-images@^3.2.4: - version "3.2.4" - resolved "https://registry.yarnpkg.com/object-fit-images/-/object-fit-images-3.2.4.tgz#6c299d38fdf207746e5d2d46c2877f6f25d15b52" - integrity sha512-G+7LzpYfTfqUyrZlfrou/PLLLAPNC52FTy5y1CBywX+1/FkxIloOyQXBmZ3Zxa2AWO+lMF0JTuvqbr7G5e5CWg== - -object-hash@^1.1.4: - version "1.3.1" - resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.3.1.tgz#fde452098a951cb145f039bb7d455449ddc126df" - integrity sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA== - -object-inspect@^1.8.0, object-inspect@^1.9.0: +object-inspect@^1.9.0: version "1.9.0" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.9.0.tgz#c90521d74e1127b67266ded3394ad6116986533a" integrity sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw== object-is@^1.0.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.4.tgz#63d6c83c00a43f4cbc9434eb9757c8a5b8565068" - integrity sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg== + version "1.1.5" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== dependencies: - call-bind "^1.0.0" + call-bind "^1.0.2" define-properties "^1.1.3" object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.0, object-keys@^1.1.1: @@ -10918,7 +10127,7 @@ object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.0, object-keys@^1.1.1 resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -object-path@^0.11.2, object-path@^0.11.4: +object-path@0.11.5, object-path@^0.11.4: version "0.11.5" resolved "https://registry.yarnpkg.com/object-path/-/object-path-0.11.5.tgz#d4e3cf19601a5140a55a16ad712019a9c50b577a" integrity sha512-jgSbThcoR/s+XumvGMTMf81QVBmah+/Q7K7YduKeKVWL7N111unR2d6pZZarSk6kY/caeNxUDyxOvMWyzoU2eg== @@ -10930,7 +10139,7 @@ object-visit@^1.0.0: dependencies: isobject "^3.0.0" -object.assign@^4.1.0, object.assign@^4.1.1, object.assign@^4.1.2: +object.assign@^4.1.0, object.assign@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== @@ -10951,23 +10160,23 @@ object.entries@^1.1.2: has "^1.0.3" object.fromentries@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.3.tgz#13cefcffa702dc67750314a3305e8cb3fad1d072" - integrity sha512-IDUSMXs6LOSJBWE++L0lzIbSqHl9KDCfff2x/JSEIDtEUavUnyMYC2ZGay/04Zq4UT8lvd4xNhU4/YHKibAOlw== + version "2.0.4" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.4.tgz#26e1ba5c4571c5c6f0890cef4473066456a120b8" + integrity sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ== dependencies: - call-bind "^1.0.0" + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.18.0-next.1" + es-abstract "^1.18.0-next.2" has "^1.0.3" object.getownpropertydescriptors@^2.1.0, object.getownpropertydescriptors@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.1.tgz#0dfda8d108074d9c563e80490c883b6661091544" - integrity sha512-6DtXgZ/lIZ9hqx4GtZETobXLR/ZLaa0aqV0kzbn80Rf8Z2e/XFnhA0I7p07N2wH8bBBltr2xQPi6sbKWAY2Eng== + version "2.1.2" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz#1bd63aeacf0d5d2d2f31b5e393b03a7c601a23f7" + integrity sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ== dependencies: - call-bind "^1.0.0" + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.18.0-next.1" + es-abstract "^1.18.0-next.2" object.pick@^1.3.0: version "1.3.0" @@ -10977,13 +10186,13 @@ object.pick@^1.3.0: isobject "^3.0.1" object.values@^1.1.0, object.values@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.2.tgz#7a2015e06fcb0f546bd652486ce8583a4731c731" - integrity sha512-MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag== + version "1.1.3" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.3.tgz#eaa8b1e17589f02f698db093f7c62ee1699742ee" + integrity sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw== dependencies: - call-bind "^1.0.0" + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.18.0-next.1" + es-abstract "^1.18.0-next.2" has "^1.0.3" obuf@^1.0.0, obuf@^1.1.2: @@ -11015,13 +10224,6 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" -onetime@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" - integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= - dependencies: - mimic-fn "^1.0.0" - onetime@^5.1.0: version "5.1.2" resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" @@ -11029,31 +10231,19 @@ onetime@^5.1.0: dependencies: mimic-fn "^2.1.0" -open@^7.0.3: - version "7.4.0" - resolved "https://registry.yarnpkg.com/open/-/open-7.4.0.tgz#ad95b98f871d9acb0ec8fecc557082cc9986626b" - integrity sha512-PGoBCX/lclIWlpS/R2PQuIR4NJoXh6X5AwVzE7WXnWRGvHg7+4TBCgsujUgiPpm0K1y4qvQeWnCWVTpTKZBtvA== +open@^7.0.2, open@^7.0.3: + version "7.4.2" + resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321" + integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q== dependencies: is-docker "^2.0.0" is-wsl "^2.1.1" -opencollective-postinstall@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259" - integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q== - opentracing@^0.14.4: version "0.14.5" resolved "https://registry.yarnpkg.com/opentracing/-/opentracing-0.14.5.tgz#891fa92cd90a24e64f99bc964370227310926c85" integrity sha512-XLKtEfHxqrWyF1fzxznsv78w3csW41ucHnjiKnfzZLD5FN8UBDZZL1i4q0FR29zjxXhm+2Hop+5Vr/b8tKIvEg== -opn@5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/opn/-/opn-5.1.0.tgz#72ce2306a17dbea58ff1041853352b4a8fc77519" - integrity sha512-iPNl7SyM8L30Rm1sjGdLLheyHVw5YXVfi3SKWJzBI7efxRwHojfRFjwE/OLM6qp9xJYMgab8WicTU1cPoY+Hpg== - dependencies: - is-wsl "^1.1.0" - opn@^5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" @@ -11061,38 +10251,25 @@ opn@^5.5.0: dependencies: is-wsl "^1.1.0" -optimize-css-assets-webpack-plugin@^5.0.3: - version "5.0.4" - resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.4.tgz#85883c6528aaa02e30bbad9908c92926bb52dc90" - integrity sha512-wqd6FdI2a5/FdoiCNNkEvLeA//lHHfG24Ln2Xm2qqdIk4aOlsR18jwpyOihqQ8849W3qu2DX8fOYxpvTMj+93A== - dependencies: - cssnano "^4.1.10" - last-call-webpack-plugin "^3.0.0" - -optionator@^0.8.3: - version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" -original@>=0.0.5, original@^1.0.0: +original@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== dependencies: url-parse "^1.4.3" -os-browserify@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= - os-filter-obj@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/os-filter-obj/-/os-filter-obj-2.0.0.tgz#1c0b62d5f3a2442749a2d139e6dddee6e81d8d16" @@ -11100,15 +10277,6 @@ os-filter-obj@^2.0.0: dependencies: arch "^2.1.0" -os-locale@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" - integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== - dependencies: - execa "^1.0.0" - lcid "^2.0.0" - mem "^4.0.0" - os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" @@ -11137,9 +10305,9 @@ p-cancelable@^1.0.0: integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== p-cancelable@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.0.0.tgz#4a3740f5bdaf5ed5d7c3e34882c6fb5d6b266a6e" - integrity sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg== + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.0.tgz#4d51c3b91f483d02a0d300765321fca393d758dd" + integrity sha512-HAZyB3ZodPo+BDpb4/Iu7Jv4P6cSazBz9ZM0ChhEXp70scx834aWCEjQRwgt41UzzejUAPdbqqONfRWTPYrPAQ== p-defer@^1.0.0: version "1.0.0" @@ -11187,17 +10355,12 @@ p-is-promise@^1.1.0: resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e" integrity sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4= -p-is-promise@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" - integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== - -p-limit@3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.0.2.tgz#1664e010af3cadc681baafd3e2a437be7b0fb5fe" - integrity sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg== +p-limit@3.1.0, p-limit@^3.0.2, p-limit@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== dependencies: - p-try "^2.0.0" + yocto-queue "^0.1.0" p-limit@^1.1.0: version "1.3.0" @@ -11206,20 +10369,13 @@ p-limit@^1.1.0: dependencies: p-try "^1.0.0" -p-limit@^2.0.0, p-limit@^2.2.0, p-limit@^2.3.0: +p-limit@^2.0.0, p-limit@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== dependencies: p-try "^2.0.0" -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - p-locate@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" @@ -11241,13 +10397,6 @@ p-locate@^4.1.0: dependencies: p-limit "^2.2.0" -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - p-map-series@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-map-series/-/p-map-series-1.0.0.tgz#bf98fe575705658a9e1351befb85ae4c1f07bdca" @@ -11267,6 +10416,13 @@ p-map@^3.0.0: dependencies: aggregate-error "^3.0.0" +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + p-pipe@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/p-pipe/-/p-pipe-3.1.0.tgz#48b57c922aa2e1af6a6404cb7c6bf0eb9cc8e60e" @@ -11323,16 +10479,6 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== -package-json@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" - integrity sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0= - dependencies: - got "^6.7.1" - registry-auth-token "^3.0.1" - registry-url "^3.0.3" - semver "^5.1.0" - package-json@^6.3.0: version "6.5.0" resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" @@ -11343,20 +10489,11 @@ package-json@^6.3.0: registry-url "^5.0.0" semver "^6.2.0" -pako@^1.0.5, pako@~1.0.5: +pako@^1.0.5: version "1.0.11" resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== -parallel-transform@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" - integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== - dependencies: - cyclist "^1.0.1" - inherits "^2.0.3" - readable-stream "^2.1.5" - param-case@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" @@ -11371,17 +10508,6 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse-asn1@^5.0.0, parse-asn1@^5.1.5: - version "5.1.6" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" - integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== - dependencies: - asn1.js "^5.2.0" - browserify-aes "^1.0.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - safe-buffer "^5.1.1" - parse-bmfont-ascii@^1.0.3: version "1.0.6" resolved "https://registry.yarnpkg.com/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz#11ac3c3ff58f7c2020ab22769079108d4dfa0285" @@ -11478,11 +10604,6 @@ parse-numeric-range@^0.0.2: resolved "https://registry.yarnpkg.com/parse-numeric-range/-/parse-numeric-range-0.0.2.tgz#b4f09d413c7adbcd987f6e9233c7b4b210c938e4" integrity sha1-tPCdQTx6282Yf26SM8e0shDJOOQ= -parse-passwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" - integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= - parse-path@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-4.0.3.tgz#82d81ec3e071dcc4ab49aa9f2c9c0b8966bb22bf" @@ -11525,25 +10646,11 @@ parse5@^6.0.0, parse5@^6.0.1: resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== -parseqs@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" - integrity sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0= - dependencies: - better-assert "~1.0.0" - parseqs@0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.6.tgz#8e4bb5a19d1cdc844a08ac974d34e273afa670d5" integrity sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w== -parseuri@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" - integrity sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo= - dependencies: - better-assert "~1.0.0" - parseuri@0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.6.tgz#e1496e829e3ac2ff47f39a4dd044b32823c4a25a" @@ -11583,11 +10690,6 @@ password-prompt@^1.0.4: ansi-escapes "^3.1.0" cross-spawn "^6.0.5" -path-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" - integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== - path-case@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/path-case/-/path-case-2.1.1.tgz#94b8037c372d3fe2906e465bb45e25d226e8eea5" @@ -11622,7 +10724,7 @@ path-is-absolute@^1.0.0: resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= -path-is-inside@^1.0.1, path-is-inside@^1.0.2: +path-is-inside@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= @@ -11668,17 +10770,6 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -pbkdf2@^3.0.3: - version "3.1.1" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94" - integrity sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg== - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - peek-readable@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/peek-readable/-/peek-readable-3.1.3.tgz#932480d46cf6aa553c46c68566c4fb69a82cd2b1" @@ -11738,13 +10829,6 @@ pixelmatch@^4.0.2: dependencies: pngjs "^3.0.0" -pkg-dir@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" - integrity sha1-ektQio1bstYp1EcFb/TpyTFM89Q= - dependencies: - find-up "^1.0.0" - pkg-dir@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" @@ -11766,19 +10850,17 @@ pkg-dir@^4.1.0, pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" -pkg-dir@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-5.0.0.tgz#a02d6aebe6ba133a928f74aec20bafdfe6b8e760" - integrity sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA== +pkg-up@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" + integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== dependencies: - find-up "^5.0.0" + find-up "^3.0.0" -please-upgrade-node@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" - integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== - dependencies: - semver-compare "^1.0.0" +platform@^1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/platform/-/platform-1.3.6.tgz#48b4ce983164b209c2d45a107adb31f473a6e7a7" + integrity sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg== pngjs@^3.0.0, pngjs@^3.3.3: version "3.4.0" @@ -11872,30 +10954,19 @@ postcss-discard-overridden@^4.0.1: dependencies: postcss "^7.0.0" -postcss-flexbugs-fixes@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.2.1.tgz#9218a65249f30897deab1033aced8578562a6690" - integrity sha512-9SiofaZ9CWpQWxOwRh1b/r85KD5y7GgvsNt1056k6OYLvWUun0czCvogfJgylC22uJTwW1KzY3Gz65NZRlvoiQ== - dependencies: - postcss "^7.0.26" - -postcss-load-config@^2.0.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.2.tgz#c5ea504f2c4aef33c7359a34de3573772ad7502a" - integrity sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw== - dependencies: - cosmiconfig "^5.0.0" - import-cwd "^2.0.0" +postcss-flexbugs-fixes@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz#2028e145313074fc9abe276cb7ca14e5401eb49d" + integrity sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ== -postcss-loader@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d" - integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA== +postcss-loader@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-5.2.0.tgz#ccd6668a778902d653602289c765a8bc481986dc" + integrity sha512-uSuCkENFeUaOYsKrXm0eNNgVIxc71z8RcckLMbVw473rGojFnrUeqEz6zBgXsH2q1EIzXnO/4pEz9RhALjlITA== dependencies: - loader-utils "^1.1.0" - postcss "^7.0.0" - postcss-load-config "^2.0.0" - schema-utils "^1.0.0" + cosmiconfig "^7.0.0" + klona "^2.0.4" + semver "^7.3.4" postcss-merge-longhand@^4.0.11: version "4.0.11" @@ -11959,36 +11030,33 @@ postcss-minify-selectors@^4.0.2: postcss "^7.0.0" postcss-selector-parser "^3.0.0" -postcss-modules-extract-imports@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz#dc87e34148ec7eab5f791f7cd5849833375b741a" - integrity sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw== - dependencies: - postcss "^6.0.1" +postcss-modules-extract-imports@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d" + integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== -postcss-modules-local-by-default@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069" - integrity sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk= +postcss-modules-local-by-default@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz#ebbb54fae1598eecfdf691a02b3ff3b390a5a51c" + integrity sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ== dependencies: - css-selector-tokenizer "^0.7.0" - postcss "^6.0.1" + icss-utils "^5.0.0" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.1.0" -postcss-modules-scope@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90" - integrity sha1-1upkmUx5+XtipytCb75gVqGUu5A= +postcss-modules-scope@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06" + integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg== dependencies: - css-selector-tokenizer "^0.7.0" - postcss "^6.0.1" + postcss-selector-parser "^6.0.4" -postcss-modules-values@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20" - integrity sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA= +postcss-modules-values@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" + integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== dependencies: - icss-replace-symbols "^1.1.0" - postcss "^6.0.1" + icss-utils "^5.0.0" postcss-normalize-charset@^4.0.1: version "4.0.1" @@ -12109,7 +11177,7 @@ postcss-selector-parser@^3.0.0: indexes-of "^1.0.1" uniq "^1.0.1" -postcss-selector-parser@^6.0.2: +postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: version "6.0.4" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz#56075a1380a04604c38b063ea7767a129af5c2b3" integrity sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw== @@ -12138,7 +11206,7 @@ postcss-unique-selectors@^4.0.1: postcss "^7.0.0" uniqs "^2.0.0" -postcss-value-parser@^3.0.0, postcss-value-parser@^3.3.0: +postcss-value-parser@^3.0.0: version "3.3.1" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== @@ -12148,16 +11216,25 @@ postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== -postcss@^6.0.1, postcss@^6.0.23: - version "6.0.23" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" - integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag== +postcss@7.0.21: + version "7.0.21" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.21.tgz#06bb07824c19c2021c5d056d5b10c35b989f7e17" + integrity sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ== dependencies: - chalk "^2.4.1" + chalk "^2.4.2" + source-map "^0.6.1" + supports-color "^6.1.0" + +postcss@8.2.6: + version "8.2.6" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.2.6.tgz#5d69a974543b45f87e464bc4c3e392a97d6be9fe" + integrity sha512-xpB8qYxgPuly166AGlpRjUdEYtmOWx2iCwGmrv4vqZL9YPVviDVPZPRXxnXr6xPZOdxQ9lp3ZBFCRgWJ7LE3Sg== + dependencies: + colorette "^1.2.1" + nanoid "^3.1.20" source-map "^0.6.1" - supports-color "^5.4.0" -postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.32: +postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.27: version "7.0.35" resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.35.tgz#d2be00b998f7f211d8a276974079f2e92b970e24" integrity sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg== @@ -12166,6 +11243,15 @@ postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.3 source-map "^0.6.1" supports-color "^6.1.0" +postcss@^8.2.8: + version "8.2.8" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.2.8.tgz#0b90f9382efda424c4f0f69a2ead6f6830d08ece" + integrity sha512-1F0Xb2T21xET7oQV9eKuctbM9S7BC0fetoHCc4H13z0PT6haiRLP4T0ZY4XWh7iLP0usgqykT6p9B2RtOf4FPw== + dependencies: + colorette "^1.2.2" + nanoid "^3.1.20" + source-map "^0.6.1" + potrace@^2.1.8: version "2.1.8" resolved "https://registry.yarnpkg.com/potrace/-/potrace-2.1.8.tgz#50f6fba92e1e39ddef6f979b0a0f841809e0acf2" @@ -12173,10 +11259,10 @@ potrace@^2.1.8: dependencies: jimp "^0.14.0" -prebuild-install@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-6.0.0.tgz#669022bcde57c710a869e39c5ca6bf9cd207f316" - integrity sha512-h2ZJ1PXHKWZpp1caLw0oX9sagVpL2YTk+ZwInQbQ3QqNd4J03O6MpFNmMTJlkfgPENWqe5kP0WjQLqz5OjLfsw== +prebuild-install@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-6.0.1.tgz#5902172f7a40eb67305b96c2a695db32636ee26d" + integrity sha512-7GOJrLuow8yeiyv75rmvZyeMGzl8mdEX5gY69d6a6bHWmiPevwqFw+tQavhK0EYMaSg3/KD24cWqeQv1EWsqDQ== dependencies: detect-libc "^1.0.3" expand-template "^2.0.3" @@ -12194,12 +11280,12 @@ prebuild-install@^6.0.0: tunnel-agent "^0.6.0" which-pm-runs "^1.0.0" -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prepend-http@^1.0.0, prepend-http@^1.0.1: +prepend-http@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= @@ -12215,9 +11301,9 @@ prettier@^2.0.5, prettier@^2.2.1: integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q== pretty-bytes@^5.3.0, pretty-bytes@^5.4.1: - version "5.5.0" - resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.5.0.tgz#0cecda50a74a941589498011cf23275aa82b339e" - integrity sha512-p+T744ZyjjiaFlMUZZv6YPC5JrkNj8maRmPaQCWFJFplUAzpIUTRaTcS+7wmZtUoFXHtESJb23ISliaWyz3SHA== + version "5.6.0" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" + integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== pretty-error@^2.1.1: version "2.1.2" @@ -12285,7 +11371,7 @@ promise-inflight@^1.0.1: resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= -prompts@^2.3.2: +prompts@2.4.0, prompts@^2.3.2: version "2.4.0" resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.0.tgz#4aa5de0723a231d1ee9121c40fdf663df73f61d7" integrity sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ== @@ -12361,26 +11447,6 @@ pseudomap@^1.0.1, pseudomap@^1.0.2: resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" - integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - safe-buffer "^5.1.2" - -pump@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" - integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - pump@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" @@ -12389,25 +11455,11 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" -pumpify@^1.3.3: - version "1.5.1" - resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" - integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== - dependencies: - duplexify "^3.6.0" - inherits "^2.0.3" - pump "^2.0.0" - punycode@1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= -punycode@^1.2.4: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= - punycode@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" @@ -12435,14 +11487,6 @@ qs@^6.9.4: resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.6.tgz#26ed3c8243a431b2924aca84cc90471f35d5a0ee" integrity sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ== -query-string@^4.1.0: - version "4.3.4" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" - integrity sha1-u7aTucqRXCMlFbIosaArYJBD2+s= - dependencies: - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" - query-string@^5.0.1: version "5.1.1" resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" @@ -12453,49 +11497,52 @@ query-string@^5.0.1: strict-uri-encode "^1.0.0" query-string@^6.13.1, query-string@^6.13.3, query-string@^6.13.8: - version "6.13.8" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.13.8.tgz#8cf231759c85484da3cf05a851810d8e825c1159" - integrity sha512-jxJzQI2edQPE/NPUOusNjO/ZOGqr1o2OBa/3M00fU76FsLXDVbJDv/p7ng5OdQyorKrkRz1oqfwmbe5MAMePQg== + version "6.14.1" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.14.1.tgz#7ac2dca46da7f309449ba0f86b1fd28255b0c86a" + integrity sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw== dependencies: decode-uri-component "^0.2.0" + filter-obj "^1.1.0" split-on-first "^1.0.0" strict-uri-encode "^2.0.0" -querystring-es3@^0.2.0, querystring-es3@^0.2.1: +querystring-es3@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= -querystring@0.2.0, querystring@^0.2.0: +querystring@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= +querystring@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.1.tgz#40d77615bb09d16902a85c3e38aa8b5ed761c2dd" + integrity sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg== + querystringify@^2.1.1: version "2.2.0" resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== +queue-microtask@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.2.tgz#abf64491e6ecf0f38a6502403d4cda04f372dfd3" + integrity sha512-dB15eXv3p2jDlbOiNLyMabYg1/sXvppd8DP2J3EOCQ0AkuSXCW2tP7mnVouVLJKgUMY6yP0kcQDVpLCN13h4Xg== + ramda@0.21.0: version "0.21.0" resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.21.0.tgz#a001abedb3ff61077d4ff1d577d44de77e8d0a35" integrity sha1-oAGr7bP/YQd9T/HVd9RN536NCjU= -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: +randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - range-parser@^1.2.1, range-parser@~1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" @@ -12521,12 +11568,15 @@ raw-body@^2.4.1: iconv-lite "0.4.24" unpipe "1.0.0" -raw-loader@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-0.5.1.tgz#0c3d0beaed8a01c966d9787bf778281252a979aa" - integrity sha1-DD0L6u2KAclm2Xh793goElKpeao= +raw-loader@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-4.0.2.tgz#1aac6b7d1ad1501e66efdac1522c73e59a584eb6" + integrity sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" -rc@^1.0.1, rc@^1.1.6, rc@^1.2.7, rc@^1.2.8: +rc@^1.2.7, rc@^1.2.8: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== @@ -12537,51 +11587,57 @@ rc@^1.0.1, rc@^1.1.6, rc@^1.2.7, rc@^1.2.8: strip-json-comments "~2.0.1" react-bootstrap@^1.0.1: - version "1.4.3" - resolved "https://registry.yarnpkg.com/react-bootstrap/-/react-bootstrap-1.4.3.tgz#9a76a66800b57f422dd824c9dbe4c9dcef634790" - integrity sha512-4tYhk26KRnK0myMEp2wvNjOvnHMwWfa6pWFIiCtj9wewYaTxP7TrCf7MwcIMBgUzyX0SJXx6UbbDG0+hObiXNg== + version "1.5.2" + resolved "https://registry.yarnpkg.com/react-bootstrap/-/react-bootstrap-1.5.2.tgz#07dabec53d10491a520c49f102170b440fa89008" + integrity sha512-mGKPY5+lLd7Vtkx2VFivoRkPT4xAHazuFfIhJLTEgHlDfIUSePn7qrmpZe5gXH9zvHV0RsBaQ9cLfXjxnZrOpA== dependencies: - "@babel/runtime" "^7.4.2" + "@babel/runtime" "^7.13.8" "@restart/context" "^2.1.4" - "@restart/hooks" "^0.3.21" + "@restart/hooks" "^0.3.26" "@types/classnames" "^2.2.10" "@types/invariant" "^2.2.33" "@types/prop-types" "^15.7.3" "@types/react" ">=16.9.35" - "@types/react-transition-group" "^4.4.0" + "@types/react-transition-group" "^4.4.1" "@types/warning" "^3.0.0" classnames "^2.2.6" dom-helpers "^5.1.2" invariant "^2.2.4" prop-types "^15.7.2" prop-types-extra "^1.1.0" - react-overlays "^4.1.0" + react-overlays "^5.0.0" react-transition-group "^4.4.1" - uncontrollable "^7.0.0" + uncontrollable "^7.2.1" warning "^4.0.3" -react-dev-utils@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-4.2.3.tgz#5b42d9ea58d5e9e017a2f57a40a8af408a3a46fb" - integrity sha512-uvmkwl5uMexCmC0GUv1XGQP0YjfYePJufGg4YYiukhqk2vN1tQxwWJIBERqhOmSi80cppZg8mZnPP/kOMf1sUQ== - dependencies: - address "1.0.3" - babel-code-frame "6.26.0" - chalk "1.1.3" - cross-spawn "5.1.0" - detect-port-alt "1.1.3" - escape-string-regexp "1.0.5" - filesize "3.5.11" - global-modules "1.0.0" - gzip-size "3.0.0" - inquirer "3.3.0" - is-root "1.0.0" - opn "5.1.0" - react-error-overlay "^3.0.0" - recursive-readdir "2.2.1" - shell-quote "1.6.1" - sockjs-client "1.1.4" - strip-ansi "3.0.1" +react-dev-utils@^11.0.3: + version "11.0.4" + resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-11.0.4.tgz#a7ccb60257a1ca2e0efe7a83e38e6700d17aa37a" + integrity sha512-dx0LvIGHcOPtKbeiSUM4jqpBl3TcY7CDjZdfOIcKeznE7BWr9dg0iPG90G5yfVQ+p/rGNMXdbfStvzQZEVEi4A== + dependencies: + "@babel/code-frame" "7.10.4" + address "1.1.2" + browserslist "4.14.2" + chalk "2.4.2" + cross-spawn "7.0.3" + detect-port-alt "1.1.6" + escape-string-regexp "2.0.0" + filesize "6.1.0" + find-up "4.1.0" + fork-ts-checker-webpack-plugin "4.1.6" + global-modules "2.0.0" + globby "11.0.1" + gzip-size "5.1.1" + immer "8.0.1" + is-root "2.1.0" + loader-utils "2.0.0" + open "^7.0.2" + pkg-up "3.1.0" + prompts "2.4.0" + react-error-overlay "^6.0.9" + recursive-readdir "2.2.2" + shell-quote "1.7.2" + strip-ansi "6.0.0" text-table "0.2.0" react-dom@^17.0.1: @@ -12593,10 +11649,10 @@ react-dom@^17.0.1: object-assign "^4.1.1" scheduler "^0.20.1" -react-error-overlay@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-3.0.0.tgz#c2bc8f4d91f1375b3dad6d75265d51cd5eeaf655" - integrity sha512-XzgvowFrwDo6TWcpJ/WTiarb9UI6lhA4PMzS7n1joK3sHfBBBOQHUc0U4u57D6DWO9vHv6lVSWx2Q/Ymfyv4hw== +react-error-overlay@^6.0.9: + version "6.0.9" + resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.9.tgz#3c743010c9359608c375ecd6bc76f35d93995b0a" + integrity sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew== react-fast-compare@^3.0.0, react-fast-compare@^3.1.1: version "3.2.0" @@ -12613,43 +11669,29 @@ react-helmet@^6.0.0: react-fast-compare "^3.1.1" react-side-effect "^2.1.0" -react-hot-loader@^4.12.21: - version "4.13.0" - resolved "https://registry.yarnpkg.com/react-hot-loader/-/react-hot-loader-4.13.0.tgz#c27e9408581c2a678f5316e69c061b226dc6a202" - integrity sha512-JrLlvUPqh6wIkrK2hZDfOyq/Uh/WeVEr8nc7hkn2/3Ul0sx1Kr5y4kOGNacNRoj7RhwLNcQ3Udf1KJXrqc0ZtA== - dependencies: - fast-levenshtein "^2.0.6" - global "^4.3.0" - hoist-non-react-statics "^3.3.0" - loader-utils "^1.1.0" - prop-types "^15.6.1" - react-lifecycles-compat "^3.0.4" - shallowequal "^1.1.0" - source-map "^0.7.3" - -react-instantsearch-core@^6.9.0: - version "6.9.0" - resolved "https://registry.yarnpkg.com/react-instantsearch-core/-/react-instantsearch-core-6.9.0.tgz#7dc05082a2df50f50181e77bb0a2fab0d245f5ea" - integrity sha512-xLNyF0mUBq7MaLQgmosBnxac7YnLTuanu5TKZkH7RFEVC2T5mi4fINtG6vAkOkVjiH90abv2wdPY6UjE/Vt6kQ== +react-instantsearch-core@^6.10.3: + version "6.10.3" + resolved "https://registry.yarnpkg.com/react-instantsearch-core/-/react-instantsearch-core-6.10.3.tgz#00679b0a2fe228f3845924c43857a20b18a44978" + integrity sha512-7twp3OJrPGTFpyXwjJNeOTbQw7RTv+0cUyKkXR9njEyLdXKcPWfpeBirXfdQHjYIHEY2b0V2Vom1B9IHSDSUtQ== dependencies: "@babel/runtime" "^7.1.2" - algoliasearch-helper "^3.1.0" + algoliasearch-helper "^3.4.3" prop-types "^15.6.2" react-fast-compare "^3.0.0" react-instantsearch-dom@^6.9.0: - version "6.9.0" - resolved "https://registry.yarnpkg.com/react-instantsearch-dom/-/react-instantsearch-dom-6.9.0.tgz#bd1f564bb0243750ca0ee3b1ec55d60cfc87196f" - integrity sha512-G8jSIC5QutdiK6QhZwyLcIONg2C6/6wRMkAM6uZ5ObSDvY+h/PkSohc8//A7LNOyedOCACd/UfdWlmexSYjl6Q== + version "6.10.3" + resolved "https://registry.yarnpkg.com/react-instantsearch-dom/-/react-instantsearch-dom-6.10.3.tgz#314946b338198400acdbb0c5d79277fcf5c18350" + integrity sha512-kxc6IEruxJrc7O9lsLV5o4YK/RkGt3l7D1Y51JfmYkgeLuQHApwgcy/TAIoSN7wfR/1DONFbX8Y5VhU9Wqh87Q== dependencies: "@babel/runtime" "^7.1.2" - algoliasearch-helper "^3.1.0" + algoliasearch-helper "^3.4.3" classnames "^2.2.5" prop-types "^15.6.2" react-fast-compare "^3.0.0" - react-instantsearch-core "^6.9.0" + react-instantsearch-core "^6.10.3" -react-is@^16.12.0, react-is@^16.3.2, react-is@^16.7.0, react-is@^16.8.1: +react-is@^16.12.0, react-is@^16.3.2, react-is@^16.8.1: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== @@ -12659,10 +11701,10 @@ react-lifecycles-compat@^3.0.4: resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== -react-overlays@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/react-overlays/-/react-overlays-4.1.1.tgz#0060107cbe1c5171a744ccda3fbf0556d064bc5f" - integrity sha512-WtJifh081e6M24KnvTQoNjQEpz7HoLxqt8TwZM7LOYIkYJ8i/Ly1Xi7RVte87ZVnmqQ4PFaFiNHZhSINPSpdBQ== +react-overlays@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/react-overlays/-/react-overlays-5.0.0.tgz#b50351de194dda0706b40f9632d261c9f0011c4c" + integrity sha512-TKbqfAv23TFtCJ2lzISdx76p97G/DP8Rp4TOFdqM9n8GTruVYgE3jX7Zgb8+w7YJ18slTVcDTQ1/tFzdCqjVhA== dependencies: "@babel/runtime" "^7.12.1" "@popperjs/core" "^2.5.3" @@ -12673,11 +11715,6 @@ react-overlays@^4.1.0: uncontrollable "^7.0.0" warning "^4.0.3" -react-refresh@^0.8.3: - version "0.8.3" - resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.8.3.tgz#721d4657672d400c5e3c75d063c4a85fb2d5d68f" - integrity sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg== - react-refresh@^0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.9.0.tgz#71863337adc3e5c2f8a6bfddd12ae3bfe32aafbf" @@ -12747,7 +11784,7 @@ read@^1.0.7: dependencies: mute-stream "~0.0.4" -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6: +readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.3.0, readable-stream@^2.3.5, readable-stream@~2.3.6: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== @@ -12803,12 +11840,12 @@ readdirp@~3.5.0: dependencies: picomatch "^2.2.1" -recursive-readdir@2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.1.tgz#90ef231d0778c5ce093c9a48d74e5c5422d13a99" - integrity sha1-kO8jHQd4xc4JPJpI105cVCLROpk= +recursive-readdir@2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.2.tgz#9946fb3274e1628de6e36b2f6714953b4845094f" + integrity sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg== dependencies: - minimatch "3.0.3" + minimatch "3.0.4" redent@^1.0.0: version "1.0.0" @@ -12850,11 +11887,6 @@ regenerate@^1.4.0: resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== -regenerator-runtime@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" - integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== - regenerator-runtime@^0.13.3, regenerator-runtime@^0.13.4: version "0.13.7" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" @@ -12875,7 +11907,12 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" -regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.3.0: +regex-parser@^2.2.11: + version "2.2.11" + resolved "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.2.11.tgz#3b37ec9049e19479806e878cabe7c1ca83ccfe58" + integrity sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q== + +regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26" integrity sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA== @@ -12883,12 +11920,7 @@ regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.3.0: call-bind "^1.0.2" define-properties "^1.1.3" -regexpp@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" - integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== - -regexpp@^3.0.0: +regexpp@^3.0.0, regexpp@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== @@ -12905,14 +11937,6 @@ regexpu-core@^4.7.1: unicode-match-property-ecmascript "^1.0.4" unicode-match-property-value-ecmascript "^1.2.0" -registry-auth-token@^3.0.1: - version "3.4.0" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.4.0.tgz#d7446815433f5d5ed6431cd5dca21048f66b397e" - integrity sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A== - dependencies: - rc "^1.1.6" - safe-buffer "^5.0.1" - registry-auth-token@^4.0.0: version "4.2.1" resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.1.tgz#6d7b4006441918972ccd5fedcd41dc322c79b250" @@ -12920,13 +11944,6 @@ registry-auth-token@^4.0.0: dependencies: rc "^1.2.8" -registry-url@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" - integrity sha1-PU74cPc93h138M+aOBQyRE4XSUI= - dependencies: - rc "^1.0.1" - registry-url@^5.0.0: version "5.1.0" resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" @@ -13002,12 +12019,12 @@ rehype-stringify@^8.0.0: hast-util-to-html "^7.1.1" "remark-admonitions@https://github.com/josh-heyer/remark-admonitions": - version "1.2.2" - resolved "https://github.com/josh-heyer/remark-admonitions#454357c48ba407e86a2582c4c7b2882476f238ed" + version "1.3.0" + resolved "https://github.com/josh-heyer/remark-admonitions#f7f17503c21b4e16dbf8fb4d5e93573fef818064" dependencies: rehype-parse "^6.0.2" unified "^8.4.2" - unist-util-visit "^2.0.1" + unist-util-visit "^2.0.3" remark-footnotes@2.0.0: version "2.0.0" @@ -13211,16 +12228,16 @@ require-directory@^2.1.1: resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + "require-like@>= 0.1.1": version "0.1.2" resolved "https://registry.yarnpkg.com/require-like/-/require-like-0.1.2.tgz#ad6f30c13becd797010c468afa775c0c0a6b47fa" integrity sha1-rW8wwTvs15cBDEaK+ndcDAprR/o= -require-main-filename@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" - integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= - require-main-filename@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" @@ -13250,14 +12267,6 @@ resolve-cwd@^3.0.0: dependencies: resolve-from "^5.0.0" -resolve-dir@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" - integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= - dependencies: - expand-tilde "^2.0.0" - global-modules "^1.0.0" - resolve-from@5.0.0, resolve-from@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" @@ -13273,17 +12282,33 @@ resolve-from@^4.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== +resolve-url-loader@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-3.1.2.tgz#235e2c28e22e3e432ba7a5d4e305c59a58edfc08" + integrity sha512-QEb4A76c8Mi7I3xNKXlRKQSlLBwjUV/ULFMP+G7n3/7tJZ8MG5wsZ3ucxP1Jz8Vevn6fnJsxDx9cIls+utGzPQ== + dependencies: + adjust-sourcemap-loader "3.0.0" + camelcase "5.3.1" + compose-function "3.0.3" + convert-source-map "1.7.0" + es6-iterator "2.0.3" + loader-utils "1.2.3" + postcss "7.0.21" + rework "1.0.1" + rework-visit "1.0.0" + source-map "0.6.1" + resolve-url@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@^1.10.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.17.0, resolve@^1.18.1, resolve@^1.3.2: - version "1.19.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c" - integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== +resolve@^1.10.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.18.1, resolve@^1.3.2: + version "1.20.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" + integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== dependencies: - is-core-module "^2.1.0" + is-core-module "^2.2.0" path-parse "^1.0.6" responselike@1.0.2, responselike@^1.0.2: @@ -13300,14 +12325,6 @@ responselike@^2.0.0: dependencies: lowercase-keys "^2.0.0" -restore-cursor@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" - integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= - dependencies: - onetime "^2.0.0" - signal-exit "^3.0.2" - restore-cursor@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" @@ -13339,6 +12356,19 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== +rework-visit@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rework-visit/-/rework-visit-1.0.0.tgz#9945b2803f219e2f7aca00adb8bc9f640f842c9a" + integrity sha1-mUWygD8hni96ygCtuLyfZA+ELJo= + +rework@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/rework/-/rework-1.0.1.tgz#30806a841342b54510aa4110850cd48534144aa7" + integrity sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc= + dependencies: + convert-source-map "^0.3.3" + css "^2.0.0" + rgb-regex@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" @@ -13349,63 +12379,31 @@ rgba-regex@^1.0.0: resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= -rimraf@2.6.3: - version "2.6.3" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" - integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== - dependencies: - glob "^7.1.3" - -rimraf@^2.5.0, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3, rimraf@^2.7.1: +rimraf@^2.6.2, rimraf@^2.6.3: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== dependencies: glob "^7.1.3" -rimraf@^3.0.0: +rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: glob "^7.1.3" -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -run-async@^2.2.0, run-async@^2.4.0: +run-async@^2.4.0: version "2.4.1" resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== run-parallel@^1.1.9: - version "1.1.10" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.10.tgz#60a51b2ae836636c81377df16cb107351bcd13ef" - integrity sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw== - -run-queue@^1.0.0, run-queue@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" - integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= - dependencies: - aproba "^1.1.1" - -rx-lite-aggregates@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" - integrity sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74= + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== dependencies: - rx-lite "*" - -rx-lite@*, rx-lite@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" - integrity sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ= + queue-microtask "^1.2.2" rx@4.1.0: version "4.1.0" @@ -13413,13 +12411,13 @@ rx@4.1.0: integrity sha1-pfE/957zt0D+MKqAP7CfmIBdR4I= rxjs@^6.6.0: - version "6.6.3" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.3.tgz#8ca84635c4daa900c0d3967a6ee7ac60271ee552" - integrity sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ== + version "6.6.6" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.6.tgz#14d8417aa5a07c5e633995b525e1e3c0dec03b70" + integrity sha512-/oTwee4N4iWzAMAL9xdGKjkEHmIwupR3oXbQjCKywF1BeFohswF3vZdogbmEF6pZkOsXTzWkrZszrWpQTByYVg== dependencies: tslib "^1.9.0" -safe-buffer@*, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: +safe-buffer@*, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== @@ -13436,7 +12434,7 @@ safe-regex@^1.1.0: dependencies: ret "~0.1.10" -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.1.0: +"safer-buffer@>= 2.1.2 < 3": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== @@ -13451,7 +12449,7 @@ sanitize-html@^1.27.5: parse-srcset "^1.0.2" postcss "^7.0.27" -sass-loader@^10.1.0: +sass-loader@^10.1.1: version "10.1.1" resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-10.1.1.tgz#4ddd5a3d7638e7949065dd6e9c7c04037f7e663d" integrity sha512-W6gVDXAd5hR/WHsPicvZdjAWHBcEJ44UahgxcIE196fW2ong0ZHMPO1kZuI5q0VlvMQZh32gpv69PLWQm70qrw== @@ -13463,9 +12461,9 @@ sass-loader@^10.1.0: semver "^7.3.2" sass@^1.32.5: - version "1.32.6" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.32.6.tgz#e3646c8325cd97ff75a8a15226007f3ccd221393" - integrity sha512-1bcDHDcSqeFtMr0JXI3xc/CXX6c4p0wHHivJdru8W7waM7a1WjKMm4m/Z5sY7CbVw4Whi2Chpcw6DFfSWwGLzQ== + version "1.32.8" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.32.8.tgz#f16a9abd8dc530add8834e506878a2808c037bdc" + integrity sha512-Sl6mIeGpzjIUZqvKnKETfMf0iDAswD9TNlv13A7aAF3XZlRPMq4VvJWBC2N2DXbp94MQVdNSFG6LfF/iOXrPHQ== dependencies: chokidar ">=2.0.0 <4.0.0" @@ -13482,14 +12480,6 @@ scheduler@^0.20.1: loose-envify "^1.1.0" object-assign "^4.1.1" -schema-utils@^0.4.5: - version "0.4.7" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187" - integrity sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ== - dependencies: - ajv "^6.1.0" - ajv-keywords "^3.1.0" - schema-utils@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" @@ -13499,7 +12489,7 @@ schema-utils@^1.0.0: ajv-errors "^1.0.0" ajv-keywords "^3.1.0" -schema-utils@^2.6.5, schema-utils@^2.6.6: +schema-utils@^2.6.5: version "2.7.1" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== @@ -13549,18 +12539,6 @@ selfsigned@^1.10.8: dependencies: node-forge "^0.10.0" -semver-compare@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" - integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= - -semver-diff@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" - integrity sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY= - dependencies: - semver "^5.0.3" - semver-diff@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" @@ -13573,11 +12551,6 @@ semver-regex@^2.0.0: resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-2.0.0.tgz#a93c2c5844539a770233379107b38c7b4ac9d338" integrity sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw== -semver-regex@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-3.1.2.tgz#34b4c0d361eef262e07199dbef316d0f2ab11807" - integrity sha512-bXWyL6EAKOJa81XG1OZ/Yyuq+oT0b2YLlxx7c+mrdYPaPbnj6WgVULXhinMIeZGufuUBu/eVRqXEhiv4imfwxA== - semver-truncate@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/semver-truncate/-/semver-truncate-1.1.2.tgz#57f41de69707a62709a7e0104ba2117109ea47e8" @@ -13585,7 +12558,7 @@ semver-truncate@^1.1.2: dependencies: semver "^5.3.0" -"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: +"semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -13595,12 +12568,12 @@ semver@7.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== -semver@^6.0.0, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: +semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.3.2, semver@^7.3.4: +semver@^7.2.1, semver@^7.3.2, semver@^7.3.4: version "7.3.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== @@ -13634,10 +12607,10 @@ sentence-case@^2.1.0: no-case "^2.2.0" upper-case-first "^1.1.2" -serialize-javascript@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" - integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== +serialize-javascript@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" + integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA== dependencies: randombytes "^2.1.0" @@ -13679,11 +12652,6 @@ set-value@^2.0.0, set-value@^2.0.1: is-plain-object "^2.0.3" split-string "^3.0.1" -setimmediate@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= - setprototypeof@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" @@ -13699,35 +12667,29 @@ setprototypeof@1.2.0: resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" + kind-of "^6.0.2" shallow-compare@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/shallow-compare/-/shallow-compare-1.2.2.tgz#fa4794627bf455a47c4f56881d8a6132d581ffdb" integrity sha512-LUMFi+RppPlrHzbqmFnINTrazo0lPNwhcgzuAXVVcfy/mqPDrQmHAyz5bvV0gDAuRFrk804V0HpQ6u9sZ0tBeg== -shallowequal@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" - integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== - sharp@^0.27.0: - version "0.27.1" - resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.27.1.tgz#cd04926406a697b58dfc5fb62e3c7a3a2d68389a" - integrity sha512-IQNXWdspb4nZcJemXa6cfgz+JvKONsuqP8Mwi1Oti23Uo7+J+UF2jihJDf6I1BQbrmhcZ0lagH/1WYG+ReAzyQ== + version "0.27.2" + resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.27.2.tgz#a939775e630e88600c0b5e68f20593aea722252f" + integrity sha512-w3FVoONPG/x5MXCc3wsjOS+b9h3CI60qkus6EPQU4dkT0BDm0PyGhDCK6KhtfT3/vbeOMOXAKFNSw+I3QGWkMA== dependencies: array-flatten "^3.0.0" color "^3.1.3" detect-libc "^1.0.3" node-addon-api "^3.1.0" npmlog "^4.1.2" - prebuild-install "^6.0.0" + prebuild-install "^6.0.1" semver "^7.3.4" simple-get "^4.0.0" tar-fs "^2.1.1" @@ -13757,17 +12719,12 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -shell-quote@1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767" - integrity sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c= - dependencies: - array-filter "~0.0.0" - array-map "~0.0.0" - array-reduce "~0.0.0" - jsonify "~0.0.0" +shell-quote@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" + integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== -side-channel@^1.0.3, side-channel@^1.0.4: +side-channel@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== @@ -13836,19 +12793,19 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== -slice-ansi@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" - integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== - dependencies: - ansi-styles "^3.2.0" - astral-regex "^1.0.0" - is-fullwidth-code-point "^2.0.0" +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" slugify@^1.4.4: - version "1.4.6" - resolved "https://registry.yarnpkg.com/slugify/-/slugify-1.4.6.tgz#ef288d920a47fb01c2be56b3487b6722f5e34ace" - integrity sha512-ZdJIgv9gdrYwhXqxsH9pv7nXxjUEyQ6nqhngRxoAAOlmMGA28FDq5O4/5US4G2/Nod7d1ovNcgURQJ7kHq50KQ== + version "1.4.7" + resolved "https://registry.yarnpkg.com/slugify/-/slugify-1.4.7.tgz#e42359d505afd84a44513280868e31202a79a628" + integrity sha512-tf+h5W1IrjNm/9rKKj0JU2MDMruiopx0jjVA5zCdBtcGjfp0+c5rHw/zADLC3IeKlGHtVbHtpfzvYA0OYT+HKg== snake-case@^2.1.0: version "2.1.0" @@ -13887,72 +12844,47 @@ snapdragon@^0.8.1: source-map-resolve "^0.5.0" use "^3.1.0" -socket.io-adapter@~1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz#ab3f0d6f66b8fc7fca3959ab5991f82221789be9" - integrity sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g== +socket.io-adapter@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-2.1.0.tgz#edc5dc36602f2985918d631c1399215e97a1b527" + integrity sha512-+vDov/aTsLjViYTwS9fPy5pEtTkrbEKsw2M+oVSoFGw6OD1IpvlV1VPhUzNbofCQ8oyMbdYJqDtGdmHQK6TdPg== -socket.io-client@2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.3.0.tgz#14d5ba2e00b9bcd145ae443ab96b3f86cbcc1bb4" - integrity sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA== - dependencies: - backo2 "1.0.2" - base64-arraybuffer "0.1.5" - component-bind "1.0.0" - component-emitter "1.2.1" - debug "~4.1.0" - engine.io-client "~3.4.0" - has-binary2 "~1.0.2" - has-cors "1.1.0" - indexof "0.0.1" - object-component "0.0.3" - parseqs "0.0.5" - parseuri "0.0.5" - socket.io-parser "~3.3.0" - to-array "0.1.4" - -socket.io-parser@~3.3.0: - version "3.3.2" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.2.tgz#ef872009d0adcf704f2fbe830191a14752ad50b6" - integrity sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg== +socket.io-client@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-3.1.1.tgz#43dfc3feddbb675b274a724f685d6b6af319b3e3" + integrity sha512-BLgIuCjI7Sf3mDHunKddX9zKR/pbkP7IACM3sJS3jha+zJ6/pGKRV6Fz5XSBHCfUs9YzT8kYIqNwOOuFNLtnYA== dependencies: + "@types/component-emitter" "^1.2.10" + backo2 "~1.0.2" component-emitter "~1.3.0" - debug "~3.1.0" - isarray "2.0.1" - -socket.io-parser@~3.4.0: - version "3.4.1" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.4.1.tgz#b06af838302975837eab2dc980037da24054d64a" - integrity sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A== - dependencies: - component-emitter "1.2.1" - debug "~4.1.0" - isarray "2.0.1" + debug "~4.3.1" + engine.io-client "~4.1.0" + parseuri "0.0.6" + socket.io-parser "~4.0.4" -socket.io@2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.3.0.tgz#cd762ed6a4faeca59bc1f3e243c0969311eb73fb" - integrity sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg== +socket.io-parser@~4.0.3, socket.io-parser@~4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.0.4.tgz#9ea21b0d61508d18196ef04a2c6b9ab630f4c2b0" + integrity sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g== dependencies: - debug "~4.1.0" - engine.io "~3.4.0" - has-binary2 "~1.0.2" - socket.io-adapter "~1.1.0" - socket.io-client "2.3.0" - socket.io-parser "~3.4.0" + "@types/component-emitter" "^1.2.10" + component-emitter "~1.3.0" + debug "~4.3.1" -sockjs-client@1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.1.4.tgz#5babe386b775e4cf14e7520911452654016c8b12" - integrity sha1-W6vjhrd15M8U51IJEUUmVAFsixI= +socket.io@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-3.1.1.tgz#905e3d4a3b37d8e7970e67a4a6eb81110a5778ba" + integrity sha512-7cBWdsDC7bbyEF6WbBqffjizc/H4YF1wLdZoOzuYfo2uMNSFjJKuQ36t0H40o9B20DO6p+mSytEd92oP4S15bA== dependencies: - debug "^2.6.6" - eventsource "0.1.6" - faye-websocket "~0.11.0" - inherits "^2.0.1" - json3 "^3.3.2" - url-parse "^1.1.8" + "@types/cookie" "^0.4.0" + "@types/cors" "^2.8.8" + "@types/node" "^14.14.10" + accepts "~1.3.4" + base64id "~2.0.0" + debug "~4.3.1" + engine.io "~4.1.0" + socket.io-adapter "~2.1.0" + socket.io-parser "~4.0.3" sockjs-client@^1.5.0: version "1.5.0" @@ -14001,7 +12933,7 @@ source-list-map@^1.1.1: resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-1.1.2.tgz#9889019d1024cce55cdc069498337ef6186a11a1" integrity sha1-mIkBnRAkzOVc3AaUmDN+9hhqEaE= -source-list-map@^2.0.0: +source-list-map@^2.0.0, source-list-map@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== @@ -14017,7 +12949,7 @@ source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@^0.5.17, source-map-support@^0.5.19, source-map-support@~0.5.12: +source-map-support@^0.5.17, source-map-support@^0.5.19, source-map-support@~0.5.19: version "0.5.19" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== @@ -14030,21 +12962,21 @@ source-map-url@^0.4.0: resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== -source-map@0.7.3, source-map@^0.7.3: +source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@0.7.3, source-map@^0.7.3, source-map@~0.7.2: version "0.7.3" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== -source-map@^0.5.0, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.3: +source-map@^0.5.0, source-map@^0.5.6, source-map@~0.5.3: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - space-separated-tokens@^1.0.0: version "1.1.5" resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz#85f32c3d10d9682007e917414ddc5c26d1aa6899" @@ -14135,19 +13067,11 @@ sse-z@0.3.0: resolved "https://registry.yarnpkg.com/sse-z/-/sse-z-0.3.0.tgz#e215db7c303d6c4a4199d80cb63811cc28fa55b9" integrity sha512-jfcXynl9oAOS9YJ7iqS2JMUEHOlvrRAD+54CENiWnc4xsuVLQVSgmwf7cwOTcBd/uq3XkQKBGojgvEtVXcJ/8w== -ssri@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" - integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA== - dependencies: - figgy-pudding "^3.5.1" - -ssri@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-7.1.0.tgz#92c241bf6de82365b5c7fb4bd76e975522e1294d" - integrity sha512-77/WrDZUWocK0mvA5NTRQyveUf+wsrIc6vyrxpS8tVvYBcX215QbafrJR3KtkpskIzoFLqqNuuYQvxaMjXJ/0g== +ssri@^8.0.0: + version "8.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" + integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== dependencies: - figgy-pudding "^3.5.1" minipass "^3.1.1" st@^2.0.0: @@ -14207,33 +13131,6 @@ static-site-generator-webpack-plugin@^3.4.2: resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= -stream-browserify@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" - integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - -stream-each@^1.1.0: - version "1.2.3" - resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" - integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== - dependencies: - end-of-stream "^1.1.0" - stream-shift "^1.0.0" - -stream-http@^2.7.2: - version "2.8.3" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" - integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - stream-parser@~0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/stream-parser/-/stream-parser-0.3.1.tgz#1618548694420021a1182ff0af1911c129761773" @@ -14241,11 +13138,6 @@ stream-parser@~0.3.1: dependencies: debug "2" -stream-shift@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" - integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== - streamsearch@0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" @@ -14266,6 +13158,11 @@ string-env-interpolation@1.0.1: resolved "https://registry.yarnpkg.com/string-env-interpolation/-/string-env-interpolation-1.0.1.tgz#ad4397ae4ac53fe6c91d1402ad6f6a52862c7152" integrity sha512-78lwMoCcn0nNu8LszbP1UA7g55OeE4v7rCeWnM5B453rnNr4aq+5it3FEYtZrSEiMvHZOZ9Jlqb0OD0M2VInqg== +string-natural-compare@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/string-natural-compare/-/string-natural-compare-3.0.1.tgz#7a42d58474454963759e8e8b7ae63d71c1e7fdf4" + integrity sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw== + string-similarity@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/string-similarity/-/string-similarity-1.2.2.tgz#99b2c20a3c9bbb3903964eae1d89856db3d8db9b" @@ -14286,7 +13183,7 @@ string-width@^1.0.1: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: +"string-width@^1.0.2 || 2": version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== @@ -14304,44 +13201,44 @@ string-width@^3.0.0, string-width@^3.1.0: strip-ansi "^5.1.0" string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" - integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== + version "4.2.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" + integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== dependencies: emoji-regex "^8.0.0" is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.0" string.prototype.matchall@^4.0.2: - version "4.0.3" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.3.tgz#24243399bc31b0a49d19e2b74171a15653ec996a" - integrity sha512-OBxYDA2ifZQ2e13cP82dWFMaCV9CGF8GzmN4fljBVw5O5wep0lu4gacm1OL6MjROoUnB8VbkWRThqkV2YFLNxw== + version "4.0.4" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.4.tgz#608f255e93e072107f5de066f81a2dfb78cf6b29" + integrity sha512-pknFIWVachNcyqRfaQSeu/FUfpvJTe4uskUSZ9Wc1RijsPuzbZ8TyYT8WCNnntCjUEqQ3vUHMAfVj2+wLAisPQ== dependencies: - call-bind "^1.0.0" + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.18.0-next.1" + es-abstract "^1.18.0-next.2" has-symbols "^1.0.1" - internal-slot "^1.0.2" - regexp.prototype.flags "^1.3.0" - side-channel "^1.0.3" + internal-slot "^1.0.3" + regexp.prototype.flags "^1.3.1" + side-channel "^1.0.4" -string.prototype.trimend@^1.0.1, string.prototype.trimend@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz#a22bd53cca5c7cf44d7c9d5c732118873d6cd18b" - integrity sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw== +string.prototype.trimend@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" + integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== dependencies: - call-bind "^1.0.0" + call-bind "^1.0.2" define-properties "^1.1.3" -string.prototype.trimstart@^1.0.1, string.prototype.trimstart@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz#9b4cb590e123bb36564401d59824298de50fd5aa" - integrity sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg== +string.prototype.trimstart@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" + integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== dependencies: - call-bind "^1.0.0" + call-bind "^1.0.2" define-properties "^1.1.3" -string_decoder@^1.0.0, string_decoder@^1.1.1: +string_decoder@^1.1.1: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== @@ -14379,7 +13276,14 @@ stringify-entities@^3.0.0, stringify-entities@^3.0.1: character-entities-legacy "^1.0.0" xtend "^4.0.0" -strip-ansi@3.0.1, strip-ansi@^3, strip-ansi@^3.0.0, strip-ansi@^3.0.1: +strip-ansi@6.0.0, strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= @@ -14400,13 +13304,6 @@ strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: dependencies: ansi-regex "^4.1.0" -strip-ansi@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" - integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== - dependencies: - ansi-regex "^5.0.0" - strip-bom-string@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92" @@ -14455,7 +13352,7 @@ strip-indent@^3.0.0: dependencies: min-indent "^1.0.0" -strip-json-comments@^3.0.1: +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== @@ -14481,13 +13378,13 @@ strtok3@^6.0.3: "@types/debug" "^4.1.5" peek-readable "^3.1.3" -style-loader@^0.23.1: - version "0.23.1" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.23.1.tgz#cb9154606f3e771ab6c4ab637026a1049174d925" - integrity sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg== +style-loader@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-2.0.0.tgz#9669602fd4690740eaaec137799a03addbbc393c" + integrity sha512-Z0gYUJmzZ6ZdRUqpg1r8GsaFKypE+3xAzuFeMuoHgjc9KZv3wMyCRjQIWEbhoFSq7+7yoHXySDJyyWQaPajeiQ== dependencies: - loader-utils "^1.1.0" - schema-utils "^1.0.0" + loader-utils "^2.0.0" + schema-utils "^3.0.0" style-to-object@0.3.0, style-to-object@^0.3.0: version "0.3.0" @@ -14522,7 +13419,7 @@ supports-color@^2.0.0: resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= -supports-color@^5.3.0, supports-color@^5.4.0: +supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== @@ -14543,14 +13440,6 @@ supports-color@^7.0.0, supports-color@^7.1.0: dependencies: has-flag "^4.0.0" -supports-hyperlinks@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz#f663df252af5f37c5d49bbd7eeefa9e0b9e59e47" - integrity sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA== - dependencies: - has-flag "^4.0.0" - supports-color "^7.0.0" - svg-react-loader@^0.4.4: version "0.4.6" resolved "https://registry.yarnpkg.com/svg-react-loader/-/svg-react-loader-0.4.6.tgz#b263efb3e3d2fff4c682a729351aba5f185051a1" @@ -14603,21 +13492,26 @@ sync-fetch@0.3.0: buffer "^5.7.0" node-fetch "^2.6.1" -table@^5.2.3: - version "5.4.6" - resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" - integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== +table@^6.0.4: + version "6.0.7" + resolved "https://registry.yarnpkg.com/table/-/table-6.0.7.tgz#e45897ffbcc1bcf9e8a87bf420f2c9e5a7a52a34" + integrity sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g== dependencies: - ajv "^6.10.2" - lodash "^4.17.14" - slice-ansi "^2.1.0" - string-width "^3.0.0" + ajv "^7.0.2" + lodash "^4.17.20" + slice-ansi "^4.0.0" + string-width "^4.2.0" -tapable@^1.0.0, tapable@^1.1.3: +tapable@^1.0.0: version "1.1.3" resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== +tapable@^2.1.1, tapable@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.0.tgz#5c373d281d9c672848213d0e037d1c4165ab426b" + integrity sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw== + tar-fs@^2.0.0, tar-fs@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" @@ -14652,6 +13546,18 @@ tar-stream@^2.1.4: inherits "^2.0.3" readable-stream "^3.1.1" +tar@^6.0.2: + version "6.1.0" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.0.tgz#d1724e9bcc04b977b18d5c573b333a2207229a83" + integrity sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^3.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + temp-dir@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" @@ -14665,71 +13571,38 @@ tempfile@^2.0.0: temp-dir "^1.0.0" uuid "^3.0.1" -term-size@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" - integrity sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk= - dependencies: - execa "^0.7.0" - term-size@^2.1.0: version "2.2.1" resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.2.1.tgz#2a6a54840432c2fb6320fea0f415531e90189f54" integrity sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg== -terminal-link@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" - integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== - dependencies: - ansi-escapes "^4.2.1" - supports-hyperlinks "^2.0.0" - -terser-webpack-plugin@^1.4.3: - version "1.4.5" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz#a217aefaea330e734ffacb6120ec1fa312d6040b" - integrity sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw== - dependencies: - cacache "^12.0.2" - find-cache-dir "^2.1.0" - is-wsl "^1.1.0" - schema-utils "^1.0.0" - serialize-javascript "^4.0.0" - source-map "^0.6.1" - terser "^4.1.2" - webpack-sources "^1.4.0" - worker-farm "^1.7.0" - -terser-webpack-plugin@^2.3.8: - version "2.3.8" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-2.3.8.tgz#894764a19b0743f2f704e7c2a848c5283a696724" - integrity sha512-/fKw3R+hWyHfYx7Bv6oPqmk4HGQcrWLtV3X6ggvPuwPNHSnzvVV51z6OaaCOus4YLjutYGOz3pEpbhe6Up2s1w== +terser-webpack-plugin@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.1.1.tgz#7effadee06f7ecfa093dbbd3e9ab23f5f3ed8673" + integrity sha512-5XNNXZiR8YO6X6KhSGXfY0QrGrCRlSwAEjIIrlRQR4W8nP69TaJUlh3bkuac6zzgspiGPfKEHcY295MMVExl5Q== dependencies: - cacache "^13.0.1" - find-cache-dir "^3.3.1" - jest-worker "^25.4.0" - p-limit "^2.3.0" - schema-utils "^2.6.6" - serialize-javascript "^4.0.0" + jest-worker "^26.6.2" + p-limit "^3.1.0" + schema-utils "^3.0.0" + serialize-javascript "^5.0.1" source-map "^0.6.1" - terser "^4.6.12" - webpack-sources "^1.4.3" + terser "^5.5.1" -terser@^4.1.2, terser@^4.6.12: - version "4.8.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" - integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== +terser@^5.5.1: + version "5.6.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.6.0.tgz#138cdf21c5e3100b1b3ddfddf720962f88badcd2" + integrity sha512-vyqLMoqadC1uR0vywqOZzriDYzgEkNJFK4q9GeyOBHIbiECHiWLKcWfbQWAUaPfxkjDhapSlZB9f7fkMrvkVjA== dependencies: commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" + source-map "~0.7.2" + source-map-support "~0.5.19" text-table@0.2.0, text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= -through2@^2.0.0, through2@^2.0.1: +through2@^2.0.1: version "2.0.5" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== @@ -14752,13 +13625,6 @@ timed-out@^4.0.0, timed-out@^4.0.1: resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= -timers-browserify@^2.0.4: - version "2.0.12" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" - integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== - dependencies: - setimmediate "^1.0.4" - timers-ext@^0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/timers-ext/-/timers-ext-0.1.7.tgz#6f57ad8578e07a3fb9f91d9387d65647555e25c6" @@ -14809,16 +13675,6 @@ tmp@^0.2.1: dependencies: rimraf "^3.0.0" -to-array@0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" - integrity sha1-F+bBH3PdTz10zaek/zI46a2b+JA= - -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= - to-buffer@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" @@ -14984,17 +13840,12 @@ tslib@~2.0.1: integrity sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ== tsutils@^3.17.1: - version "3.20.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.20.0.tgz#ea03ea45462e146b53d70ce0893de453ff24f698" - integrity sha512-RYbuQuvkhuqVeXweWT3tJLKOEJ/UUw9GjNEZGWdrLLlM+611o1gwLHBpxoFJKKl25fLprp2eVthtKs5JOrNeXg== + version "3.21.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== dependencies: tslib "^1.8.1" -tty-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" - integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= - tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" @@ -15002,12 +13853,12 @@ tunnel-agent@^0.6.0: dependencies: safe-buffer "^5.0.1" -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== dependencies: - prelude-ls "~1.1.2" + prelude-ls "^1.2.1" type-fest@0.20.2, type-fest@^0.20.2: version "0.20.2" @@ -15048,9 +13899,9 @@ type@^1.0.1: integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== type@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/type/-/type-2.1.0.tgz#9bdc22c648cf8cf86dd23d32336a41cfb6475e3f" - integrity sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA== + version "2.5.0" + resolved "https://registry.yarnpkg.com/type/-/type-2.5.0.tgz#0a2e78c2e77907b252abe5f298c1b01c63f0db3d" + integrity sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw== typedarray-to-buffer@^3.1.5: version "3.1.5" @@ -15059,15 +13910,20 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= - typescript@^4.1.3: - version "4.1.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.1.3.tgz#519d582bd94cba0cf8934c7d8e8467e473f53bb7" - integrity sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg== + version "4.2.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.2.3.tgz#39062d8019912d43726298f09493d598048c1ce3" + integrity sha512-qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw== + +unbox-primitive@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.0.tgz#eeacbc4affa28e9b3d36b5eaeccc50b3251b1d3f" + integrity sha512-P/51NX+JXyxK/aigg1/ZgyccdAxm5K1+n8+tvqSntjOivPt19gvm1VC49RWYetsiub8WViUchdxl/KWHHB0kzA== + dependencies: + function-bind "^1.1.1" + has-bigints "^1.0.0" + has-symbols "^1.0.0" + which-boxed-primitive "^1.0.1" unbzip2-stream@^1.0.9: version "1.4.3" @@ -15082,7 +13938,7 @@ unc-path-regex@^0.1.2: resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" integrity sha1-5z3T17DXxe2G+6xrCufYxqadUPo= -uncontrollable@^7.0.0: +uncontrollable@^7.0.0, uncontrollable@^7.2.1: version "7.2.1" resolved "https://registry.yarnpkg.com/uncontrollable/-/uncontrollable-7.2.1.tgz#1fa70ba0c57a14d5f78905d533cf63916dc75738" integrity sha512-svtcfoTADIB0nT9nltgjujTi7BzVmwjZClOmskKu/E8FW9BXzg9os8OLr4f8Dlnk0rYWJIWr4wv9eKUXiQvQwQ== @@ -15101,9 +13957,9 @@ underscore.string@^3.3.5: util-deprecate "^1.0.2" underscore@^1.7.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.12.0.tgz#4814940551fc80587cef7840d1ebb0f16453be97" - integrity sha512-21rQzss/XPMjolTiIezSu3JAjgagXKROtNrYFEOWK109qY1Uv2tVjPTZ1ci2HgvQDA16gHYSthQIJfB+XId/rQ== + version "1.12.1" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.12.1.tgz#7bb8cc9b3d397e201cf8553336d262544ead829e" + integrity sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw== unherit@^1.0.4: version "1.1.3" @@ -15219,13 +14075,6 @@ unique-slug@^2.0.0: dependencies: imurmurhash "^0.1.4" -unique-string@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" - integrity sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo= - dependencies: - crypto-random-string "^1.0.0" - unique-string@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" @@ -15268,9 +14117,9 @@ unist-util-is@^3.0.0: integrity sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A== unist-util-is@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.0.4.tgz#3e9e8de6af2eb0039a59f50c9b3e99698a924f50" - integrity sha512-3dF39j/u423v4BBQrk1AQ2Ve1FxY5W3JKwXxVFzBODQ6WEvccguhgp802qQLKSnxPODE6WuRZtV+ohlUg4meBA== + version "4.1.0" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.1.0.tgz#976e5f462a7a5de73d94b706bac1b90671b57797" + integrity sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg== unist-util-map@^1.0.5: version "1.0.5" @@ -15360,7 +14209,7 @@ unist-util-visit-parents@^3.0.0: "@types/unist" "^2.0.0" unist-util-is "^4.0.0" -unist-util-visit@2.0.3, unist-util-visit@^2.0.0, unist-util-visit@^2.0.1, unist-util-visit@^2.0.2: +unist-util-visit@2.0.3, unist-util-visit@^2.0.0, unist-util-visit@^2.0.2, unist-util-visit@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-2.0.3.tgz#c3703893146df47203bb8a9795af47d7b971208c" integrity sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q== @@ -15416,32 +14265,11 @@ untildify@^4.0.0: resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== -unzip-response@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" - integrity sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c= - upath@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== -update-notifier@^2.3.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6" - integrity sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw== - dependencies: - boxen "^1.2.1" - chalk "^2.0.1" - configstore "^3.0.0" - import-lazy "^2.1.0" - is-ci "^1.0.10" - is-installed-globally "^0.1.0" - is-npm "^1.0.0" - latest-version "^3.0.0" - semver-diff "^2.0.0" - xdg-basedir "^3.0.0" - update-notifier@^5.0.1: version "5.1.0" resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-5.1.0.tgz#4ab0d7c7f36a231dd7316cf7729313f0214d9ad9" @@ -15491,14 +14319,14 @@ url-join@^1.1.0: resolved "https://registry.yarnpkg.com/url-join/-/url-join-1.1.0.tgz#741c6c2f4596c4830d6718460920d0c92202dc78" integrity sha1-dBxsL0WWxIMNZxhGCSDQySIC3Hg= -url-loader@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-1.1.2.tgz#b971d191b83af693c5e3fea4064be9e1f2d7f8d8" - integrity sha512-dXHkKmw8FhPqu8asTc1puBfe3TehOCo2+RmOOev5suNCIYBcT626kxiWg1NBVkwc4rO8BGa7gP70W7VXuqHrjg== +url-loader@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-4.1.1.tgz#28505e905cae158cf07c92ca622d7f237e70a4e2" + integrity sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA== dependencies: - loader-utils "^1.1.0" - mime "^2.0.3" - schema-utils "^1.0.0" + loader-utils "^2.0.0" + mime-types "^2.1.27" + schema-utils "^3.0.0" url-parse-lax@^1.0.0: version "1.0.0" @@ -15514,10 +14342,10 @@ url-parse-lax@^3.0.0: dependencies: prepend-http "^2.0.0" -url-parse@^1.1.8, url-parse@^1.4.3, url-parse@^1.4.7: - version "1.4.7" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" - integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg== +url-parse@^1.4.3, url-parse@^1.4.7: + version "1.5.1" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.1.tgz#d5fa9890af8a5e1f274a2c98376510f6425f6e3b" + integrity sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q== dependencies: querystringify "^2.1.1" requires-port "^1.0.0" @@ -15578,20 +14406,6 @@ util.promisify@~1.0.0: has-symbols "^1.0.1" object.getownpropertydescriptors "^2.1.0" -util@0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= - dependencies: - inherits "2.0.1" - -util@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" - integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== - dependencies: - inherits "2.0.3" - utila@~0.4: version "0.4.0" resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" @@ -15608,9 +14422,9 @@ uuid@3.4.0, uuid@^3.0.0, uuid@^3.0.1, uuid@^3.3.2, uuid@^3.4.0: integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== v8-compile-cache@^2.0.3, v8-compile-cache@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132" - integrity sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q== + version "2.3.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" + integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== valid-url@1.0.9, valid-url@^1.0.9: version "1.0.9" @@ -15690,11 +14504,6 @@ vfile@^4.0.0: unist-util-stringify-position "^2.0.0" vfile-message "^2.0.0" -vm-browserify@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" - integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== - warning@^4.0.0, warning@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" @@ -15702,23 +14511,13 @@ warning@^4.0.0, warning@^4.0.3: dependencies: loose-envify "^1.0.0" -watchpack-chokidar2@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" - integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww== - dependencies: - chokidar "^2.1.8" - -watchpack@^1.7.4: - version "1.7.5" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453" - integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== +watchpack@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.1.1.tgz#e99630550fca07df9f90a06056987baa40a689c7" + integrity sha512-Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw== dependencies: + glob-to-regexp "^0.4.1" graceful-fs "^4.1.2" - neo-async "^2.5.0" - optionalDependencies: - chokidar "^3.4.1" - watchpack-chokidar2 "^2.0.1" wbuf@^1.1.0, wbuf@^1.7.3: version "1.7.3" @@ -15756,6 +14555,18 @@ webpack-dev-middleware@^3.7.2: range-parser "^1.2.1" webpack-log "^2.0.0" +webpack-dev-middleware@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-4.1.0.tgz#f0c1f12ff4cd855b3b5eec89ee0f69bcc5336364" + integrity sha512-mpa/FY+DiBu5+r5JUIyTCYWRfkWgyA3/OOE9lwfzV9S70A4vJYLsVRKj5rMFEsezBroy2FmPyQ8oBRVW8QmK1A== + dependencies: + colorette "^1.2.1" + mem "^8.0.0" + memfs "^3.2.0" + mime-types "^2.1.28" + range-parser "^1.2.1" + schema-utils "^3.0.0" + webpack-dev-server@^3.11.2: version "3.11.2" resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz#695ebced76a4929f0d5de7fd73fafe185fe33708" @@ -15795,16 +14606,6 @@ webpack-dev-server@^3.11.2: ws "^6.2.1" yargs "^13.3.2" -webpack-hot-middleware@^2.25.0: - version "2.25.0" - resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-2.25.0.tgz#4528a0a63ec37f8f8ef565cf9e534d57d09fe706" - integrity sha512-xs5dPOrGPCzuRXNi8F6rwhawWvQQkeli5Ro48PRuQh8pYPCPmNnltP9itiUPT4xI8oW+y0m59lyyeQk54s5VgA== - dependencies: - ansi-html "0.0.7" - html-entities "^1.2.0" - querystring "^0.2.0" - strip-ansi "^3.0.0" - webpack-log@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" @@ -15813,12 +14614,13 @@ webpack-log@^2.0.0: ansi-colors "^3.0.0" uuid "^3.3.2" -webpack-merge@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.2.2.tgz#a27c52ea783d1398afd2087f547d7b9d2f43634d" - integrity sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g== +webpack-merge@^5.7.3: + version "5.7.3" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.7.3.tgz#2a0754e1877a25a8bbab3d2475ca70a052708213" + integrity sha512-6/JUQv0ELQ1igjGDzHkXbVDRxkfA57Zw7PfiupdLFJYrgFqY5ZP8xxbpp2lU3EPwYx89ht5Z/aDkD40hFCm5AA== dependencies: - lodash "^4.17.15" + clone-deep "^4.0.1" + wildcard "^2.0.0" webpack-sources@^0.2.0: version "0.2.3" @@ -15828,7 +14630,7 @@ webpack-sources@^0.2.0: source-list-map "^1.1.1" source-map "~0.5.3" -webpack-sources@^1.0.0, webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: +webpack-sources@^1.0.0, webpack-sources@^1.1.0, webpack-sources@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== @@ -15836,46 +14638,54 @@ webpack-sources@^1.0.0, webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack- source-list-map "^2.0.0" source-map "~0.6.1" -webpack-stats-plugin@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/webpack-stats-plugin/-/webpack-stats-plugin-0.3.2.tgz#c06b185aa5dcc93b3f0c3a7891d24a111f849740" - integrity sha512-kxEtPQ6lBBik2qtJlsZkiaDMI6rGXe9w1kLH9ZCdt0wgCGVnbwwPlP60cMqG6tILNFYqXDxNt4+c4OIIuE+Fnw== +webpack-sources@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.2.0.tgz#058926f39e3d443193b6c31547229806ffd02bac" + integrity sha512-bQsA24JLwcnWGArOKUxYKhX3Mz/nK1Xf6hxullKERyktjNMC4x8koOeaDNTA2fEJ09BdWLbM/iTW0ithREUP0w== + dependencies: + source-list-map "^2.0.1" + source-map "^0.6.1" -webpack-virtual-modules@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.2.2.tgz#20863dc3cb6bb2104729fff951fbe14b18bd0299" - integrity sha512-kDUmfm3BZrei0y+1NTHJInejzxfhtU8eDj2M7OKb2IWrPFAeO1SOH2KuQ68MSZu9IGEHcxbkKKR1v18FrUSOmA== +webpack-stats-plugin@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/webpack-stats-plugin/-/webpack-stats-plugin-1.0.3.tgz#0f64551a0b984b48a9e7acdee32e3cfda556fe51" + integrity sha512-tV/SQHl6lKfBahJcNDmz8JG1rpWPB9NEDQSMIoL74oVAotdxYljpgIsgLzgc1N9QrtA9KEA0moJVwQtNZv2aDA== + +webpack-virtual-modules@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.3.2.tgz#b7baa30971a22d99451f897db053af48ec29ad2c" + integrity sha512-RXQXioY6MhzM4CNQwmBwKXYgBs6ulaiQ8bkNQEl2J6Z+V+s7lgl/wGvaI/I0dLnYKB8cKsxQc17QOAVIphPLDw== dependencies: debug "^3.0.0" -webpack@^4.44.1: - version "4.46.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.46.0.tgz#bf9b4404ea20a073605e0a011d188d77cb6ad542" - integrity sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/wasm-edit" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - acorn "^6.4.1" - ajv "^6.10.2" - ajv-keywords "^3.4.1" +webpack@^5.16.0: + version "5.26.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.26.0.tgz#269841ed7b5c6522221aa27f7efceda04c8916d7" + integrity sha512-9kQATUOGQBkqzNKFmFON4KXZDsXnE7xk58tBxca8aCi+6/QhAbmWIvtGqBL66XIsBFpomFH0/0KyCaySo0ta2g== + dependencies: + "@types/eslint-scope" "^3.7.0" + "@types/estree" "^0.0.46" + "@webassemblyjs/ast" "1.11.0" + "@webassemblyjs/wasm-edit" "1.11.0" + "@webassemblyjs/wasm-parser" "1.11.0" + acorn "^8.0.4" + browserslist "^4.14.5" chrome-trace-event "^1.0.2" - enhanced-resolve "^4.5.0" - eslint-scope "^4.0.3" + enhanced-resolve "^5.7.0" + es-module-lexer "^0.4.0" + eslint-scope "^5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.4" json-parse-better-errors "^1.0.2" - loader-runner "^2.4.0" - loader-utils "^1.2.3" - memory-fs "^0.4.1" - micromatch "^3.1.10" - mkdirp "^0.5.3" - neo-async "^2.6.1" - node-libs-browser "^2.2.1" - schema-utils "^1.0.0" - tapable "^1.1.3" - terser-webpack-plugin "^1.4.3" - watchpack "^1.7.4" - webpack-sources "^1.4.1" + loader-runner "^4.2.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + schema-utils "^3.0.0" + tapable "^2.1.1" + terser-webpack-plugin "^5.1.1" + watchpack "^2.0.0" + webpack-sources "^2.1.1" websocket-driver@>=0.5.1, websocket-driver@^0.7.4: version "0.7.4" @@ -15891,6 +14701,17 @@ websocket-extensions@>=0.1.1: resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== +which-boxed-primitive@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" @@ -15901,7 +14722,7 @@ which-pm-runs@^1.0.0: resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb" integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs= -which@^1.2.14, which@^1.2.9: +which@^1.2.9, which@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== @@ -15922,13 +14743,6 @@ wide-align@^1.1.0: dependencies: string-width "^1.0.2 || 2" -widest-line@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc" - integrity sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA== - dependencies: - string-width "^2.1.1" - widest-line@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" @@ -15936,25 +14750,22 @@ widest-line@^3.1.0: dependencies: string-width "^4.0.0" -word-wrap@~1.2.3: +wildcard@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec" + integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw== + +word-wrap@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== -worker-farm@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" - integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== - dependencies: - errno "~0.1.7" - -wrap-ansi@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" - integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= +worker-rpc@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/worker-rpc/-/worker-rpc-0.1.1.tgz#cb565bd6d7071a8f16660686051e969ad32f54d5" + integrity sha512-P1WjMrUB3qgJNI9jfmpZ/htmBEjFh//6l/5y8SD9hg1Ef5zTTVVoRjTrTEzPrNBQvmhMxkoTsjOXN10GWU7aCg== dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" + microevent.ts "~0.1.1" wrap-ansi@^5.1.0: version "5.1.0" @@ -15988,15 +14799,6 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= -write-file-atomic@^2.0.0: - version "2.4.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" - integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== - dependencies: - graceful-fs "^4.1.11" - imurmurhash "^0.1.4" - signal-exit "^3.0.2" - write-file-atomic@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" @@ -16007,17 +14809,10 @@ write-file-atomic@^3.0.0: signal-exit "^3.0.2" typedarray-to-buffer "^3.1.5" -write@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" - integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== - dependencies: - mkdirp "^0.5.1" - -ws@7.4.2: - version "7.4.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.2.tgz#782100048e54eb36fe9843363ab1c68672b261dd" - integrity sha512-T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA== +ws@7.4.3: + version "7.4.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.3.tgz#1f9643de34a543b8edb124bdcbc457ae55a6e5cd" + integrity sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA== ws@^6.2.1: version "6.2.1" @@ -16026,28 +14821,16 @@ ws@^6.2.1: dependencies: async-limiter "~1.0.0" -ws@^7.1.2, ws@^7.3.0: - version "7.4.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.3.tgz#1f9643de34a543b8edb124bdcbc457ae55a6e5cd" - integrity sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA== - -ws@~6.1.0: - version "6.1.4" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.4.tgz#5b5c8800afab925e94ccb29d153c8d02c1776ef9" - integrity sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA== - dependencies: - async-limiter "~1.0.0" +ws@^7.3.0, ws@~7.4.2: + version "7.4.4" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.4.tgz#383bc9742cb202292c9077ceab6f6047b17f2d59" + integrity sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw== x-is-string@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/x-is-string/-/x-is-string-0.1.0.tgz#474b50865af3a49a9c4657f05acd145458f77d82" integrity sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI= -xdg-basedir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" - integrity sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ= - xdg-basedir@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" @@ -16110,20 +14893,15 @@ xss@^1.0.6: cssfilter "0.0.10" xstate@^4.11.0, xstate@^4.14.0, xstate@^4.9.1: - version "4.16.0" - resolved "https://registry.yarnpkg.com/xstate/-/xstate-4.16.0.tgz#e434d0558c0f9a7e9212802834992a6c2f47bca6" - integrity sha512-2k/49QYLdzG6Ye1JQWYFuPdU6dnRqHXcuFLxuORiuel04GjApSPct7wp2SOz9RAlNME5EkzclRKw1fHm5yejuA== + version "4.16.2" + resolved "https://registry.yarnpkg.com/xstate/-/xstate-4.16.2.tgz#d6b973b1253b8c85f50f68601837287d59d4bf34" + integrity sha512-EY39NNZnwM4tRYNmQAi1c2qHuZ1lJmuDpEo1jxiRcfS+1jPtKRAjGRLNx3fYKcK0ohW6mL41Wze3mdCF0SqavA== xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== -y18n@^3.2.1: - version "3.2.2" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.2.tgz#85c901bd6470ce71fc4bb723ad209b70f7f28696" - integrity sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ== - y18n@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4" @@ -16139,11 +14917,6 @@ yallist@^2.0.0, yallist@^2.1.2: resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= -yallist@^3.0.2: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - yallist@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" @@ -16158,9 +14931,9 @@ yaml-loader@^0.6.0: yaml "^1.8.3" yaml@^1.10.0, yaml@^1.7.2, yaml@^1.8.3: - version "1.10.0" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" - integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg== + version "1.10.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== yargs-parser@^13.1.2: version "13.1.2" @@ -16179,34 +14952,9 @@ yargs-parser@^18.1.2: decamelize "^1.2.0" yargs-parser@^20.2.2: - version "20.2.4" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" - integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== - -yargs-parser@^9.0.2: - version "9.0.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077" - integrity sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc= - dependencies: - camelcase "^4.1.0" - -yargs@^11.1.0: - version "11.1.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.1.1.tgz#5052efe3446a4df5ed669c995886cc0f13702766" - integrity sha512-PRU7gJrJaXv3q3yQZ/+/X6KBswZiaQ+zOmdprZcouPYtQgvNU35i+68M4b1ZHLZtYFT5QObFLV+ZkmJYcwKdiw== - dependencies: - cliui "^4.0.0" - decamelize "^1.1.1" - find-up "^2.1.0" - get-caller-file "^1.0.1" - os-locale "^3.1.0" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^2.0.0" - which-module "^2.0.0" - y18n "^3.2.1" - yargs-parser "^9.0.2" + version "20.2.7" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.7.tgz#61df85c113edfb5a7a4e36eb8aa60ef423cbc90a" + integrity sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw== yargs@^13.3.2: version "13.3.2" @@ -16284,28 +15032,6 @@ yoga-layout-prebuilt@^1.9.6: dependencies: "@types/yoga-layout" "1.9.2" -yurnalist@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/yurnalist/-/yurnalist-0.2.1.tgz#2d32b9618ab6491891c131bd90a5295e19fd4bad" - integrity sha1-LTK5YYq2SRiRwTG9kKUpXhn9S60= - dependencies: - chalk "^1.1.1" - death "^1.0.0" - debug "^2.2.0" - detect-indent "^5.0.0" - inquirer "^3.0.1" - invariant "^2.2.0" - is-builtin-module "^1.0.0" - is-ci "^1.0.10" - leven "^2.0.0" - loud-rejection "^1.2.0" - node-emoji "^1.0.4" - object-path "^0.11.2" - read "^1.0.7" - rimraf "^2.5.0" - semver "^5.1.0" - strip-bom "^3.0.0" - yurnalist@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/yurnalist/-/yurnalist-2.1.0.tgz#44cf7ea5a33a8fab4968cc8c2970489f93760902" From f81cea4eb3a2ee1895001b0b0f15b92dfded14f3 Mon Sep 17 00:00:00 2001 From: Evan Barger Date: Tue, 16 Mar 2021 10:26:02 -0400 Subject: [PATCH 02/28] Move husky install from postinstall to prepare Former-commit-id: 4fb88746272f17953dea806f63cc1dfd7a3bf869 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7b7f1c53b65..56e130ab910 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "format": "prettier --write src/**/*.js gatsby-*.js", "build": "gatsby build --prefix-paths", "serve-build": "gatsby serve --prefix-paths", - "postinstall": "husky install", + "prepare": "husky install", "update-icons": "git submodule update --init --remote && node scripts/createIconTypes.js && node scripts/createIconNames.js", "build-pdf": "docker-compose -f docker/docker-compose.build-pdf.yaml run --rm --entrypoint scripts/pdf/generate_pdf.py pdf-builder", "build-all-pdfs": "for i in product_docs/docs/**/*/ ; do echo \"$i\"; yarn build-pdf ${i%} || exit 1; done", From b33c28419363939b9576e66e7ab91c678bdd9155 Mon Sep 17 00:00:00 2001 From: Evan Barger Date: Tue, 16 Mar 2021 12:25:37 -0400 Subject: [PATCH 03/28] Upgrade gatsby-plugin-netlify Former-commit-id: a7151f3185c6972df984e783684431aaa9747578 --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 56e130ab910..17d5e6dc758 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "gatsby-plugin-manifest": "^3.0.0", "gatsby-plugin-mdx": "^2.0.1", "gatsby-plugin-meta-redirect": "^1.1.1", - "gatsby-plugin-netlify": "^3.0.0", + "gatsby-plugin-netlify": "^3.0.1", "gatsby-plugin-nginx-redirect": "^0.0.11", "gatsby-plugin-react-helmet": "^4.0.0", "gatsby-plugin-react-svg": "^3.0.0", diff --git a/yarn.lock b/yarn.lock index 1920b9909da..e9342e83e69 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6385,10 +6385,10 @@ gatsby-plugin-meta-redirect@^1.1.1: dependencies: fs-extra "^7.0.0" -gatsby-plugin-netlify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/gatsby-plugin-netlify/-/gatsby-plugin-netlify-3.0.0.tgz#39d615fe86a8574324b7ac83923cebb56a81fe69" - integrity sha512-CwBU76pbrgEs3tUQidL8iH5f48QQQn4+3p0ze6pfO7u4eU3qkSaSMbrILzGfqh6yjN/bdDTFldfFmdENjC78Ew== +gatsby-plugin-netlify@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/gatsby-plugin-netlify/-/gatsby-plugin-netlify-3.0.1.tgz#586716f7b24e71fc8f19232004f6dd149e1d0c74" + integrity sha512-RH7Lo45dFsJadW9DfG0fMvpuavAT5JOVgTPnpsbNjsb6JKWYhDzRvavPOB2bW/+YpxlyoW0VHR3h6F4ZuFDnww== dependencies: "@babel/runtime" "^7.12.5" fs-extra "^8.1.0" From 7debcb8225b2e243a821ace2baba3f0e4f96e9ac Mon Sep 17 00:00:00 2001 From: Evan Barger Date: Tue, 16 Mar 2021 16:51:48 -0400 Subject: [PATCH 04/28] Re-enable cache on github builds - add workaround to fix stale cache issue with page deletion Former-commit-id: efe31cd040e084a994b1540f89cf2f67de2c3b45 --- .github/workflows/deploy-develop.yml | 20 ++++++++++---------- .github/workflows/deploy-main.yml | 20 ++++++++++---------- gatsby-config.js | 2 +- gatsby-node.js | 15 +++++++++++++++ 4 files changed, 36 insertions(+), 21 deletions(-) diff --git a/.github/workflows/deploy-develop.yml b/.github/workflows/deploy-develop.yml index 4fb3d49e81f..08139803103 100644 --- a/.github/workflows/deploy-develop.yml +++ b/.github/workflows/deploy-develop.yml @@ -26,16 +26,16 @@ jobs: env: NODE_ENV: ${{ secrets.NODE_ENV }} - # - name: Checking Gatsby cache - # id: gatsby-cache-build - # uses: actions/cache@v2 - # with: - # path: | - # public - # .cache - # key: ${{ runner.os }}-gatsby-build-develop-${{ github.run_id }} - # restore-keys: | - # ${{ runner.os }}-gatsby-build-develop- + - name: Checking Gatsby cache + id: gatsby-cache-build + uses: actions/cache@v2 + with: + path: | + public + .cache + key: ${{ runner.os }}-gatsby-build-develop-${{ github.run_id }} + restore-keys: | + ${{ runner.os }}-gatsby-build-develop- - name: Fix mtimes run: yarn fix-mtimes --force diff --git a/.github/workflows/deploy-main.yml b/.github/workflows/deploy-main.yml index bb1003d4540..59b7cf8b129 100644 --- a/.github/workflows/deploy-main.yml +++ b/.github/workflows/deploy-main.yml @@ -26,16 +26,16 @@ jobs: env: NODE_ENV: ${{ secrets.NODE_ENV }} - # - name: Checking Gatsby cache - # id: gatsby-cache-build - # uses: actions/cache@v2 - # with: - # path: | - # public - # .cache - # key: ${{ runner.os }}-gatsby-build-main-${{ github.run_id }} - # restore-keys: | - # ${{ runner.os }}-gatsby-build-main- + - name: Checking Gatsby cache + id: gatsby-cache-build + uses: actions/cache@v2 + with: + path: | + public + .cache + key: ${{ runner.os }}-gatsby-build-main-${{ github.run_id }} + restore-keys: | + ${{ runner.os }}-gatsby-build-main- - name: Fix mtimes run: yarn fix-mtimes --force diff --git a/gatsby-config.js b/gatsby-config.js index 037e816aa2b..af345a7da4d 100644 --- a/gatsby-config.js +++ b/gatsby-config.js @@ -143,7 +143,7 @@ module.exports = { siteUrl: 'https://enterprisedb.com/docs', algoliaIndex: algoliaIndex, isDevelopment: !isBuild, - cacheBuster: 2, // for busting gh actions cache if needed + cacheBuster: 1, // for busting gh actions cache if needed }, plugins: [ 'gatsby-plugin-sass', diff --git a/gatsby-node.js b/gatsby-node.js index 155d888ecea..d4747102f8f 100644 --- a/gatsby-node.js +++ b/gatsby-node.js @@ -251,6 +251,14 @@ const createDoc = (navTree, prevNext, doc, productVersions, actions) => { const template = doc.frontmatter.productStub ? 'doc-stub.js' : 'doc.js'; const path = isLatest ? replacePathVersion(doc.fields.path) : doc.fields.path; + + // workaround for https://github.com/gatsbyjs/gatsby/issues/26520 + actions.createPage({ + path: path, + component: require.resolve(`./src/templates/${template}`), + context: {}, + }); + actions.createPage({ path: path, component: require.resolve(`./src/templates/${template}`), @@ -301,6 +309,13 @@ const createAdvocacy = (navTree, prevNext, doc, learn, actions) => { fileUrlSegment, )}`; + // workaround for https://github.com/gatsbyjs/gatsby/issues/26520 + actions.createPage({ + path: doc.fields.path, + component: require.resolve('./src/templates/learn-doc.js'), + context: {}, + }); + actions.createPage({ path: doc.fields.path, component: require.resolve('./src/templates/learn-doc.js'), From be946e3cb4264c63a1b8851041a8e2fd09ae6db0 Mon Sep 17 00:00:00 2001 From: sheetal Date: Wed, 17 Mar 2021 15:59:54 +0530 Subject: [PATCH 05/28] Minor tweaks to Linux guide Former-commit-id: 8331b3c4850a93eda6ee285cde3470aaa5d3cb61 --- ..._a_package_manager_to_install_advanced_server.mdx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/product_docs/docs/epas/13/epas_inst_linux/03_using_a_package_manager_to_install_advanced_server.mdx b/product_docs/docs/epas/13/epas_inst_linux/03_using_a_package_manager_to_install_advanced_server.mdx index 41114392e7b..82e0ef25198 100644 --- a/product_docs/docs/epas/13/epas_inst_linux/03_using_a_package_manager_to_install_advanced_server.mdx +++ b/product_docs/docs/epas/13/epas_inst_linux/03_using_a_package_manager_to_install_advanced_server.mdx @@ -122,7 +122,7 @@ You can use an RPM package to install Advanced Server on a CentOS host. On CentOS 8: ```text - # dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm + # dnf -y install epel-release # dnf makecache ``` @@ -548,15 +548,15 @@ The following steps will walk you through using the EDB apt repository to instal sudo su – ``` -- Configure the EDB repository: +- Configure the EDB repository and replace the `username` and `password` placeholders in the following command: - On Debian 9, Ubuntu 18, and Ubuntu 20: + On Debian 9: ```text sh -c 'echo "deb https://USERNAME:PASSWORD@apt.enterprisedb.com/$(lsb_release -cs)-edb/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/edb-$(lsb_release -cs).list' ``` - On Debian 10: + On Debian 10, Ubuntu 18, and Ubuntu 20: a. Set up the EDB repository: @@ -852,9 +852,9 @@ You can also view online help for `initdb` by assuming superuser privileges and Where `path_to_initdb_installation_directory` specifies the location of the `initdb` binary file. -### Modifying the Data Directory Location on CentOS or Redhat 7.x +### Modifying the Data Directory Location on CentOS or Redhat 7.x | 8.x -On a CentOS or RedHat version 7.x host, the unit file is named `edb-as-13.service` and resides in `/usr/lib/systemd/system`. The unit file contains references to the location of the Advanced Server `data` directory. You should avoid making any modifications directly to the unit file because it may be overwritten during package upgrades. +On a CentOS or RedHat version 7.x | 8.x host, the unit file is named `edb-as-13.service` and resides in `/usr/lib/systemd/system`. The unit file contains references to the location of the Advanced Server `data` directory. You should avoid making any modifications directly to the unit file because it may be overwritten during package upgrades. By default, data files reside under `/var/lib/edb/as13/data` directory. To use a data directory that resides in a non-default location, perform the following steps: From c6451277525304386104244d4ca133e0f62122eb Mon Sep 17 00:00:00 2001 From: "Nisha.Shah" Date: Wed, 17 Mar 2021 16:27:53 +0530 Subject: [PATCH 06/28] updated images for on-premises Former-commit-id: cb7ee9ce77c4b21a4fc007d8a5b77b4561345f92 --- .../images/mp_schema_mig_cloud_epas_schemas_selection.png | 4 ++-- .../3.0.1/images/mp_schema_mig_exist_epas_download.png | 4 ++-- .../3.0.1/images/mp_schema_mig_exist_epas_mig_success.png | 4 ++-- .../images/mp_schema_mig_exist_epas_schemas_selection.png | 4 ++-- .../3.0.1/images/mp_schema_mig_exist_epas_windows.png | 4 ++-- .../3.0.1/images/mp_schema_mig_exist_linux.png | 4 ++-- .../3.0.1/images/mp_schema_mig_new_epas_download.png | 4 ++-- .../3.0.1/images/mp_schema_mig_new_epas_linux.png | 4 ++-- .../3.0.1/images/mp_schema_mig_new_epas_linux_guide.png | 4 ++-- .../3.0.1/images/mp_schema_mig_new_epas_linux_import.png | 4 ++-- .../3.0.1/images/mp_schema_mig_new_epas_linux_repo.png | 4 ++-- .../3.0.1/images/mp_schema_mig_new_epas_mig_success.png | 4 ++-- .../3.0.1/images/mp_schema_mig_new_epas_schemas_selection.png | 4 ++-- .../3.0.1/images/mp_schema_mig_new_epas_windows.png | 4 ++-- .../3.0.1/images/mp_schema_mig_new_epas_windows_guide.png | 4 ++-- .../3.0.1/images/mp_schema_mig_new_epas_windows_import.png | 4 ++-- .../3.0.1/images/mp_schema_mig_new_epas_windows_installer.png | 4 ++-- .../3.0.1/images/mp_schema_migration_existing_epas.png | 4 ++-- .../3.0.1/images/mp_schema_migration_home_cloud.png | 4 ++-- .../3.0.1/images/mp_schema_migration_home_new.png | 4 ++-- 20 files changed, 40 insertions(+), 40 deletions(-) diff --git a/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_cloud_epas_schemas_selection.png b/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_cloud_epas_schemas_selection.png index ff55db3934e..d17e7a9b1b7 100755 --- a/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_cloud_epas_schemas_selection.png +++ b/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_cloud_epas_schemas_selection.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e9ca47ec2ec54ddc6473642940c4c8dd9f57aed1ec7f963af2d84c15ef3d2716 -size 101929 +oid sha256:66c444ed83d7931a02a0c5fdb502c8638b2d78cc775e828fb111bbfd544c5050 +size 140677 diff --git a/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_exist_epas_download.png b/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_exist_epas_download.png index b524ef0c67a..f46f5bad0c9 100755 --- a/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_exist_epas_download.png +++ b/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_exist_epas_download.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:db8d4d57937d06d6aacb975c6b4d16c5b1a3de0d9398d547f6375817179e8112 -size 131261 +oid sha256:f92a2e27fb3f4f35451239b8497a9ea8f0ed168b8aaffddccb81f522659e53ea +size 174547 diff --git a/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_exist_epas_mig_success.png b/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_exist_epas_mig_success.png index 7f0e71c9e25..13dbf3d8940 100755 --- a/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_exist_epas_mig_success.png +++ b/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_exist_epas_mig_success.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f945fe2d4a9ab1abdf1b6e094d8996b6b02f197d404831ac28bacf5a81b052ea -size 137211 +oid sha256:f47b41e78cdd37c2359cce2d9a8f44b242c9c23c8558dd1e87c60b9d85d32dbb +size 162802 diff --git a/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_exist_epas_schemas_selection.png b/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_exist_epas_schemas_selection.png index b922f6095a6..319ced39b13 100755 --- a/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_exist_epas_schemas_selection.png +++ b/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_exist_epas_schemas_selection.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9c7f23a59918546a9d21ae1bdc6e81535ce6a9e30097bf328bcd4bfb5116ef45 -size 125606 +oid sha256:e7298b1f5e4f8fb6f0e79c2db3ab9d7986c4a12f887226a14b141603b0c5d211 +size 145616 diff --git a/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_exist_epas_windows.png b/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_exist_epas_windows.png index 7ca695b36c8..d21838de502 100755 --- a/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_exist_epas_windows.png +++ b/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_exist_epas_windows.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f92a3cf9427583b471654f2f24dd982bbc28eaacf6f793d12e42089b6ee77c2f -size 158934 +oid sha256:4ea6e5ef7e230671bd1a3d6de3623f055cd35481d447194c492e701ab838a5f1 +size 175889 diff --git a/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_exist_linux.png b/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_exist_linux.png index 68725d665af..f3a4a769bd0 100755 --- a/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_exist_linux.png +++ b/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_exist_linux.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b8bcae7eaa88d4ec7688574c5e89b9fb54ca104a1c91c8b309ea3972ff1111bf -size 186188 +oid sha256:a71968319df484f684789d7b76146607459900324dcd9cf6ac1211a89a943ed7 +size 203330 diff --git a/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_new_epas_download.png b/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_new_epas_download.png index df0966a9abc..600e452851e 100755 --- a/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_new_epas_download.png +++ b/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_new_epas_download.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0cf7cfd8f5b214d0bdd1f940de29950cd016f304d45f1caf938d6d03fadb70f8 -size 139864 +oid sha256:0d93baa2b4ba70e4fc074fd646fa65f7197ec4e2fa6c2c816b33eb23bfbf0ff1 +size 184597 diff --git a/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_new_epas_linux.png b/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_new_epas_linux.png index e46b4773c53..852f6d53e5a 100755 --- a/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_new_epas_linux.png +++ b/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_new_epas_linux.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:14ed7cb8da8b736c8991a82c19d93c3b209d6e6b2f47d6f61a44b14ef8414cc2 -size 122782 +oid sha256:677d100f97be9860065db209e07902be872cea386062f80e2021a0a76753c664 +size 164185 diff --git a/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_new_epas_linux_guide.png b/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_new_epas_linux_guide.png index 6c9cae49dd7..9e339fc7e73 100755 --- a/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_new_epas_linux_guide.png +++ b/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_new_epas_linux_guide.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8572516c5e2e97949be493008ac0c2c8d4ad07dc73922362a26f489b41c623e6 -size 125819 +oid sha256:fe8dcec46f7514879337a43c0338b8bbb660de7383ec2cf6111770f23436a719 +size 170231 diff --git a/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_new_epas_linux_import.png b/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_new_epas_linux_import.png index 52d66bf4871..32b9a85e038 100755 --- a/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_new_epas_linux_import.png +++ b/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_new_epas_linux_import.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:42c4baa4a3ed717130724d892454c4caa84c55e5d7f7a19fc942bcaaf3b6c0cf -size 185979 +oid sha256:36a2323d8701aa62c60280e52d1be5840dbeef9dbc91f22975f493fb1028bdd8 +size 230854 diff --git a/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_new_epas_linux_repo.png b/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_new_epas_linux_repo.png index 4ab415219e9..de4a4ca7ad7 100755 --- a/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_new_epas_linux_repo.png +++ b/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_new_epas_linux_repo.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6c01e2ecf84f3c7626ac64b7f600a4ebf6f07d44a63b974afb78e4e1c9a000ec -size 122311 +oid sha256:3227bb949349b0badd126cb751968809c2a3e05fffef82b76ac1620530e976a9 +size 163053 diff --git a/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_new_epas_mig_success.png b/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_new_epas_mig_success.png index 1bf0618ad06..a2657d0a4f5 100755 --- a/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_new_epas_mig_success.png +++ b/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_new_epas_mig_success.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:96579ab0b27dc40b907acc6418d1f4d2dac6e35ac1a4177c744ceb9c90fa10a3 -size 144809 +oid sha256:9e1a47db1cc6e3c284cc5e935eb3799fd6d5ab5b4be5a7eb57b6a8a316fc3808 +size 172674 diff --git a/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_new_epas_schemas_selection.png b/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_new_epas_schemas_selection.png index e3692c041a8..a08c3e0c2cf 100755 --- a/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_new_epas_schemas_selection.png +++ b/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_new_epas_schemas_selection.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:318df0dcb693c591ee648e2dae7a19887efd69096f3a991c368a4091de7d997a -size 107531 +oid sha256:03d52f347581fc9722185fee58a9c110f588476448b377be6abcc0dbacb2d91d +size 158238 diff --git a/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_new_epas_windows.png b/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_new_epas_windows.png index 720a2047b64..18011128840 100755 --- a/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_new_epas_windows.png +++ b/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_new_epas_windows.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d428d6dc2178d8cbd0aea10502a4011cfc27d39d61e41477c9e2b35e4d29a137 -size 124107 +oid sha256:3ed26255587c0d2190f6e00c49e4e90f55df27f5f57a4fb8d716b81079d16f48 +size 165394 diff --git a/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_new_epas_windows_guide.png b/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_new_epas_windows_guide.png index 0dcea993480..0981ec38ecb 100755 --- a/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_new_epas_windows_guide.png +++ b/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_new_epas_windows_guide.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0107c9dc75b06a0d42d7e7f24a63a15ebc928110c002932ba4c4715b4f0a28b7 -size 128004 +oid sha256:bcbbb0207ab63d280f522374c4aec6318de522e6a9acdc2dc9943bce66e13325 +size 174277 diff --git a/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_new_epas_windows_import.png b/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_new_epas_windows_import.png index 56ca2ac5ce5..afcee8c6e8f 100755 --- a/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_new_epas_windows_import.png +++ b/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_new_epas_windows_import.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:10b7b2cb7ee2d0e937103482f280d2f5f42dcc9110a10bcf7228f1a7ea7d179c -size 159959 +oid sha256:f0b1c0b191617744735f45d7158adb3dcc40ef69d2e0709db12e7252cde6f63e +size 201437 diff --git a/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_new_epas_windows_installer.png b/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_new_epas_windows_installer.png index 51e7591d1f0..544da5d939b 100755 --- a/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_new_epas_windows_installer.png +++ b/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_new_epas_windows_installer.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d0c1c99381657daaa430029bd1914405748696f2ee0fdc0e61132c5f969e152f -size 119578 +oid sha256:535c26e7c31f4f542b514ef9fd10e69e882dd2dc4d719239b164bb90ab16c1a4 +size 162452 diff --git a/product_docs/docs/migration_portal/3.0.1/images/mp_schema_migration_existing_epas.png b/product_docs/docs/migration_portal/3.0.1/images/mp_schema_migration_existing_epas.png index cd7b8cd79f8..7a928e18c19 100755 --- a/product_docs/docs/migration_portal/3.0.1/images/mp_schema_migration_existing_epas.png +++ b/product_docs/docs/migration_portal/3.0.1/images/mp_schema_migration_existing_epas.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a163aca10bdea15b269de1be2c010a8e9931ef8af2e5528c37dc923c23324601 -size 205214 +oid sha256:5755bcee19305d3f08a806be23e47abca871ef3a79e311cfff565817d6861570 +size 229651 diff --git a/product_docs/docs/migration_portal/3.0.1/images/mp_schema_migration_home_cloud.png b/product_docs/docs/migration_portal/3.0.1/images/mp_schema_migration_home_cloud.png index b133669ea17..f91b6ab2c61 100755 --- a/product_docs/docs/migration_portal/3.0.1/images/mp_schema_migration_home_cloud.png +++ b/product_docs/docs/migration_portal/3.0.1/images/mp_schema_migration_home_cloud.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9b0c1cb572a8720d5ddafd828fd2e86fe3cc26c330112ad711ec0ee3184db70b -size 201480 +oid sha256:ef156130d5a720bea9071ddeb4dc63c9754902b680b1437c588c5cacc07ad105 +size 222379 diff --git a/product_docs/docs/migration_portal/3.0.1/images/mp_schema_migration_home_new.png b/product_docs/docs/migration_portal/3.0.1/images/mp_schema_migration_home_new.png index abff46651b0..22fe5b1c37c 100755 --- a/product_docs/docs/migration_portal/3.0.1/images/mp_schema_migration_home_new.png +++ b/product_docs/docs/migration_portal/3.0.1/images/mp_schema_migration_home_new.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:29ea0c3d9170b5acf7f1a8aa50129686feac091062a47ca6922d6500ddfff80f -size 201584 +oid sha256:e322d2c67e5e78f511ae226b0c9d99323cbb35ed91204027b853ea83da37c2b0 +size 230803 From 396a1e9b44d97a3c41b474d0cec0aede9cf8053e Mon Sep 17 00:00:00 2001 From: "Nisha.Shah" Date: Wed, 17 Mar 2021 17:14:46 +0530 Subject: [PATCH 07/28] updated the schema home page image Former-commit-id: 3cff8b3b3da264068474f8c5ebcdffd2b681d6cb --- .../3.0.1/images/mp_schema_migration_home.png | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/product_docs/docs/migration_portal/3.0.1/images/mp_schema_migration_home.png b/product_docs/docs/migration_portal/3.0.1/images/mp_schema_migration_home.png index 71373862ae2..22fe5b1c37c 100755 --- a/product_docs/docs/migration_portal/3.0.1/images/mp_schema_migration_home.png +++ b/product_docs/docs/migration_portal/3.0.1/images/mp_schema_migration_home.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:699ae53f1570279e29b4df714a9a9370be2aa12c1432e44fb7ab0aee4802b8f9 -size 210882 +oid sha256:e322d2c67e5e78f511ae226b0c9d99323cbb35ed91204027b853ea83da37c2b0 +size 230803 From 652c6f4588856d83cebbf196b43490c7172e5562 Mon Sep 17 00:00:00 2001 From: "Nisha.Shah" Date: Wed, 17 Mar 2021 17:54:37 +0530 Subject: [PATCH 08/28] updated the image with the latest on-premises image Former-commit-id: 8199a1cbd2739ebf235fe5be1c497e026e180bc6 --- .../mp_schema_mig_exist_epas_schemas_selection_linux.png | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_exist_epas_schemas_selection_linux.png b/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_exist_epas_schemas_selection_linux.png index b4c690062ce..319ced39b13 100755 --- a/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_exist_epas_schemas_selection_linux.png +++ b/product_docs/docs/migration_portal/3.0.1/images/mp_schema_mig_exist_epas_schemas_selection_linux.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fa21a74f793b3a6635fa84dd7f283ff6e82926ed127e8b80230cb30a50ee8854 -size 99212 +oid sha256:e7298b1f5e4f8fb6f0e79c2db3ab9d7986c4a12f887226a14b141603b0c5d211 +size 145616 From c9dc76effa52a2fa5631eb0bad083da9d092ff6c Mon Sep 17 00:00:00 2001 From: Evan Barger Date: Wed, 17 Mar 2021 14:01:41 -0400 Subject: [PATCH 09/28] Bump gatsby and gatsby-cli to 3.1.0 Former-commit-id: da95b390569481a5534c3adb0aa8c1327819093c --- package.json | 4 +- yarn.lock | 224 +++++++++++++++++++++++++++++++-------------------- 2 files changed, 138 insertions(+), 90 deletions(-) diff --git a/package.json b/package.json index 17d5e6dc758..52addae6860 100644 --- a/package.json +++ b/package.json @@ -31,8 +31,8 @@ "balance-text": "^3.3.0", "bl": "4.1.0", "bootstrap": "4.6.0", - "gatsby": "^3.0.0", - "gatsby-cli": "^3.0.0", + "gatsby": "^3.1.0", + "gatsby-cli": "^3.1.0", "gatsby-plugin-algolia": "^0.17.0", "gatsby-plugin-catch-links": "^3.0.0", "gatsby-plugin-google-fonts": "^1.0.1", diff --git a/yarn.lock b/yarn.lock index e9342e83e69..7b7c8626122 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2943,20 +2943,20 @@ babel-plugin-polyfill-regenerator@^0.1.2: dependencies: "@babel/helper-define-polyfill-provider" "^0.1.5" -babel-plugin-remove-graphql-queries@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-3.0.0.tgz#b5c4e5e29b3bd2110b55a36d5b9076da15b5805e" - integrity sha512-eKyztf9FDm4U+aEojPXKlYbE0VM4L2fxU+xHAn21lx13ZR7jT+N5qQNeZk+wR7I/NzwFBy1nuHFui4oXa/Kr0A== +babel-plugin-remove-graphql-queries@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-3.1.0.tgz#03e80d40da51c0240e0e9296e7788c25cca284c0" + integrity sha512-SRQLdxRg74aO8YWi/asxE31qn9bzPzSk28mJ6tHoT7U3Y2VPWhTVCLRXALLlRZEYFyLI4RJKSMT6LdKzN9a79Q== babel-plugin-transform-react-remove-prop-types@^0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz#f2edaf9b4c6a5fbe5c1d678bfb531078c1555f3a" integrity sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA== -babel-preset-gatsby@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/babel-preset-gatsby/-/babel-preset-gatsby-1.0.0.tgz#14bcb46e45bfee12d095819f1f439415401377b7" - integrity sha512-3jCjp/yhbgbvSxj9j6ieF6h1JKi9Kfot8N+NSh80GDQ5iwhg/x+Ev7ocyU0UKm89t5QaZuPcGY/RopK0gck+pg== +babel-preset-gatsby@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/babel-preset-gatsby/-/babel-preset-gatsby-1.1.0.tgz#53176fd26bb798d91b0891d9dffcde5b1a8558cd" + integrity sha512-GM21xzM1mlUvCmA4pjJxyG3Q2abcrIn1wfGgCBUfw3mwHuy/RibF0L9QzpZUcQTRWy82oAjJteA0qaTLFhOD+g== dependencies: "@babel/plugin-proposal-class-properties" "^7.12.1" "@babel/plugin-proposal-nullish-coalescing-operator" "^7.12.1" @@ -2971,8 +2971,8 @@ babel-preset-gatsby@^1.0.0: babel-plugin-dynamic-import-node "^2.3.3" babel-plugin-macros "^2.8.0" babel-plugin-transform-react-remove-prop-types "^0.4.24" - gatsby-core-utils "^2.0.0" - gatsby-legacy-polyfills "^1.0.0" + gatsby-core-utils "^2.1.0" + gatsby-legacy-polyfills "^1.1.0" backo2@~1.0.2: version "1.0.2" @@ -4099,7 +4099,15 @@ copyfiles@^2.3.0: untildify "^4.0.0" yargs "^16.1.0" -core-js-compat@^3.6.5, core-js-compat@^3.8.1, core-js-compat@^3.9.0: +core-js-compat@3.9.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.9.0.tgz#29da39385f16b71e1915565aa0385c4e0963ad56" + integrity sha512-YK6fwFjCOKWwGnjFUR3c544YsnA/7DoLL0ysncuOJ4pwbriAtOpvM2bygdlcXbvQCQZ7bBU9CL4t7tGl7ETRpQ== + dependencies: + browserslist "^4.16.3" + semver "7.0.0" + +core-js-compat@^3.8.1, core-js-compat@^3.9.0: version "3.9.1" resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.9.1.tgz#4e572acfe90aff69d76d8c37759d21a5c59bb455" integrity sha512-jXAirMQxrkbiiLsCx9bQPJFA6llDadKMpYrBJQJ3/c4/vsPP/fAf29h24tviRlvwUL6AmY5CHLu2GvjuYviQqA== @@ -4112,7 +4120,7 @@ core-js-pure@^3.0.0: resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.9.1.tgz#677b322267172bd490e4464696f790cbc355bec5" integrity sha512-laz3Zx0avrw9a4QEIdmIblnVuJz8W51leY9iLThatCsFawWxC3sE4guASC78JbCin+DkwMpCdp1AVAuzL/GN7A== -core-js@^3.6.5: +core-js@^3.6.5, core-js@^3.9.0: version "3.9.1" resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.9.1.tgz#cec8de593db8eb2a85ffb0dbdeb312cb6e5460ae" integrity sha512-gSjRvzkxQc1zjM/5paAmL4idJBFzuJoo+jDjF1tStYFMV2ERfD02HhahhCGXUyHxQRG4yFKVSdO6g62eoRMcDg== @@ -4169,10 +4177,10 @@ cosmiconfig@^7.0.0: path-type "^4.0.0" yaml "^1.10.0" -create-gatsby@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/create-gatsby/-/create-gatsby-1.0.0.tgz#f977ffcf5e005c9885f6a89efcf6a9bbdd92ac17" - integrity sha512-eDa6rpm6sNrqrnzZDBRsbiCvEvUibAswliYcwqEP1ibgljQ88TXZP4FLnX6//Epj4zTwpUPVYALWVluOgBNGCA== +create-gatsby@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/create-gatsby/-/create-gatsby-1.1.0.tgz#91a381886d5127d1f0c7ecf52eaf6fd2e1b9b169" + integrity sha512-AM9JNlbIOkTinGNiG7J8AnCCykZxJfVENlv1vF7hS3RqGsKeZlv4PADTLCdkeIUhaLcjEiEVv7HbyfK8dA2eoA== create-require@^1.1.0: version "1.1.1" @@ -6202,13 +6210,12 @@ functional-red-black-tree@^1.0.1: resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= -gatsby-cli@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/gatsby-cli/-/gatsby-cli-3.0.0.tgz#76842780971a15e78c8219118796d18ebe354b54" - integrity sha512-5vVKmj6D1n71xxD/xwCmmh3O4ixG6sCUeFMAbnA8NlhxXiQSrMOhKlozOmLLa8abrvcR/SQLFzEadSxgG5WE8g== +gatsby-cli@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/gatsby-cli/-/gatsby-cli-3.1.0.tgz#e67deb874d24c02b7d47a3fdf51f2d06bb2d50ae" + integrity sha512-SOEXePHvk+Lj3XezFOjmtidMUq39hRHQsDa9iAtMvFc6bJxVIm4oGMu59mUWijGEVTlL1kwMOY7kAq1DEEtfNA== dependencies: "@babel/code-frame" "^7.10.4" - "@hapi/joi" "^15.1.1" "@types/common-tags" "^1.8.0" better-opn "^2.0.0" chalk "^4.1.0" @@ -6216,17 +6223,18 @@ gatsby-cli@^3.0.0: common-tags "^1.8.0" configstore "^5.0.1" convert-hrtime "^3.0.0" - create-gatsby "^1.0.0" + create-gatsby "^1.1.0" envinfo "^7.7.3" execa "^3.4.0" fs-exists-cached "^1.0.0" fs-extra "^8.1.0" - gatsby-core-utils "^2.0.0" - gatsby-recipes "^0.11.0" - gatsby-telemetry "^2.0.0" + gatsby-core-utils "^2.1.0" + gatsby-recipes "^0.12.0" + gatsby-telemetry "^2.1.0" hosted-git-info "^3.0.6" is-valid-path "^0.1.1" - lodash "^4.17.20" + joi "^17.4.0" + lodash "^4.17.21" meant "^1.0.2" node-fetch "^2.6.1" opentracing "^0.14.4" @@ -6260,41 +6268,55 @@ gatsby-core-utils@^2.0.0: tmp "^0.2.1" xdg-basedir "^4.0.0" -gatsby-graphiql-explorer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/gatsby-graphiql-explorer/-/gatsby-graphiql-explorer-1.0.0.tgz#5de202dfcf266f4b5e661230e3b862b43c5d3682" - integrity sha512-1ZoeCAEWDLhHLlRwIWG8HjiylgezSXksOYgVn3GfkgwySzFrpqR2CZQlPF342RCoIX2LgcOs2s9It8WT1MDc1A== +gatsby-core-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/gatsby-core-utils/-/gatsby-core-utils-2.1.0.tgz#634989bc3cde1c7add752fbdc3c6a3cdd8e23377" + integrity sha512-zBNZ4kypfgqrUWNGMQQCXZookssXWaTnLWmxM7TOz5Phjvr0NvQo/xpkUgVbuylkQDwprmg88oRdox8L3zMY9Q== + dependencies: + ci-info "2.0.0" + configstore "^5.0.1" + file-type "^16.2.0" + fs-extra "^8.1.0" + node-object-hash "^2.0.0" + proper-lockfile "^4.1.1" + tmp "^0.2.1" + xdg-basedir "^4.0.0" + +gatsby-graphiql-explorer@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/gatsby-graphiql-explorer/-/gatsby-graphiql-explorer-1.1.0.tgz#00e4cfcad769363e6ea97cf6e36ff618c5e31923" + integrity sha512-+HqRSR3tkIAqMloEmLxpnfTpAWF9zHyRfPYw6nOhVmEkC75zNrT22XkFp9toitr0qdCVavpAJMhjBpypL9l3qQ== dependencies: "@babel/runtime" "^7.12.5" -gatsby-legacy-polyfills@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/gatsby-legacy-polyfills/-/gatsby-legacy-polyfills-1.0.0.tgz#42e740b9a62df1a4be022b7519e77a504788f857" - integrity sha512-whGt//oMbsQvr2uok4qkd1MrlbpSKYXl1lifkwZnrHTvAAf5wreeOZKbzM/C3SWLb0lmD2X7WO7gAamOBj7PwA== +gatsby-legacy-polyfills@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/gatsby-legacy-polyfills/-/gatsby-legacy-polyfills-1.1.0.tgz#70b0a42d1121b04c872b6320ade0efd8b996aaa8" + integrity sha512-h+1dvamBzeItxkWUyjlEJ5/1mBR8nOiS2ZO8L6VOL/s4egwTFbL8ehE/yhn/41nSB/KCKjMY9mv7orU/v/Xdaw== dependencies: - core-js-compat "^3.6.5" + core-js-compat "3.9.0" -gatsby-link@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/gatsby-link/-/gatsby-link-3.0.1.tgz#7fdef329da4cc9e53f9a306a68024fa4faa9b00c" - integrity sha512-lHzlYoBHB5tP4/3fb4crtleductDMoi5DcC140u4KKo7JyDqp24v8zDrd/iYa3sHlZagx1CxAtkghsIOJJbnBg== +gatsby-link@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/gatsby-link/-/gatsby-link-3.1.0.tgz#a64795edc032483450103ab235bab68a6f8dc2b8" + integrity sha512-5l84aGNGYp+8QDWnM030R1TjBms+zgdsNSZrRmwcQ57EF2IW6zRrw+ENSlBrxeV40mkmIXkVmIVbB8XuNKZNrg== dependencies: "@babel/runtime" "^7.12.5" "@types/reach__router" "^1.3.7" prop-types "^15.7.2" -gatsby-page-utils@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/gatsby-page-utils/-/gatsby-page-utils-1.0.0.tgz#1a9a09cc19e26449950b683dbb7e52ce6d661641" - integrity sha512-2NwkABVWqMtlL4HV0JiJJdd94Hib+qi/sOi2zeASLKjw6Ow7p2wqBrI+O6IfOXlFt9T4xq0BbG6YyzyBAptWaA== +gatsby-page-utils@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/gatsby-page-utils/-/gatsby-page-utils-1.1.0.tgz#44bbc38a5baf96b97c70ec5be607c594fe12b054" + integrity sha512-hNjEuWYtU95t6ypXn82eC+7OoArH4i/PnlhHt9DS8xdpf7Ad95Bk+wAhpIlF8iv9f/uf/e5DdbQeSXj1E1TeRw== dependencies: "@babel/runtime" "^7.12.5" bluebird "^3.7.2" chokidar "^3.5.1" fs-exists-cached "^1.0.0" - gatsby-core-utils "^2.0.0" + gatsby-core-utils "^2.1.0" glob "^7.1.6" - lodash "^4.17.20" + lodash "^4.17.21" micromatch "^4.0.2" gatsby-plugin-algolia@^0.17.0: @@ -6405,19 +6427,19 @@ gatsby-plugin-nginx-redirect@^0.0.11: lodash "^4.17.20" nginx-conf "^1.5.0" -gatsby-plugin-page-creator@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-3.0.0.tgz#546a7d7303d2af775bb07ca4663053efd7705e0a" - integrity sha512-xlywUGKkFZpPNXNJ64H/+aJ+ovFV4FK+cNxy+6M9PP10yayZqEtW+nNujil5yTJwPqcuBhtnQEmQrXhYgE/HqQ== +gatsby-plugin-page-creator@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-3.1.0.tgz#98df02c01beabd6274c1f920d5785ec70f6e9c17" + integrity sha512-0Ji3U8/oPgUCIHUmm5QI09Yz98j8qslqdzDv7veE75+Qqr1oC4ZD650TwH9GVjRKitxwntK+GaNPMS6nDq24kw== dependencies: "@babel/traverse" "^7.12.5" "@sindresorhus/slugify" "^1.1.0" chokidar "^3.5.1" fs-exists-cached "^1.0.0" - gatsby-page-utils "^1.0.0" - gatsby-telemetry "^2.0.0" + gatsby-page-utils "^1.1.0" + gatsby-telemetry "^2.1.0" globby "^11.0.2" - lodash "^4.17.20" + lodash "^4.17.21" gatsby-plugin-react-helmet@^4.0.0: version "4.0.0" @@ -6484,10 +6506,10 @@ gatsby-plugin-sitemap@^3.0.0: pify "^3.0.0" sitemap "^1.13.0" -gatsby-plugin-typescript@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/gatsby-plugin-typescript/-/gatsby-plugin-typescript-3.0.0.tgz#09464dcab1f88d572ba2dedd970cef430a05fd5c" - integrity sha512-s9bhqc8FI12iu07KHzYeQ2yf2LRh0NsfPysKR5prhy9+tmtHT5n7r/JLYJ4AaEycuJfqBYLo4UbR5+WqwVe3sg== +gatsby-plugin-typescript@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/gatsby-plugin-typescript/-/gatsby-plugin-typescript-3.1.0.tgz#dafb86c481f8bad84ad761e08f7d6ae83a7c73ba" + integrity sha512-p1tk/7ECbLefJzmEEl/n6qKofNIXIH2B9Bz0XnKyVaRxXNIbE3VI76qFCm3dFh+MUUg8Q4JKc2WAZcBYIdQeZA== dependencies: "@babel/core" "^7.12.3" "@babel/plugin-proposal-nullish-coalescing-operator" "^7.12.1" @@ -6495,7 +6517,7 @@ gatsby-plugin-typescript@^3.0.0: "@babel/plugin-proposal-optional-chaining" "^7.12.1" "@babel/preset-typescript" "^7.12.1" "@babel/runtime" "^7.12.5" - babel-plugin-remove-graphql-queries "^3.0.0" + babel-plugin-remove-graphql-queries "^3.1.0" gatsby-plugin-utils@^1.0.0: version "1.0.0" @@ -6504,17 +6526,24 @@ gatsby-plugin-utils@^1.0.0: dependencies: joi "^17.2.1" -gatsby-react-router-scroll@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/gatsby-react-router-scroll/-/gatsby-react-router-scroll-4.0.1.tgz#ac9b7722057b7f14a28136f77e6aa984dbceff03" - integrity sha512-I0owccfyHioK6V8LhbRXkQde9YPbiDzMyA3SGy7p9zRWO5lqmpJU/0g+qf7UAZYYTeoaDyYOP9pek6KcIUwf8Q== +gatsby-plugin-utils@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/gatsby-plugin-utils/-/gatsby-plugin-utils-1.1.0.tgz#b73f3f196323df3c75e6edb345d221f003b5c152" + integrity sha512-B21V3tFskfZcVSJVaYy6rLrxHcumbcmhKAYKniKThxCP/0KSqHkfC9+Bopsonk8npRKbVX924OI3UOCKfbgFsg== + dependencies: + joi "^17.2.1" + +gatsby-react-router-scroll@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/gatsby-react-router-scroll/-/gatsby-react-router-scroll-4.1.0.tgz#582a693048cf9a485a567afa11964df366d104fe" + integrity sha512-P2RIO7Py7QQvIntzmrpiz93B6jZsOwVhSVWp3dDa1YrD4/y43553zrEwczifWicLYcgCy/miMnuctfoKCJuxlg== dependencies: "@babel/runtime" "^7.12.5" -gatsby-recipes@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/gatsby-recipes/-/gatsby-recipes-0.11.0.tgz#5138fd1ad34b766fe438387a35f019e3fa09c160" - integrity sha512-HJXVEKs71HFleUvaapEfqjZLqZOFRbr90uKSn75CsZNnv1SC2HJ2kTEGb4P67CoFlJx4QUG71mhYyT1kPyy+tQ== +gatsby-recipes@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/gatsby-recipes/-/gatsby-recipes-0.12.0.tgz#3b0e313c6f67ffa750c7ff402ca1196f525a2470" + integrity sha512-WotaMTpVWVP40uO24Iw2ioEAGcO6OZwcJYZz3Ihrb4CmjbKM6KEic8RuXH4d84OTLCvWz0s0lPiIu1IgbnYwgQ== dependencies: "@babel/core" "^7.12.3" "@babel/generator" "^7.12.5" @@ -6539,8 +6568,8 @@ gatsby-recipes@^0.11.0: express "^4.17.1" express-graphql "^0.9.0" fs-extra "^8.1.0" - gatsby-core-utils "^2.0.0" - gatsby-telemetry "^2.0.0" + gatsby-core-utils "^2.1.0" + gatsby-telemetry "^2.1.0" glob "^7.1.6" graphql "^15.4.0" graphql-compose "~7.25.0" @@ -6551,7 +6580,7 @@ gatsby-recipes@^0.11.0: is-url "^1.2.4" jest-diff "^25.5.0" lock "^1.0.0" - lodash "^4.17.20" + lodash "^4.17.21" mitt "^1.2.0" mkdirp "^0.5.1" node-fetch "^2.5.0" @@ -6651,6 +6680,26 @@ gatsby-telemetry@^2.0.0: node-fetch "^2.6.1" uuid "3.4.0" +gatsby-telemetry@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/gatsby-telemetry/-/gatsby-telemetry-2.1.0.tgz#e7c0f8bc488a93bf4afcd10760f38b50471e754f" + integrity sha512-ZAmjxYsLyJ9eK3ZGphoIjl1C/Mx732h+PWpyD+NNUPf+GFJcPDVAd/tX9XHjNTVrAN3rAaHuH48wK7JNeC/xIA== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/runtime" "^7.12.5" + "@turist/fetch" "^7.1.7" + "@turist/time" "^0.0.1" + async-retry-ng "^2.0.1" + boxen "^4.2.0" + configstore "^5.0.1" + fs-extra "^8.1.0" + gatsby-core-utils "^2.1.0" + git-up "^4.0.2" + is-docker "^2.1.1" + lodash "^4.17.21" + node-fetch "^2.6.1" + uuid "3.4.0" + gatsby-transformer-json@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/gatsby-transformer-json/-/gatsby-transformer-json-3.0.0.tgz#e8ab61ac5aa9aa7699c00d869c63b91ce37d606e" @@ -6700,10 +6749,10 @@ gatsby-transformer-sharp@^3.0.0: semver "^7.3.4" sharp "^0.27.0" -gatsby@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/gatsby/-/gatsby-3.0.4.tgz#dce3e44cb85ee6a4cdc71a5be9b3485206bea0fc" - integrity sha512-LIBeox/O4XlgfpPYScS5LwFreWlZuuz4OZl0cnkA3M8EfxelHwLpqMvOeSYsoMHvogBJzlLocfRQIgzqvXS7kA== +gatsby@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/gatsby/-/gatsby-3.1.0.tgz#88bfd1053d7a6574208d5fb525186a6a20ca8ffd" + integrity sha512-AnEMYZk5f5zEPZ4yHUaJk9G98RyoWdnkif1k2GvEyRrMbPOW6VpZdFnxZKVGfX/AZcA+pA0szuY8f46GASaXEg== dependencies: "@babel/code-frame" "^7.10.4" "@babel/core" "^7.12.3" @@ -6714,7 +6763,6 @@ gatsby@^3.0.0: "@babel/types" "^7.12.6" "@gatsbyjs/reach-router" "^1.3.6" "@gatsbyjs/webpack-hot-middleware" "^2.25.2" - "@hapi/joi" "^15.1.1" "@mikaelkristiansson/domready" "^1.0.10" "@nodelib/fs.walk" "^1.2.4" "@pmmmwh/react-refresh-webpack-plugin" "^0.4.3" @@ -6730,8 +6778,8 @@ gatsby@^3.0.0: babel-plugin-add-module-exports "^1.0.4" babel-plugin-dynamic-import-node "^2.3.3" babel-plugin-lodash "^3.3.4" - babel-plugin-remove-graphql-queries "^3.0.0" - babel-preset-gatsby "^1.0.0" + babel-plugin-remove-graphql-queries "^3.1.0" + babel-preset-gatsby "^1.1.0" better-opn "^2.0.0" better-queue "^3.8.10" bluebird "^3.7.2" @@ -6743,7 +6791,7 @@ gatsby@^3.0.0: common-tags "^1.8.0" compression "^1.7.4" copyfiles "^2.3.0" - core-js "^3.6.5" + core-js "^3.9.0" cors "^2.8.5" css-loader "^5.0.1" css-minimizer-webpack-plugin "^1.2.0" @@ -6773,16 +6821,16 @@ gatsby@^3.0.0: find-cache-dir "^3.3.1" fs-exists-cached "1.0.0" fs-extra "^8.1.0" - gatsby-cli "^3.0.0" - gatsby-core-utils "^2.0.0" - gatsby-graphiql-explorer "^1.0.0" - gatsby-legacy-polyfills "^1.0.0" - gatsby-link "^3.0.1" - gatsby-plugin-page-creator "^3.0.0" - gatsby-plugin-typescript "^3.0.0" - gatsby-plugin-utils "^1.0.0" - gatsby-react-router-scroll "^4.0.1" - gatsby-telemetry "^2.0.0" + gatsby-cli "^3.1.0" + gatsby-core-utils "^2.1.0" + gatsby-graphiql-explorer "^1.1.0" + gatsby-legacy-polyfills "^1.1.0" + gatsby-link "^3.1.0" + gatsby-plugin-page-creator "^3.1.0" + gatsby-plugin-typescript "^3.1.0" + gatsby-plugin-utils "^1.1.0" + gatsby-react-router-scroll "^4.1.0" + gatsby-telemetry "^2.1.0" glob "^7.1.6" got "8.3.2" graphql "^15.4.0" @@ -6798,7 +6846,7 @@ gatsby@^3.0.0: json-loader "^0.5.7" json-stringify-safe "^5.0.1" latest-version "5.1.0" - lodash "^4.17.20" + lodash "^4.17.21" md5-file "^5.0.0" meant "^1.0.1" memoizee "^0.4.15" @@ -8695,7 +8743,7 @@ jimp@^0.14.0: "@jimp/types" "^0.14.0" regenerator-runtime "^0.13.3" -joi@^17.2.1: +joi@^17.2.1, joi@^17.4.0: version "17.4.0" resolved "https://registry.yarnpkg.com/joi/-/joi-17.4.0.tgz#b5c2277c8519e016316e49ababd41a1908d9ef20" integrity sha512-F4WiW2xaV6wc1jxete70Rw4V/VuMd6IN+a5ilZsxG4uYtUXWu2kq9W5P2dz30e7Gmw8RCbY/u/uk+dMPma9tAg== From 0313c0dd7306299c20d6c6b4e599accd0f8f4ba5 Mon Sep 17 00:00:00 2001 From: Evan Barger Date: Wed, 17 Mar 2021 15:00:19 -0400 Subject: [PATCH 10/28] Upgrade everything except gatsby-remark-images Former-commit-id: fbeaa4f7b6699a22dc8a784db8e9b4d74c4a5f0f --- package.json | 2 +- yarn.lock | 196 ++++++++++++++++++++------------------------------- 2 files changed, 78 insertions(+), 120 deletions(-) diff --git a/package.json b/package.json index 52addae6860..47dd7cb558e 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ "gatsby-plugin-sharp": "^3.0.1", "gatsby-plugin-sitemap": "^3.0.0", "gatsby-remark-autolink-headers": "^3.0.0", - "gatsby-remark-images": "^4.0.0", + "gatsby-remark-images": "4.0.0", "gatsby-remark-prismjs": "^4.0.0", "gatsby-source-filesystem": "^3.0.0", "gatsby-transformer-json": "^3.0.0", diff --git a/yarn.lock b/yarn.lock index 7b7c8626122..c4c9076fb75 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3520,9 +3520,9 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001125, caniuse-lite@^1.0.30001181, caniuse-lite@^1.0.30001196: - version "1.0.30001200" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001200.tgz#25435af6ba907c2a9c86d21ce84950d4824e6620" - integrity sha512-ic/jXfa6tgiPBAISWk16jRI2q8YfjxHnSG7ddSL1ptrIP8Uy11SayFrjXRAk3NumHpDb21fdTkbTxb/hOrFrnQ== + version "1.0.30001202" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001202.tgz#4cb3bd5e8a808e8cd89e4e66c549989bc8137201" + integrity sha512-ZcijQNqrcF8JNLjzvEiXqX4JUYxoZa7Pvcsd9UD8Kz4TvhTonOSNRsK+qtvpVL4l6+T1Rh4LFtLfnNWg6BGWCQ== caw@^2.0.0, caw@^2.0.1: version "2.0.1" @@ -4031,9 +4031,9 @@ content-type@^1.0.4, content-type@~1.0.4: integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== contentful-management@^7.5.1: - version "7.9.0" - resolved "https://registry.yarnpkg.com/contentful-management/-/contentful-management-7.9.0.tgz#161a55b91473332542abe3030d16f8bb0805edd4" - integrity sha512-9jXsX1QJrHFl2ao1j2pwHteW7vUe4/pus0Xm9GObMnyASeG1g9d/VCP6b4FoPek0Y8uEe1YjLGYxzM3YJha1kg== + version "7.11.0" + resolved "https://registry.yarnpkg.com/contentful-management/-/contentful-management-7.11.0.tgz#3202c68c603e781fbcdd9286bebc3bd0c847c9d7" + integrity sha512-ewRMdKe1BpJ3ySAVBaIjOPsaVi9tP9cWd6h04foS+1u4HrAG23IKZsD3ZPl4jrArKerLDetvXAX0S446/DVd1g== dependencies: axios "^0.21.0" contentful-sdk-core "^6.7.0" @@ -4745,9 +4745,9 @@ detect-newline@^1.0.3: minimist "^1.1.0" detect-node@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" - integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== + version "2.0.5" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.5.tgz#9d270aa7eaa5af0b72c4c9d9b814e7f4ce738b79" + integrity sha512-qi86tE6hRcFHy8jI1m2VG+LaPUR1LhqDa5G8tVjuUXmOrpuAgqsA1pN0+ldgr3aKUH+QLI9hCY/OcRYisERejw== detect-port-alt@1.1.6: version "1.1.6" @@ -5030,9 +5030,9 @@ ee-first@1.1.1: integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= electron-to-chromium@^1.3.564, electron-to-chromium@^1.3.649: - version "1.3.688" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.688.tgz#0ba54a3e77fca6561a337e6cca959b75db8683b0" - integrity sha512-tbKinYX7BomVBcWHzwGolzv3kqCdk/vQ36ao3MC8tQMXqs1ZpevYU2RTr7+hkDvGWtoQbe+nvvl+GfMFmRna/A== + version "1.3.690" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.690.tgz#54df63ec42fba6b8e9e05fe4be52caeeedb6e634" + integrity sha512-zPbaSv1c8LUKqQ+scNxJKv01RYFkVVF1xli+b+3Ty8ONujHjAMg+t/COmdZqrtnS1gT+g4hbSodHillymt1Lww== "emoji-regex@>=6.0.0 <=6.1.1": version "6.1.1" @@ -6254,21 +6254,7 @@ gatsby-cli@^3.1.0: yoga-layout-prebuilt "^1.9.6" yurnalist "^2.1.0" -gatsby-core-utils@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/gatsby-core-utils/-/gatsby-core-utils-2.0.0.tgz#00fdc1f2efcaabe7426e63b020a7117ca613780c" - integrity sha512-+DrClKZ/ScTbzhIHZXuU3DoIhEJ95uJV+swR7VVqYVhEpV1CnjUGR/dB+tMd0VqlPdrXB38FuR8O5kuSvYm+/A== - dependencies: - ci-info "2.0.0" - configstore "^5.0.1" - file-type "^16.2.0" - fs-extra "^8.1.0" - node-object-hash "^2.0.0" - proper-lockfile "^4.1.1" - tmp "^0.2.1" - xdg-basedir "^4.0.0" - -gatsby-core-utils@^2.1.0: +gatsby-core-utils@^2.0.0, gatsby-core-utils@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/gatsby-core-utils/-/gatsby-core-utils-2.1.0.tgz#634989bc3cde1c7add752fbdc3c6a3cdd8e23377" integrity sha512-zBNZ4kypfgqrUWNGMQQCXZookssXWaTnLWmxM7TOz5Phjvr0NvQo/xpkUgVbuylkQDwprmg88oRdox8L3zMY9Q== @@ -6328,9 +6314,9 @@ gatsby-plugin-algolia@^0.17.0: lodash.chunk "^4.2.0" gatsby-plugin-catch-links@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/gatsby-plugin-catch-links/-/gatsby-plugin-catch-links-3.0.0.tgz#ed7ea5b1cdc19e994222da8ed30387593c0ae02c" - integrity sha512-39ZqHBhOjCdhL7nQHRourd/y2mBvnMrGsUrNQCM2gKdA+IQqGm2ZQkzHVG8CkO0KaSjvM7QeXrXqGUoCeBUpJw== + version "3.1.0" + resolved "https://registry.yarnpkg.com/gatsby-plugin-catch-links/-/gatsby-plugin-catch-links-3.1.0.tgz#9ead896dc4bc2a711f7312e8453a3c906758b0ac" + integrity sha512-7h5V7ZZFJOlIlN4qmwgQbmsQrXO/UsIjnfdX93RdeZGBINjeUxaM7r97Od0cAzxf6lnkf4d34t13CmOa0dWbxQ== dependencies: "@babel/runtime" "^7.12.5" escape-string-regexp "^1.0.5" @@ -6341,27 +6327,27 @@ gatsby-plugin-google-fonts@^1.0.1: integrity sha512-p1NVkn27GUnDA5qHM+Z4cCcLCJIardzZXMon3640sT4xuL/AZJbsx3HEt2KY/5oZu0UXIkytkxzV2Da4rQeUIg== gatsby-plugin-google-tagmanager@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/gatsby-plugin-google-tagmanager/-/gatsby-plugin-google-tagmanager-3.0.0.tgz#7dfb88f6cc6edd1d0904c66bdd71f21dcf8f56d0" - integrity sha512-qhbmiEPUeexSgsWfHL1hs853W+xkC8zM6NzHlsAnnmPak0y76yFKsNppGz/UbrbD5SBzZ5i6xETVL84Ytqlm+A== + version "3.1.0" + resolved "https://registry.yarnpkg.com/gatsby-plugin-google-tagmanager/-/gatsby-plugin-google-tagmanager-3.1.0.tgz#fa5d044075e501b2dc5dd85019be5ce028c4abad" + integrity sha512-DWwCv6OGgJz91B/p5ExtsGWV139UiOEi/LgjO5Q32nQCY6idX9PGwC30qGzSV4z/Vm3YyDQxOSAD2GFYmKePdw== dependencies: "@babel/runtime" "^7.12.5" gatsby-plugin-manifest@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/gatsby-plugin-manifest/-/gatsby-plugin-manifest-3.0.0.tgz#4d5a7933bd2c539f9d35307812c4903e4c34b107" - integrity sha512-xmnppsXR0+CTQZhEmvcrbbV6rvOgO5ybE6Ywwv0bosSJxML3oBoo+kC8HCwK097Ppofgd1inSwNbJ5FB8wdNbQ== + version "3.1.0" + resolved "https://registry.yarnpkg.com/gatsby-plugin-manifest/-/gatsby-plugin-manifest-3.1.0.tgz#9a40e2c7355663ea0863b199e7ba92af2f655e8d" + integrity sha512-T3vmSdld5KdKhov1/GFgBZ1fgFdyS1Uw2ehtJy3qTqknO3TLq2AiyMTJVRE5Z6ztYWLkE5Lnc07HZSYSb0ocsA== dependencies: "@babel/runtime" "^7.12.5" - gatsby-core-utils "^2.0.0" - gatsby-plugin-utils "^1.0.0" + gatsby-core-utils "^2.1.0" + gatsby-plugin-utils "^1.1.0" semver "^7.3.2" sharp "^0.27.0" gatsby-plugin-mdx@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/gatsby-plugin-mdx/-/gatsby-plugin-mdx-2.0.1.tgz#f3762a036ff9db5daa56dfdde313ddbdc67c05e3" - integrity sha512-wNMFTsa5u1KeESt3jyICy3fz5y3JhmKynFJ0J7YeTHm9EMoCclwfR4LRr1Mz9GLTIyWwvZEeVfwc7Vf5svXIvA== + version "2.1.0" + resolved "https://registry.yarnpkg.com/gatsby-plugin-mdx/-/gatsby-plugin-mdx-2.1.0.tgz#1ae6d096016d40219fe254a1bf2fe9e7a4ce6e7a" + integrity sha512-0iSsPxCUTJMeTbozHVqczlgMAKxZJ4IkxOS5a6aTCwzrOOwIfc5YqcWQEBS3nfUF/azzEIejYuydyTMi68Y76A== dependencies: "@babel/core" "^7.12.3" "@babel/generator" "^7.12.5" @@ -6378,11 +6364,11 @@ gatsby-plugin-mdx@^2.0.1: escape-string-regexp "^1.0.5" eval "^0.1.4" fs-extra "^8.1.0" - gatsby-core-utils "^2.0.0" + gatsby-core-utils "^2.1.0" gray-matter "^4.0.2" json5 "^2.1.3" loader-utils "^1.4.0" - lodash "^4.17.20" + lodash "^4.17.21" mdast-util-to-string "^1.1.0" mdast-util-toc "^3.1.0" mime "^2.4.6" @@ -6408,14 +6394,14 @@ gatsby-plugin-meta-redirect@^1.1.1: fs-extra "^7.0.0" gatsby-plugin-netlify@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/gatsby-plugin-netlify/-/gatsby-plugin-netlify-3.0.1.tgz#586716f7b24e71fc8f19232004f6dd149e1d0c74" - integrity sha512-RH7Lo45dFsJadW9DfG0fMvpuavAT5JOVgTPnpsbNjsb6JKWYhDzRvavPOB2bW/+YpxlyoW0VHR3h6F4ZuFDnww== + version "3.1.0" + resolved "https://registry.yarnpkg.com/gatsby-plugin-netlify/-/gatsby-plugin-netlify-3.1.0.tgz#2e6e2d89ffab2031b3f54adc69e449ee5312f146" + integrity sha512-wVZ2cn5dct17wDMslov8nCiAEyh1D5cbu7W04J8zUGOFdKp+Mo/SId+t5Wqpu86CBnKNEX8LVOaswpsI1B2K9A== dependencies: "@babel/runtime" "^7.12.5" fs-extra "^8.1.0" kebab-hash "^0.1.2" - lodash "^4.17.20" + lodash "^4.17.21" webpack-assets-manifest "^3.1.1" gatsby-plugin-nginx-redirect@^0.0.11: @@ -6442,9 +6428,9 @@ gatsby-plugin-page-creator@^3.1.0: lodash "^4.17.21" gatsby-plugin-react-helmet@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/gatsby-plugin-react-helmet/-/gatsby-plugin-react-helmet-4.0.0.tgz#6d4fddc51a271859b21ec93645cdd0d3ad03b02c" - integrity sha512-l83wSwjF3Wq8ZHAFwhwx5EKQ67NUNCaZp9XDDplVQ+zFZ6dVAAax56wZLp6kQ++bYr+Hu9NOODLbLITtff+Eiw== + version "4.1.0" + resolved "https://registry.yarnpkg.com/gatsby-plugin-react-helmet/-/gatsby-plugin-react-helmet-4.1.0.tgz#a210eeb840411fe59d1da1184e2ffb25383cbc9d" + integrity sha512-vMTtpVnzrYRcBrDt4feui0CxviINtNFwulRbhJ0if63H31Ep0i4jcMzDitVqpHxcImkzQwchK3Qap3JWqr6L6Q== dependencies: "@babel/runtime" "^7.12.5" @@ -6461,31 +6447,31 @@ gatsby-plugin-remove-fingerprints@^0.0.2: integrity sha512-af1zbr0+cr3fcjEAVAbUia/On6GJbrxoLVNZf7TxLqKzPMfMlDNXf6hDXAJy0dzxE6qrqD2oyGZpk1rOdgUQ0Q== gatsby-plugin-sass@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/gatsby-plugin-sass/-/gatsby-plugin-sass-4.0.2.tgz#8d877ebe5d5bd9b1611e0f59f1dcf696dc8b400f" - integrity sha512-ngiC/3Kka2pljqzZ4ZoXOKC+cXq1StLlZc7+FLvRm555RTMfJqgHWM8FCELZ5j5hxlBHIZ5cZ9Ur8GbScQD58g== + version "4.1.0" + resolved "https://registry.yarnpkg.com/gatsby-plugin-sass/-/gatsby-plugin-sass-4.1.0.tgz#458df0b2b8bcc04bdd040febed106883e2825690" + integrity sha512-lVm+DGSkAIM2APosbaBqi9OlS5YP1bXVmA2MXJqGdIrb/x9FkrN3psFjiTIuBob2YesAgeQV2OJtJefGGAf4bQ== dependencies: "@babel/runtime" "^7.12.5" resolve-url-loader "^3.1.2" sass-loader "^10.1.1" gatsby-plugin-sharp@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/gatsby-plugin-sharp/-/gatsby-plugin-sharp-3.0.1.tgz#994a2a2a0305bd7d3e4aa698e30532c0b7cfba96" - integrity sha512-HL519LIhTmTySUPFO2IuwIHBlgo/0N7gJng2gu2XwD/DJ3ENgw5+SXmiVTwvERx7Pr5YVPECgYuszWdlYgJmgw== + version "3.1.0" + resolved "https://registry.yarnpkg.com/gatsby-plugin-sharp/-/gatsby-plugin-sharp-3.1.0.tgz#64472f5b0904ce04fe8da1a01ae9d72b099239c6" + integrity sha512-u9gVDjclnxKuC86r4ghX6ne94ndnYpHULezPkzWoVepJVV7p1khVYeRnvfWbXPt7TN3NrgUgIsyDKQ1fzHKFZA== dependencies: "@babel/runtime" "^7.12.5" async "^3.2.0" bluebird "^3.7.2" filenamify "^4.2.0" fs-extra "^9.1.0" - gatsby-core-utils "^2.0.0" - gatsby-telemetry "^2.0.0" + gatsby-core-utils "^2.1.0" + gatsby-telemetry "^2.1.0" got "^10.7.0" imagemin "^7.0.1" imagemin-mozjpeg "^9.0.0" imagemin-pngquant "^9.0.1" - lodash "^4.17.20" + lodash "^4.17.21" mini-svg-data-uri "^1.2.3" potrace "^2.1.8" probe-image-size "^6.0.0" @@ -6496,9 +6482,9 @@ gatsby-plugin-sharp@^3.0.1: uuid "3.4.0" gatsby-plugin-sitemap@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/gatsby-plugin-sitemap/-/gatsby-plugin-sitemap-3.0.0.tgz#2a20670fc2e939f95e5fb186169be59919e7c2fd" - integrity sha512-LRcHozxOhUzMQ/noWz9m603oWixhhN1u+SOTl7t3XRVI+92sA/V1HuEHT2QvnMQ54TNhRC0aLl1gvBwMVsl7ng== + version "3.1.0" + resolved "https://registry.yarnpkg.com/gatsby-plugin-sitemap/-/gatsby-plugin-sitemap-3.1.0.tgz#490d126f6bd74a384b49469913a25a1ddf3c6239" + integrity sha512-dcwFZ1Icg/0gd5HCPyMoAbxu23PkLhmnRiS/YqYmYKd0z/QFf1PIIFInQAxI1QwPNlgabkRycGHjQzlM032zwQ== dependencies: "@babel/runtime" "^7.12.5" common-tags "^1.8.0" @@ -6519,13 +6505,6 @@ gatsby-plugin-typescript@^3.1.0: "@babel/runtime" "^7.12.5" babel-plugin-remove-graphql-queries "^3.1.0" -gatsby-plugin-utils@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/gatsby-plugin-utils/-/gatsby-plugin-utils-1.0.0.tgz#1733a1a9c1704ddedbcf490684f590c7d1ddbe7e" - integrity sha512-Z7Yi/y03aObiQ8kkMQGpE5lkIN7GKLfXSDlmriuzU0g7XPUUBwuWQPFVG/hSb4f30KWJ1icBe+Ropivu17rURw== - dependencies: - joi "^17.2.1" - gatsby-plugin-utils@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/gatsby-plugin-utils/-/gatsby-plugin-utils-1.1.0.tgz#b73f3f196323df3c75e6edb345d221f003b5c152" @@ -6605,17 +6584,17 @@ gatsby-recipes@^0.12.0: yoga-layout-prebuilt "^1.9.6" gatsby-remark-autolink-headers@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/gatsby-remark-autolink-headers/-/gatsby-remark-autolink-headers-3.0.0.tgz#07c59916d84585332eb7d7a8f34e1763419f0f6c" - integrity sha512-0+ipbvxuK4hPBlrkNR17JuhZcHn6oogLdGD0V2mMUU3bdhy7493s2V4u8gj06GCQkuDdegN2oeBq2C60EFbZPQ== + version "3.1.0" + resolved "https://registry.yarnpkg.com/gatsby-remark-autolink-headers/-/gatsby-remark-autolink-headers-3.1.0.tgz#baa7b73f328f83ed82fb8ab01445cbca38ef421d" + integrity sha512-N3CiPQjKl6yJS7Yf2QV4hi/ok1sCbiHDkC0pN3tsLttloEtGxd5Q+wc7aakpUcdosjOkK4a8uTMfQTDGdURpsA== dependencies: "@babel/runtime" "^7.12.5" github-slugger "^1.3.0" - lodash "^4.17.20" + lodash "^4.17.21" mdast-util-to-string "^1.1.0" unist-util-visit "^1.4.1" -gatsby-remark-images@^4.0.0: +gatsby-remark-images@4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/gatsby-remark-images/-/gatsby-remark-images-4.0.0.tgz#1a6f2421495e41cf34358a4ae4883a9f51225cb5" integrity sha512-N6SZdZBbNoXpJO1dFceh1fSr0ac/ApslvEognsU6qpr2Rb9kocrF1qC9A+zh/nk82DQ8gVeL8COLfGtPb8T7mw== @@ -6633,25 +6612,25 @@ gatsby-remark-images@^4.0.0: unist-util-visit-parents "^2.1.2" gatsby-remark-prismjs@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/gatsby-remark-prismjs/-/gatsby-remark-prismjs-4.0.0.tgz#2a0a4903bbdf0bceb7ca13803e0122bbe61f8ba0" - integrity sha512-/wbPlO4DqCQx1Tlscn76KWw4pi3Ha5qpgfep9aaceJwrkM0sUwD3MoLFvnnT2kl9gE5R1upUm8YLFJZKzJA08w== + version "4.1.0" + resolved "https://registry.yarnpkg.com/gatsby-remark-prismjs/-/gatsby-remark-prismjs-4.1.0.tgz#2c02e46790f5e24819c684f3d0c1e0e2945584cc" + integrity sha512-/3MOQIMVR/n8gs6zdF5OZ9EjCVkyQG7S65gX/C8rd3jiOaoWo1E6ENcn6ePb9/rWWZpFtaRu4MNpR/CRDdOsWg== dependencies: "@babel/runtime" "^7.12.5" parse-numeric-range "^0.0.2" unist-util-visit "^1.4.1" gatsby-source-filesystem@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/gatsby-source-filesystem/-/gatsby-source-filesystem-3.0.0.tgz#6f82e8eeac8772be2848bee9959f217c87f5b86e" - integrity sha512-t51BSxAqRKO/veY99U/TcsWA7C1MRIokOJHGHoJij1ZLBzvB2GMB7dNQHhAyHa7MWwfzAwd7jI/TJCJX9l0KlQ== + version "3.1.0" + resolved "https://registry.yarnpkg.com/gatsby-source-filesystem/-/gatsby-source-filesystem-3.1.0.tgz#59d9c5ebced33d954a9927e740168b9c9ee43422" + integrity sha512-3qFXEi4Hp7NrqTMCJ44vzwMZclD1aHyC5XUXxuuQ+/gT4k4yPIjPTbUdYgDzvrc8/K/5XRvJDB2vprdjxwoeGw== dependencies: "@babel/runtime" "^7.12.5" better-queue "^3.8.10" chokidar "^3.4.3" file-type "^16.0.0" fs-extra "^8.1.0" - gatsby-core-utils "^2.0.0" + gatsby-core-utils "^2.1.0" got "^9.6.0" md5-file "^5.0.0" mime "^2.4.6" @@ -6660,26 +6639,6 @@ gatsby-source-filesystem@^3.0.0: valid-url "^1.0.9" xstate "^4.14.0" -gatsby-telemetry@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/gatsby-telemetry/-/gatsby-telemetry-2.0.0.tgz#cf22d8dcee13c5e574569f8182204d3fa63a1805" - integrity sha512-ldEg8jFUW+7JFcMn+6TnH+xHfLM+VIhDvyOIbkAYZZ+rO/RWnCwM44ZZUUpRp4/Ivn/IAiubGwQyXErMHErbAg== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/runtime" "^7.12.5" - "@turist/fetch" "^7.1.7" - "@turist/time" "^0.0.1" - async-retry-ng "^2.0.1" - boxen "^4.2.0" - configstore "^5.0.1" - fs-extra "^8.1.0" - gatsby-core-utils "^2.0.0" - git-up "^4.0.2" - is-docker "^2.1.1" - lodash "^4.17.20" - node-fetch "^2.6.1" - uuid "3.4.0" - gatsby-telemetry@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/gatsby-telemetry/-/gatsby-telemetry-2.1.0.tgz#e7c0f8bc488a93bf4afcd10760f38b50471e754f" @@ -6701,25 +6660,24 @@ gatsby-telemetry@^2.1.0: uuid "3.4.0" gatsby-transformer-json@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/gatsby-transformer-json/-/gatsby-transformer-json-3.0.0.tgz#e8ab61ac5aa9aa7699c00d869c63b91ce37d606e" - integrity sha512-MyQZdoGbr1OEtFkAF1BAEvfhZKZVeD00yCX/9E/CSd/73jrBqxXqSWN2gIVx9HlPRbPUjmChMW6Nwx0z6GF+MA== + version "3.1.0" + resolved "https://registry.yarnpkg.com/gatsby-transformer-json/-/gatsby-transformer-json-3.1.0.tgz#d3cf91c5a6ec98f4a295af97b02b22e54dcb8682" + integrity sha512-eEd3LkxteckVQt0ka5tH2tJmYSogEfuULg7GPCsh9pcK2hR8YZq2dpFyGzwGREd6FYYkyJTg8KtqSSASiNjJrg== dependencies: "@babel/runtime" "^7.12.5" bluebird "^3.7.2" gatsby-transformer-remark@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/gatsby-transformer-remark/-/gatsby-transformer-remark-3.0.0.tgz#378e22176fc0ad9764df75d795445c3773d10ec7" - integrity sha512-vidJOLdDhisOfDipJcmGnUstoDKD/k88htw9Ixd87DR10/FZTm5fSiinN2cd5+H1tFCgqTikGCOoo9MrH9QKTg== + version "3.1.0" + resolved "https://registry.yarnpkg.com/gatsby-transformer-remark/-/gatsby-transformer-remark-3.1.0.tgz#6c62c090a2b392b2f4b4bc40a6eaaf379193f8af" + integrity sha512-GgCVPqNQkwZjX0EYkzDEQyBkO1RvGKYHLb4Qc0ttgSqVXrW8P4gCi9sYpSOGlqVECltJDMaK+G7maqyZ89XSZQ== dependencies: "@babel/runtime" "^7.12.5" - bluebird "^3.7.2" - gatsby-core-utils "^2.0.0" + gatsby-core-utils "^2.1.0" gray-matter "^4.0.2" hast-util-raw "^4.0.0" hast-util-to-html "^4.0.1" - lodash "^4.17.20" + lodash "^4.17.21" mdast-util-to-hast "^3.0.4" mdast-util-to-string "^1.1.0" mdast-util-toc "^5.0" @@ -6736,9 +6694,9 @@ gatsby-transformer-remark@^3.0.0: unist-util-visit "^1.4.1" gatsby-transformer-sharp@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/gatsby-transformer-sharp/-/gatsby-transformer-sharp-3.0.0.tgz#7fb9806aef08966d2cb610cc6e814639075c931f" - integrity sha512-ydkUxYdoELPHcuE2OyTjgS3odcCikn6MPRC//dxPYDrIDMoJ6xPkbetTrshOEdGa2Yf02pp75Fs82PSeC+AXhA== + version "3.1.0" + resolved "https://registry.yarnpkg.com/gatsby-transformer-sharp/-/gatsby-transformer-sharp-3.1.0.tgz#958318785828302ef195a071bfb71071c94028be" + integrity sha512-wj7KFhbqkxT5Ff5R8RDpBz5DweR6frLyIX28n4ryGIqMkgkmEwkIfWcA4/JjocDm4dVwkXKmlwJA1jufkGEpCg== dependencies: "@babel/runtime" "^7.12.5" bluebird "^3.7.2" @@ -13637,9 +13595,9 @@ terser-webpack-plugin@^5.1.1: terser "^5.5.1" terser@^5.5.1: - version "5.6.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.6.0.tgz#138cdf21c5e3100b1b3ddfddf720962f88badcd2" - integrity sha512-vyqLMoqadC1uR0vywqOZzriDYzgEkNJFK4q9GeyOBHIbiECHiWLKcWfbQWAUaPfxkjDhapSlZB9f7fkMrvkVjA== + version "5.6.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.6.1.tgz#a48eeac5300c0a09b36854bf90d9c26fb201973c" + integrity sha512-yv9YLFQQ+3ZqgWCUk+pvNJwgUTdlIxUk1WTN+RnaFJe2L7ipG2csPT0ra2XRm7Cs8cxN7QXmK1rFzEwYEQkzXw== dependencies: commander "^2.20.0" source-map "~0.7.2" @@ -14707,9 +14665,9 @@ webpack-virtual-modules@^0.3.2: debug "^3.0.0" webpack@^5.16.0: - version "5.26.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.26.0.tgz#269841ed7b5c6522221aa27f7efceda04c8916d7" - integrity sha512-9kQATUOGQBkqzNKFmFON4KXZDsXnE7xk58tBxca8aCi+6/QhAbmWIvtGqBL66XIsBFpomFH0/0KyCaySo0ta2g== + version "5.26.3" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.26.3.tgz#bafd439abac08fbb82657ec855d038743b725ab8" + integrity sha512-z/F2lt2N1fZqaud1B4SzjL3OW03eULThbBXQ2OX4LSrZX4N9k1A5d0Rje3zS2g887DTWyAV0KGqEf64ois2dhg== dependencies: "@types/eslint-scope" "^3.7.0" "@types/estree" "^0.0.46" From 62820dd480ec436de29e87ff456b375943b6027d Mon Sep 17 00:00:00 2001 From: josh-heyer Date: Thu, 18 Mar 2021 11:03:01 +0000 Subject: [PATCH 11/28] New PDFs generated by Github Actions Former-commit-id: d9abc2c6ca0ac7e4cbb4126da077d36fb2273ea6 From 2b82c2e02998aa90f7bd685df337b10154e880b2 Mon Sep 17 00:00:00 2001 From: Robert Stringer Date: Thu, 18 Mar 2021 13:05:34 +0000 Subject: [PATCH 12/28] conversion: eprs 6.2 Former-commit-id: 0bb7628924aee9ca505d020608ef94a16cee6135 --- .../eprs/6.2/01_introduction/01_whats_new.mdx | 13 + .../01_introduction/02_conventions_used.mdx | 12 + .../03_certified_supported_versions.mdx | 22 + .../04_supported_jdk_versions.mdx | 23 + .../docs/eprs/6.2/01_introduction/index.mdx | 63 ++ ...01_offloading_reporting_and_bi_queries.mdx | 12 + .../02_using_warm_standby.mdx | 8 + .../03_testing_systems_in_parallel.mdx | 8 + .../01_why_replication/04_migrating_data.mdx | 10 + .../05_write_availability.mdx | 8 + .../06_write_scalability.mdx | 8 + .../07_localized_data_access.mdx | 8 + .../02_overview/01_why_replication/index.mdx | 16 + .../01_smr_mmr_comparison.mdx | 40 + .../02_publications_and_subscriptions.mdx | 58 ++ .../03_smr_replication.mdx | 14 + .../04_mmr_replication.mdx | 27 + .../05_asynchronous.mdx | 10 + .../06_snapshot_and_synchronous.mdx | 40 + .../07_snapshot_only_publications.mdx | 12 + .../08_snapshot_replication.mdx | 32 + .../09_sync_replication_trigger_based.mdx | 54 ++ .../01_requirements_and_restrictions.mdx | 33 + .../02_logical_replication_slots.mdx | 16 + .../03_streaming_replication_wal_sender.mdx | 32 + .../04_replication_origin.mdx | 107 +++ .../05_inmemory_caching.mdx | 27 + .../10_sync_replication_log_based/index.mdx | 28 + .../11_requirements_and_restrictions.mdx | 33 + .../12_mmr_parallel_replication.mdx | 54 ++ .../13_table_filters.mdx | 162 ++++ .../index.mdx | 18 + .../01_physical_components.mdx | 345 ++++++++ .../02_logical_components.mdx | 148 ++++ .../03_xdb_replication_system_examples.mdx | 133 +++ .../index.mdx | 14 + .../01_general_steps.mdx | 20 + .../02_design_considerations.mdx | 25 + ...ictions_on_replicated_database_objects.mdx | 140 ++++ .../04_performance_considerations.mdx | 60 ++ .../05_distributed_replication.mdx | 59 ++ .../04_design_replication_system/index.mdx | 14 + .../docs/eprs/6.2/02_overview/index.mdx | 14 + .../01_installing_with_stackbuilder.mdx | 199 +++++ .../02_installing_from_cli.mdx | 186 +++++ .../03_installing_rpm_package.mdx | 314 +++++++ .../04_installing_xDB_sles_12_host.mdx | 85 ++ .../05_post_installation_host_environment.mdx | 118 +++ ...06_uninstalling_xdb_replication_server.mdx | 84 ++ .../07_uninstalling_xdb_rpm_package.mdx | 79 ++ .../docs/eprs/6.2/03_installation/index.mdx | 45 + .../docs/eprs/6.2/04_intro_xdb_console.mdx | 133 +++ .../01_setting_heap_size_for_pub_and_sub.mdx | 40 + ...sync_replication_with_log-based_method.mdx | 18 + .../03_enable_access_to_database.mdx | 88 ++ .../04_preparing_pub_database.mdx | 544 ++++++++++++ .../05_preparing_sub_database.mdx | 176 ++++ .../06_verifying_host_accessibility.mdx | 304 +++++++ .../01_prerequisites/index.mdx | 14 + .../01_registering_publication_server.mdx | 112 +++ .../02_adding_pub_database.mdx | 60 ++ .../03_adding_publication.mdx | 79 ++ ...schema_objects_created_for_publication.mdx | 779 ++++++++++++++++++ .../02_creating_publication/index.mdx | 20 + .../01_registering_subscription_server.mdx | 62 ++ .../02_adding_subscription_database.mdx | 82 ++ .../03_adding_subscription.mdx | 41 + .../04_subscription_metadata_object.mdx | 56 ++ .../03_creating_subscription/index.mdx | 20 + .../01_perform_replication.mdx | 42 + .../02_perform_sync_replication.mdx | 32 + .../04_on_demand_replication/index.mdx | 19 + .../01_updating_subscription_server.mdx | 39 + .../02_updating_subscription_database.mdx | 59 ++ .../03_updating_subscription.mdx | 33 + .../04_enable_filters_on_subscription.mdx | 43 + .../05_removing_subscription.mdx | 32 + .../06_removing_subscription_database.mdx | 26 + .../05_managing_subscription/index.mdx | 30 + .../06_performing_switchover.mdx | 112 +++ .../07_performing_failover.mdx | 15 + .../01_optimizing_snapshot_replication.mdx | 126 +++ .../01_using_sql_statements.mdx | 174 ++++ .../02_parallel_sync.mdx | 54 ++ .../03_other_sync_configuration.mdx | 41 + .../02_optimize_sync_replication/index.mdx | 28 + .../08_optimizing_performance/index.mdx | 28 + .../docs/eprs/6.2/05_smr_operation/index.mdx | 16 + .../6.2/06_mmr_operation/01_pre_steps.mdx | 197 +++++ .../02_creating_publication_mmr.mdx | 179 ++++ .../03_creating_primary_nodes.mdx | 110 +++ ...ontrol_schema_created_in_primary_nodes.mdx | 14 + .../05_on_demand_replication_mmr.mdx | 108 +++ ...01_configuration_para_andtable_setting.mdx | 56 ++ .../02_conflict_types.mdx | 48 ++ .../03_conflict_detection.mdx | 23 + .../04_conflict_resolution_strategies.mdx | 23 + .../05_conflict_prevention_uniquness.mdx | 19 + .../01_create_mmr_ready_sequence.mdx | 99 +++ .../02_mmr_ready_example.mdx | 243 ++++++ .../03_convert_to_mmr_ready.mdx | 37 + .../04_convert_to_mmr_ready_eg.mdx | 438 ++++++++++ .../index.mdx | 27 + .../07_auto_conflict_resolution_eg.mdx | 92 +++ .../01_custom_conflict_handling_function.mdx | 113 +++ ...ding_custom_conflict_handling_function.mdx | 62 ++ .../03_custom_conflict_handling_examples.mdx | 296 +++++++ .../08_custom_conflict_handling/index.mdx | 16 + .../01_find_conflict.mdx | 85 ++ .../02_conflict_resolution_prep.mdx | 39 + .../03_overview_correction_strategies.mdx | 146 ++++ ...04_manual_publication_table_correction.mdx | 387 +++++++++ .../05_correction_using_new_txn.mdx | 192 +++++ .../06_correction_using_shadow_table_txn.mdx | 369 +++++++++ .../index.mdx | 41 + .../01_finding_conflict.mdx | 82 ++ .../02_conflict_resolution_for_log_based.mdx | 39 + ...erview_correction_strategies_log_based.mdx | 133 +++ ...publication_table_correction_log_based.mdx | 176 ++++ .../05_correction_using_new_txn_log_based.mdx | 147 ++++ .../index.mdx | 40 + .../06_conflict_resolution/index.mdx | 16 + .../07_view_conflict_history.mdx | 68 ++ .../08_update_conflict_resolution_options.mdx | 29 + .../09_enable_disable_table_filters.mdx | 80 ++ .../6.2/06_mmr_operation/10_switching_pdn.mdx | 54 ++ .../6.2/06_mmr_operation/11_ensuring_ha.mdx | 84 ++ .../12_optimizing_performance_mmr.mdx | 52 ++ .../docs/eprs/6.2/06_mmr_operation/index.mdx | 16 + .../01_select_tables_wildcard_selector.mdx | 151 ++++ .../02_creating_schedule.mdx | 114 +++ .../03_managing_schedule.mdx | 83 ++ .../04_view_replication_history.mdx | 131 +++ .../05_managing_history.mdx | 234 ++++++ .../01_updating_publication_server.mdx | 103 +++ .../02_updating_pub_database.mdx | 60 ++ .../03_updating_pub.mdx | 128 +++ .../04_updating_table_filters_in_pub.mdx | 63 ++ .../05_validating_publication.mdx | 161 ++++ .../06_removing_pub.mdx | 38 + .../07_removing_pub_database.mdx | 54 ++ .../06_managing_publication/index.mdx | 18 + .../07_switching_controller_db.mdx | 69 ++ .../01_ddl_change_replication.mdx | 35 + ...l_change_replication_using_xdb_console.mdx | 38 + .../08_replicating_ddl_changes/index.mdx | 262 ++++++ .../09_offline_snapshot.mdx | 205 +++++ ...eplicating_postgres_partitioned_tables.mdx | 345 ++++++++ .../11_using_ssl_connections.mdx | 446 ++++++++++ .../eprs/6.2/07_common_operations/index.mdx | 28 + .../eprs/6.2/08_xdb_cli/01_prereq_steps.mdx | 39 + .../eprs/6.2/08_xdb_cli/02_general_use.mdx | 272 ++++++ .../03_xdb_cli_commands/01_get_help.mdx | 26 + .../03_xdb_cli_commands/02_print_version.mdx | 21 + .../03_print_xdb_server_version.mdx | 27 + .../04_encrypt_password.mdx | 38 + .../05_printing_server_uptime.mdx | 25 + .../06_add_pub_database.mdx | 219 +++++ .../07_printing_pub_db_id.mdx | 31 + .../08_printing_pub_db_details.mdx | 69 ++ .../09_printing_controller_db_id.mdx | 28 + .../10_printing_pdn_node_db_id.mdx | 28 + .../11_updating_publication_database.mdx | 101 +++ .../12_removing_publication_database.mdx | 42 + .../13_get_tables_for_new_publication.mdx | 33 + .../14_creating_publication_cli.mdx | 190 +++++ .../15_print_publications_list.mdx | 41 + .../16_print_publications_tables_list.mdx | 36 + .../17_print_publications_filters_list.mdx | 47 ++ .../18_adding_tables_to_publication.mdx | 126 +++ .../19_removing_tables_from_publication.mdx | 72 ++ .../20_adding_tablefilters_to_publication.mdx | 108 +++ ...1_updating_tablefilters_to_publication.mdx | 53 ++ ...2_removing_tablefilters_to_publication.mdx | 46 ++ .../23_print_conflict_resolution_strategy.mdx | 61 ++ ..._updating_conflict_resolution_strategy.mdx | 90 ++ .../03_xdb_cli_commands/25_set_pdn_node.mdx | 37 + .../03_xdb_cli_commands/26_set_controller.mdx | 37 + .../27_validate_a_publication.mdx | 43 + .../28_validate_all_publications.mdx | 48 ++ .../29_removing_a_publication.mdx | 40 + .../30_replicating_ddl_changes_cli.mdx | 55 ++ .../31_adding_subscription_db.mdx | 94 +++ .../32_printing_subscription_db_id.mdx | 29 + .../33_printing_subscription_db_details.mdx | 67 ++ .../34_updating_subscription_database_cli.mdx | 83 ++ .../35_removing_subscription_database_cli.mdx | 37 + .../36_creating_subscription_cli.mdx | 63 ++ .../37_print_subscription_list.mdx | 31 + ...ilters_on_subscription_or_non_pdn_node.mdx | 83 ++ ...ilters_on_subscription_or_non_pdn_node.mdx | 71 ++ .../40_taking_smr_snapshot.mdx | 90 ++ .../41_taking_mmr_snapshot.mdx | 93 +++ .../42_perform_synchronization.mdx | 86 ++ .../43_configure_smr_schedule.mdx | 95 +++ .../44_configure_mmr_schedule.mdx | 105 +++ .../03_xdb_cli_commands/45_print_schedule.mdx | 77 ++ .../46_updating_subscription_cli.mdx | 75 ++ .../47_removing_subscription_cli.mdx | 34 + ...48_schedule_shadow_table_history_clean.mdx | 105 +++ .../49_clean_shadow_table_history.mdx | 56 ++ .../50_clean_replication_history.mdx | 36 + .../51_clean_all_replication_history.mdx | 31 + .../08_xdb_cli/03_xdb_cli_commands/index.mdx | 40 + .../docs/eprs/6.2/08_xdb_cli/index.mdx | 20 + ...lation_and_configuratiin_datavalidator.mdx | 122 +++ .../02_perform_datavalidation.mdx | 545 ++++++++++++ .../docs/eprs/6.2/09_data_validator/index.mdx | 53 ++ .../01_permitted_conf_and_permutations.mdx | 78 ++ .../01_permitted_conf_and_permutations.mdx | 78 ++ .../02_upgrading_with_gui_installer.mdx | 52 ++ .../03_upgrading_with_xdb_rpm_package.mdx | 181 ++++ .../04_updating_sub_and_pub_ports.mdx | 29 + .../02_upgrading_to_xdb6_2/index.mdx | 26 + .../01_error_messages.mdx | 594 +++++++++++++ .../02_where_to_look_for_errors.mdx | 142 ++++ .../03_common_problems_checklist.mdx | 49 ++ .../04_troubleshooting_areas.mdx | 547 ++++++++++++ .../03_resolving_problems/index.mdx | 14 + .../01_controlling_logging_level.mdx | 142 ++++ .../02_replacing_null_characters.mdx | 71 ++ .../03_schema_migration_options.mdx | 30 + ...04_replicate_oracle_partitioned_tables.mdx | 88 ++ .../05_specify_custom_url_for_oracle_jdbc.mdx | 30 + .../06_snapshot_replication_options.mdx | 50 ++ .../07_assign_ip_adress_for_rmi.mdx | 43 + .../08_using_pgagent_job_scheduling.mdx | 55 ++ .../09_forcing_shadow_table_cleanup.mdx | 26 + .../10_setting_event_history_cleanup.mdx | 16 + ...1_ddl_change_replication_table_locking.mdx | 28 + ...2_persisting_zero_txn_replication_hist.mdx | 26 + ..._of_table_level_user_privileges_on_mmr.mdx | 32 + ..._of_table_level_user_privileges_on_smr.mdx | 46 ++ .../15_log_based_sync_options.mdx | 50 ++ ...pache_dbcp_connection_validation_query.mdx | 28 + .../index.mdx | 59 ++ .../02_encrypt_password_inconf_file.mdx | 41 + .../03_writing_cron_exp.mdx | 63 ++ ...y_constraints_for_snapshot_replication.mdx | 21 + .../05_quoted_identifiers.mdx | 16 + ...ating_sql_server_sql_variant_data_type.mdx | 65 ++ .../index.mdx | 20 + .../05_service_pack_maintenance.mdx | 17 + .../docs/eprs/6.2/10_appendix/index.mdx | 14 + product_docs/docs/eprs/6.2/images/E.ico | 3 + .../docs/eprs/6.2/images/PG_to_oracle.png | 3 + .../docs/eprs/6.2/images/PG_to_oracle_sc.png | 3 + .../docs/eprs/6.2/images/aws_instance.png | 3 + .../docs/eprs/6.2/images/edb_logo.png | 3 + .../docs/eprs/6.2/images/edb_logo.svg | 19 + .../docs/eprs/6.2/images/efm_slot.png | 3 + .../docs/eprs/6.2/images/efm_slot_old.png | 3 + .../6.2/images/google_security_settings.png | 3 + product_docs/docs/eprs/6.2/images/image10.jpg | 3 + product_docs/docs/eprs/6.2/images/image10.png | 3 + .../docs/eprs/6.2/images/image100.jpg | 3 + .../docs/eprs/6.2/images/image100.png | 3 + .../docs/eprs/6.2/images/image101.jpg | 3 + .../docs/eprs/6.2/images/image101.png | 3 + .../docs/eprs/6.2/images/image102.jpg | 3 + .../docs/eprs/6.2/images/image102.png | 3 + .../docs/eprs/6.2/images/image103.jpg | 3 + .../docs/eprs/6.2/images/image103.png | 3 + .../docs/eprs/6.2/images/image104.jpg | 3 + .../docs/eprs/6.2/images/image104.png | 3 + .../docs/eprs/6.2/images/image105.jpg | 3 + .../docs/eprs/6.2/images/image105.png | 3 + .../docs/eprs/6.2/images/image106.jpg | 3 + .../docs/eprs/6.2/images/image106.png | 3 + .../docs/eprs/6.2/images/image107.jpg | 3 + .../docs/eprs/6.2/images/image107.png | 3 + .../docs/eprs/6.2/images/image108.jpg | 3 + .../docs/eprs/6.2/images/image108.png | 3 + .../docs/eprs/6.2/images/image109.jpg | 3 + .../docs/eprs/6.2/images/image109.png | 3 + product_docs/docs/eprs/6.2/images/image11.png | 3 + .../docs/eprs/6.2/images/image110.jpg | 3 + .../docs/eprs/6.2/images/image110.png | 3 + .../docs/eprs/6.2/images/image111.jpg | 3 + .../docs/eprs/6.2/images/image111.png | 3 + .../docs/eprs/6.2/images/image112.jpg | 3 + .../docs/eprs/6.2/images/image112.png | 3 + .../docs/eprs/6.2/images/image113.jpg | 3 + .../docs/eprs/6.2/images/image113.png | 3 + .../docs/eprs/6.2/images/image114.jpg | 3 + .../docs/eprs/6.2/images/image114.png | 3 + .../docs/eprs/6.2/images/image115.jpg | 3 + .../docs/eprs/6.2/images/image115.png | 3 + .../docs/eprs/6.2/images/image116.jpg | 3 + .../docs/eprs/6.2/images/image116.png | 3 + .../docs/eprs/6.2/images/image117.jpg | 3 + .../docs/eprs/6.2/images/image117.png | 3 + .../docs/eprs/6.2/images/image118.jpg | 3 + .../docs/eprs/6.2/images/image118.png | 3 + .../docs/eprs/6.2/images/image119.jpg | 3 + .../docs/eprs/6.2/images/image119.png | 3 + product_docs/docs/eprs/6.2/images/image12.jpg | 3 + product_docs/docs/eprs/6.2/images/image12.png | 3 + .../docs/eprs/6.2/images/image120.jpg | 3 + .../docs/eprs/6.2/images/image120.png | 3 + .../docs/eprs/6.2/images/image121.jpg | 3 + .../docs/eprs/6.2/images/image121.png | 3 + .../docs/eprs/6.2/images/image122.jpg | 3 + .../docs/eprs/6.2/images/image122.png | 3 + .../docs/eprs/6.2/images/image123.jpg | 3 + .../docs/eprs/6.2/images/image123.png | 3 + .../docs/eprs/6.2/images/image124.jpg | 3 + .../docs/eprs/6.2/images/image124.png | 3 + .../docs/eprs/6.2/images/image125.jpg | 3 + .../docs/eprs/6.2/images/image125.png | 3 + .../docs/eprs/6.2/images/image126.jpg | 3 + .../docs/eprs/6.2/images/image126.png | 3 + .../docs/eprs/6.2/images/image127.jpg | 3 + .../docs/eprs/6.2/images/image127.png | 3 + .../docs/eprs/6.2/images/image128.jpg | 3 + .../docs/eprs/6.2/images/image128.png | 3 + .../docs/eprs/6.2/images/image129.jpg | 3 + .../docs/eprs/6.2/images/image129.png | 3 + product_docs/docs/eprs/6.2/images/image13.jpg | 3 + product_docs/docs/eprs/6.2/images/image13.png | 3 + .../docs/eprs/6.2/images/image130.jpg | 3 + .../docs/eprs/6.2/images/image130.png | 3 + .../docs/eprs/6.2/images/image131.jpg | 3 + .../docs/eprs/6.2/images/image131.png | 3 + .../docs/eprs/6.2/images/image132.jpg | 3 + .../docs/eprs/6.2/images/image132.png | 3 + .../docs/eprs/6.2/images/image133.jpg | 3 + .../docs/eprs/6.2/images/image133.png | 3 + .../docs/eprs/6.2/images/image134.jpg | 3 + .../docs/eprs/6.2/images/image134.png | 3 + .../docs/eprs/6.2/images/image135.jpg | 3 + .../docs/eprs/6.2/images/image135.png | 3 + .../docs/eprs/6.2/images/image136.jpg | 3 + .../docs/eprs/6.2/images/image136.png | 3 + .../docs/eprs/6.2/images/image137.jpg | 3 + .../docs/eprs/6.2/images/image137.png | 3 + .../docs/eprs/6.2/images/image138.jpg | 3 + .../docs/eprs/6.2/images/image138.png | 3 + .../docs/eprs/6.2/images/image139.jpg | 3 + .../docs/eprs/6.2/images/image139.png | 3 + product_docs/docs/eprs/6.2/images/image14.jpg | 3 + product_docs/docs/eprs/6.2/images/image14.png | 3 + .../docs/eprs/6.2/images/image140.jpg | 3 + .../docs/eprs/6.2/images/image140.png | 3 + .../docs/eprs/6.2/images/image141.jpg | 3 + .../docs/eprs/6.2/images/image141.png | 3 + .../docs/eprs/6.2/images/image142.jpg | 3 + .../docs/eprs/6.2/images/image142.png | 3 + .../docs/eprs/6.2/images/image143.jpg | 3 + .../docs/eprs/6.2/images/image143.png | 3 + .../docs/eprs/6.2/images/image144.jpg | 3 + .../docs/eprs/6.2/images/image144.png | 3 + .../docs/eprs/6.2/images/image145.jpg | 3 + .../docs/eprs/6.2/images/image145.png | 3 + .../docs/eprs/6.2/images/image146.jpg | 3 + .../docs/eprs/6.2/images/image146.png | 3 + .../docs/eprs/6.2/images/image147.jpg | 3 + .../docs/eprs/6.2/images/image147.png | 3 + .../docs/eprs/6.2/images/image148.jpg | 3 + .../docs/eprs/6.2/images/image148.png | 3 + .../docs/eprs/6.2/images/image149.jpg | 3 + .../docs/eprs/6.2/images/image149.png | 3 + product_docs/docs/eprs/6.2/images/image15.jpg | 3 + product_docs/docs/eprs/6.2/images/image15.png | 3 + .../docs/eprs/6.2/images/image150.jpg | 3 + .../docs/eprs/6.2/images/image150.png | 3 + .../docs/eprs/6.2/images/image151.jpg | 3 + .../docs/eprs/6.2/images/image151.png | 3 + .../docs/eprs/6.2/images/image152.jpg | 3 + .../docs/eprs/6.2/images/image152.png | 3 + .../docs/eprs/6.2/images/image153.jpg | 3 + .../docs/eprs/6.2/images/image153.png | 3 + .../docs/eprs/6.2/images/image154.jpg | 3 + .../docs/eprs/6.2/images/image154.png | 3 + .../docs/eprs/6.2/images/image155.jpg | 3 + .../docs/eprs/6.2/images/image155.png | 3 + .../docs/eprs/6.2/images/image156.jpg | 3 + .../docs/eprs/6.2/images/image156.png | 3 + .../docs/eprs/6.2/images/image157.jpg | 3 + .../docs/eprs/6.2/images/image157.png | 3 + .../docs/eprs/6.2/images/image158.jpg | 3 + .../docs/eprs/6.2/images/image158.png | 3 + .../docs/eprs/6.2/images/image159.jpg | 3 + .../docs/eprs/6.2/images/image159.png | 3 + product_docs/docs/eprs/6.2/images/image16.jpg | 3 + product_docs/docs/eprs/6.2/images/image16.png | 3 + .../docs/eprs/6.2/images/image160.jpg | 3 + .../docs/eprs/6.2/images/image160.png | 3 + .../docs/eprs/6.2/images/image161.jpg | 3 + .../docs/eprs/6.2/images/image161.png | 3 + .../docs/eprs/6.2/images/image162.jpg | 3 + .../docs/eprs/6.2/images/image162.png | 3 + .../docs/eprs/6.2/images/image163.jpg | 3 + .../docs/eprs/6.2/images/image163.png | 3 + .../docs/eprs/6.2/images/image164.jpg | 3 + .../docs/eprs/6.2/images/image164.png | 3 + .../docs/eprs/6.2/images/image165.jpg | 3 + .../docs/eprs/6.2/images/image165.png | 3 + .../docs/eprs/6.2/images/image166.jpg | 3 + .../docs/eprs/6.2/images/image166.png | 3 + .../docs/eprs/6.2/images/image167.jpg | 3 + .../docs/eprs/6.2/images/image167.png | 3 + .../docs/eprs/6.2/images/image168.jpg | 3 + .../docs/eprs/6.2/images/image168.png | 3 + .../docs/eprs/6.2/images/image169.jpg | 3 + .../docs/eprs/6.2/images/image169.png | 3 + product_docs/docs/eprs/6.2/images/image17.jpg | 3 + product_docs/docs/eprs/6.2/images/image17.png | 3 + .../docs/eprs/6.2/images/image170.jpg | 3 + .../docs/eprs/6.2/images/image170.png | 3 + .../docs/eprs/6.2/images/image171.jpg | 3 + .../docs/eprs/6.2/images/image171.png | 3 + .../docs/eprs/6.2/images/image172.jpg | 3 + .../docs/eprs/6.2/images/image172.png | 3 + .../docs/eprs/6.2/images/image173.jpg | 3 + .../docs/eprs/6.2/images/image173.png | 3 + .../docs/eprs/6.2/images/image174.jpg | 3 + .../docs/eprs/6.2/images/image174.png | 3 + .../docs/eprs/6.2/images/image175.jpg | 3 + .../docs/eprs/6.2/images/image175.png | 3 + .../docs/eprs/6.2/images/image176.jpg | 3 + .../docs/eprs/6.2/images/image176.png | 3 + .../docs/eprs/6.2/images/image177.jpg | 3 + .../docs/eprs/6.2/images/image177.png | 3 + .../docs/eprs/6.2/images/image178.jpg | 3 + .../docs/eprs/6.2/images/image178.png | 3 + .../docs/eprs/6.2/images/image179.jpg | 3 + .../docs/eprs/6.2/images/image179.png | 3 + product_docs/docs/eprs/6.2/images/image18.jpg | 3 + product_docs/docs/eprs/6.2/images/image18.png | 3 + .../docs/eprs/6.2/images/image180.jpg | 3 + .../docs/eprs/6.2/images/image180.png | 3 + .../docs/eprs/6.2/images/image181.jpg | 3 + .../docs/eprs/6.2/images/image181.png | 3 + .../docs/eprs/6.2/images/image182.jpg | 3 + .../docs/eprs/6.2/images/image182.png | 3 + .../docs/eprs/6.2/images/image183.jpg | 3 + .../docs/eprs/6.2/images/image183.png | 3 + .../docs/eprs/6.2/images/image184.jpg | 3 + .../docs/eprs/6.2/images/image184.png | 3 + .../docs/eprs/6.2/images/image185.jpg | 3 + .../docs/eprs/6.2/images/image185.png | 3 + .../docs/eprs/6.2/images/image186.jpg | 3 + .../docs/eprs/6.2/images/image186.png | 3 + .../docs/eprs/6.2/images/image187.jpg | 3 + .../docs/eprs/6.2/images/image187.png | 3 + .../docs/eprs/6.2/images/image188.jpg | 3 + .../docs/eprs/6.2/images/image188.png | 3 + .../docs/eprs/6.2/images/image189.jpg | 3 + .../docs/eprs/6.2/images/image189.png | 3 + product_docs/docs/eprs/6.2/images/image19.jpg | 3 + product_docs/docs/eprs/6.2/images/image19.png | 3 + .../docs/eprs/6.2/images/image190.jpg | 3 + .../docs/eprs/6.2/images/image190.png | 3 + .../docs/eprs/6.2/images/image191.jpg | 3 + .../docs/eprs/6.2/images/image191.png | 3 + .../docs/eprs/6.2/images/image192.jpg | 3 + .../docs/eprs/6.2/images/image192.png | 3 + .../docs/eprs/6.2/images/image193.jpg | 3 + .../docs/eprs/6.2/images/image193.png | 3 + .../docs/eprs/6.2/images/image194.jpg | 3 + .../docs/eprs/6.2/images/image194.png | 3 + .../docs/eprs/6.2/images/image195.jpg | 3 + .../docs/eprs/6.2/images/image195.png | 3 + .../docs/eprs/6.2/images/image196.jpg | 3 + .../docs/eprs/6.2/images/image196.png | 3 + .../docs/eprs/6.2/images/image197.jpg | 3 + .../docs/eprs/6.2/images/image197.png | 3 + .../docs/eprs/6.2/images/image198.jpg | 3 + .../docs/eprs/6.2/images/image198.png | 3 + .../docs/eprs/6.2/images/image199.jpg | 3 + .../docs/eprs/6.2/images/image199.png | 3 + product_docs/docs/eprs/6.2/images/image2.png | 3 + product_docs/docs/eprs/6.2/images/image20.jpg | 3 + product_docs/docs/eprs/6.2/images/image20.png | 3 + .../docs/eprs/6.2/images/image200.jpg | 3 + .../docs/eprs/6.2/images/image200.png | 3 + .../docs/eprs/6.2/images/image201.jpg | 3 + .../docs/eprs/6.2/images/image201.png | 3 + .../docs/eprs/6.2/images/image202.jpg | 3 + .../docs/eprs/6.2/images/image202.png | 3 + .../docs/eprs/6.2/images/image203.jpg | 3 + .../docs/eprs/6.2/images/image203.png | 3 + .../docs/eprs/6.2/images/image204.jpg | 3 + .../docs/eprs/6.2/images/image204.png | 3 + .../docs/eprs/6.2/images/image205.jpg | 3 + .../docs/eprs/6.2/images/image205.png | 3 + .../docs/eprs/6.2/images/image206.jpg | 3 + .../docs/eprs/6.2/images/image206.png | 3 + .../docs/eprs/6.2/images/image207.jpg | 3 + .../docs/eprs/6.2/images/image207.png | 3 + .../docs/eprs/6.2/images/image208.jpg | 3 + .../docs/eprs/6.2/images/image208.png | 3 + .../docs/eprs/6.2/images/image209.jpg | 3 + .../docs/eprs/6.2/images/image209.png | 3 + product_docs/docs/eprs/6.2/images/image21.png | 3 + .../docs/eprs/6.2/images/image210.jpg | 3 + .../docs/eprs/6.2/images/image210.png | 3 + .../docs/eprs/6.2/images/image211.jpg | 3 + .../docs/eprs/6.2/images/image211.png | 3 + .../docs/eprs/6.2/images/image212.jpg | 3 + .../docs/eprs/6.2/images/image212.png | 3 + .../docs/eprs/6.2/images/image213.jpg | 3 + .../docs/eprs/6.2/images/image213.png | 3 + .../docs/eprs/6.2/images/image214.jpg | 3 + .../docs/eprs/6.2/images/image214.png | 3 + .../docs/eprs/6.2/images/image215.jpg | 3 + .../docs/eprs/6.2/images/image215.png | 3 + .../docs/eprs/6.2/images/image216.jpg | 3 + .../docs/eprs/6.2/images/image216.png | 3 + .../docs/eprs/6.2/images/image217.jpg | 3 + .../docs/eprs/6.2/images/image217.png | 3 + .../docs/eprs/6.2/images/image218.jpg | 3 + .../docs/eprs/6.2/images/image218.png | 3 + .../docs/eprs/6.2/images/image219.jpg | 3 + .../docs/eprs/6.2/images/image219.png | 3 + product_docs/docs/eprs/6.2/images/image22.jpg | 3 + product_docs/docs/eprs/6.2/images/image22.png | 3 + .../docs/eprs/6.2/images/image220.jpg | 3 + .../docs/eprs/6.2/images/image220.png | 3 + .../docs/eprs/6.2/images/image221.jpg | 3 + .../docs/eprs/6.2/images/image221.png | 3 + .../docs/eprs/6.2/images/image222.jpg | 3 + .../docs/eprs/6.2/images/image222.png | 3 + .../docs/eprs/6.2/images/image223.jpg | 3 + .../docs/eprs/6.2/images/image223.png | 3 + .../docs/eprs/6.2/images/image224.jpg | 3 + .../docs/eprs/6.2/images/image224.png | 3 + .../docs/eprs/6.2/images/image225.jpg | 3 + .../docs/eprs/6.2/images/image225.png | 3 + .../docs/eprs/6.2/images/image226.jpg | 3 + .../docs/eprs/6.2/images/image226.png | 3 + .../docs/eprs/6.2/images/image227.jpg | 3 + .../docs/eprs/6.2/images/image227.png | 3 + .../docs/eprs/6.2/images/image228.jpg | 3 + .../docs/eprs/6.2/images/image228.png | 3 + .../docs/eprs/6.2/images/image229.jpg | 3 + .../docs/eprs/6.2/images/image229.png | 3 + product_docs/docs/eprs/6.2/images/image23.jpg | 3 + product_docs/docs/eprs/6.2/images/image23.png | 3 + .../docs/eprs/6.2/images/image230.jpg | 3 + .../docs/eprs/6.2/images/image230.png | 3 + .../docs/eprs/6.2/images/image231.jpg | 3 + .../docs/eprs/6.2/images/image231.png | 3 + .../docs/eprs/6.2/images/image232.jpg | 3 + .../docs/eprs/6.2/images/image232.png | 3 + .../docs/eprs/6.2/images/image233.jpg | 3 + .../docs/eprs/6.2/images/image233.png | 3 + .../docs/eprs/6.2/images/image234.jpg | 3 + .../docs/eprs/6.2/images/image234.png | 3 + .../docs/eprs/6.2/images/image235.jpg | 3 + .../docs/eprs/6.2/images/image235.png | 3 + .../docs/eprs/6.2/images/image236.jpg | 3 + .../docs/eprs/6.2/images/image236.png | 3 + .../docs/eprs/6.2/images/image237.jpg | 3 + .../docs/eprs/6.2/images/image237.png | 3 + .../docs/eprs/6.2/images/image238.jpg | 3 + .../docs/eprs/6.2/images/image238.png | 3 + .../docs/eprs/6.2/images/image239.jpg | 3 + .../docs/eprs/6.2/images/image239.png | 3 + product_docs/docs/eprs/6.2/images/image24.jpg | 3 + product_docs/docs/eprs/6.2/images/image24.png | 3 + .../docs/eprs/6.2/images/image240.jpg | 3 + .../docs/eprs/6.2/images/image240.png | 3 + .../docs/eprs/6.2/images/image241.jpg | 3 + .../docs/eprs/6.2/images/image241.png | 3 + .../docs/eprs/6.2/images/image242.jpg | 3 + .../docs/eprs/6.2/images/image242.png | 3 + .../docs/eprs/6.2/images/image243.jpg | 3 + .../docs/eprs/6.2/images/image243.png | 3 + .../docs/eprs/6.2/images/image244.jpg | 3 + .../docs/eprs/6.2/images/image244.png | 3 + .../docs/eprs/6.2/images/image245.jpg | 3 + .../docs/eprs/6.2/images/image245.png | 3 + .../docs/eprs/6.2/images/image246.jpg | 3 + .../docs/eprs/6.2/images/image246.png | 3 + .../docs/eprs/6.2/images/image247.jpg | 3 + .../docs/eprs/6.2/images/image247.png | 3 + .../docs/eprs/6.2/images/image248.jpg | 3 + .../docs/eprs/6.2/images/image248.png | 3 + .../docs/eprs/6.2/images/image249.jpg | 3 + .../docs/eprs/6.2/images/image249.png | 3 + product_docs/docs/eprs/6.2/images/image25.png | 3 + .../docs/eprs/6.2/images/image250.jpg | 3 + .../docs/eprs/6.2/images/image250.png | 3 + .../docs/eprs/6.2/images/image251.jpg | 3 + .../docs/eprs/6.2/images/image251.png | 3 + .../docs/eprs/6.2/images/image252.jpeg | 3 + .../docs/eprs/6.2/images/image252.png | 3 + .../docs/eprs/6.2/images/image253.jpg | 3 + .../docs/eprs/6.2/images/image253.png | 3 + .../docs/eprs/6.2/images/image254.jpg | 3 + .../docs/eprs/6.2/images/image254.png | 3 + .../docs/eprs/6.2/images/image255.jpg | 3 + .../docs/eprs/6.2/images/image255.png | 3 + .../docs/eprs/6.2/images/image256.jpg | 3 + .../docs/eprs/6.2/images/image256.png | 3 + .../docs/eprs/6.2/images/image257.jpg | 3 + .../docs/eprs/6.2/images/image257.png | 3 + .../docs/eprs/6.2/images/image258.jpg | 3 + .../docs/eprs/6.2/images/image258.png | 3 + .../docs/eprs/6.2/images/image259.jpg | 3 + .../docs/eprs/6.2/images/image259.png | 3 + product_docs/docs/eprs/6.2/images/image26.jpg | 3 + product_docs/docs/eprs/6.2/images/image26.png | 3 + .../docs/eprs/6.2/images/image260.jpg | 3 + .../docs/eprs/6.2/images/image260.png | 3 + .../docs/eprs/6.2/images/image261.jpg | 3 + .../docs/eprs/6.2/images/image261.png | 3 + .../docs/eprs/6.2/images/image262.jpg | 3 + .../docs/eprs/6.2/images/image262.png | 3 + .../docs/eprs/6.2/images/image263.jpg | 3 + .../docs/eprs/6.2/images/image263.png | 3 + .../docs/eprs/6.2/images/image264.jpg | 3 + .../docs/eprs/6.2/images/image264.png | 3 + .../docs/eprs/6.2/images/image265.jpg | 3 + .../docs/eprs/6.2/images/image265.png | 3 + .../docs/eprs/6.2/images/image266.jpg | 3 + .../docs/eprs/6.2/images/image266.png | 3 + .../docs/eprs/6.2/images/image267.jpg | 3 + .../docs/eprs/6.2/images/image267.png | 3 + .../docs/eprs/6.2/images/image268.jpg | 3 + .../docs/eprs/6.2/images/image268.png | 3 + .../docs/eprs/6.2/images/image269.jpg | 3 + .../docs/eprs/6.2/images/image269.png | 3 + product_docs/docs/eprs/6.2/images/image27.jpg | 3 + product_docs/docs/eprs/6.2/images/image27.png | 3 + .../docs/eprs/6.2/images/image270.jpg | 3 + .../docs/eprs/6.2/images/image270.png | 3 + .../docs/eprs/6.2/images/image271.jpg | 3 + .../docs/eprs/6.2/images/image271.png | 3 + .../docs/eprs/6.2/images/image272.jpg | 3 + .../docs/eprs/6.2/images/image272.png | 3 + .../docs/eprs/6.2/images/image273.jpg | 3 + .../docs/eprs/6.2/images/image273.png | 3 + .../docs/eprs/6.2/images/image274.jpg | 3 + .../docs/eprs/6.2/images/image274.png | 3 + .../docs/eprs/6.2/images/image275.jpg | 3 + .../docs/eprs/6.2/images/image275.png | 3 + .../docs/eprs/6.2/images/image276.jpg | 3 + .../docs/eprs/6.2/images/image276.png | 3 + .../docs/eprs/6.2/images/image277.jpg | 3 + .../docs/eprs/6.2/images/image277.png | 3 + .../docs/eprs/6.2/images/image278.jpg | 3 + .../docs/eprs/6.2/images/image278.png | 3 + .../docs/eprs/6.2/images/image279.jpg | 3 + .../docs/eprs/6.2/images/image279.png | 3 + product_docs/docs/eprs/6.2/images/image28.jpg | 3 + product_docs/docs/eprs/6.2/images/image28.png | 3 + .../docs/eprs/6.2/images/image280.jpeg | 3 + .../docs/eprs/6.2/images/image280.png | 3 + .../docs/eprs/6.2/images/image281.jpeg | 3 + .../docs/eprs/6.2/images/image281.png | 3 + .../docs/eprs/6.2/images/image282.jpeg | 3 + .../docs/eprs/6.2/images/image282.png | 3 + .../docs/eprs/6.2/images/image283.jpeg | 3 + .../docs/eprs/6.2/images/image283.png | 3 + .../docs/eprs/6.2/images/image284.jpg | 3 + .../docs/eprs/6.2/images/image284.png | 3 + .../docs/eprs/6.2/images/image285.jpg | 3 + .../docs/eprs/6.2/images/image285.png | 3 + .../docs/eprs/6.2/images/image286.jpg | 3 + .../docs/eprs/6.2/images/image286.png | 3 + .../docs/eprs/6.2/images/image287.jpg | 3 + .../docs/eprs/6.2/images/image287.png | 3 + .../docs/eprs/6.2/images/image288.jpg | 3 + .../docs/eprs/6.2/images/image288.png | 3 + .../docs/eprs/6.2/images/image289.jpg | 3 + .../docs/eprs/6.2/images/image289.png | 3 + product_docs/docs/eprs/6.2/images/image29.jpg | 3 + product_docs/docs/eprs/6.2/images/image29.png | 3 + .../docs/eprs/6.2/images/image290.jpeg | 3 + .../docs/eprs/6.2/images/image290.png | 3 + .../docs/eprs/6.2/images/image291.jpg | 3 + .../docs/eprs/6.2/images/image291.png | 3 + .../docs/eprs/6.2/images/image292.jpg | 3 + .../docs/eprs/6.2/images/image292.png | 3 + .../docs/eprs/6.2/images/image293.jpg | 3 + .../docs/eprs/6.2/images/image293.png | 3 + .../docs/eprs/6.2/images/image294.jpg | 3 + .../docs/eprs/6.2/images/image294.png | 3 + .../docs/eprs/6.2/images/image295.jpeg | 3 + .../docs/eprs/6.2/images/image295.png | 3 + .../docs/eprs/6.2/images/image296.jpg | 3 + .../docs/eprs/6.2/images/image296.png | 3 + .../docs/eprs/6.2/images/image297.jpg | 3 + .../docs/eprs/6.2/images/image297.png | 3 + .../docs/eprs/6.2/images/image298.jpg | 3 + .../docs/eprs/6.2/images/image298.png | 3 + .../docs/eprs/6.2/images/image299.jpg | 3 + .../docs/eprs/6.2/images/image299.png | 3 + product_docs/docs/eprs/6.2/images/image3.jpeg | 3 + product_docs/docs/eprs/6.2/images/image3.png | 3 + product_docs/docs/eprs/6.2/images/image30.jpg | 3 + product_docs/docs/eprs/6.2/images/image30.png | 3 + product_docs/docs/eprs/6.2/images/image31.jpg | 3 + product_docs/docs/eprs/6.2/images/image31.png | 3 + product_docs/docs/eprs/6.2/images/image32.jpg | 3 + product_docs/docs/eprs/6.2/images/image32.png | 3 + product_docs/docs/eprs/6.2/images/image33.jpg | 3 + product_docs/docs/eprs/6.2/images/image33.png | 3 + product_docs/docs/eprs/6.2/images/image34.jpg | 3 + product_docs/docs/eprs/6.2/images/image34.png | 3 + product_docs/docs/eprs/6.2/images/image35.jpg | 3 + product_docs/docs/eprs/6.2/images/image35.png | 3 + product_docs/docs/eprs/6.2/images/image36.jpg | 3 + product_docs/docs/eprs/6.2/images/image36.png | 3 + product_docs/docs/eprs/6.2/images/image37.jpg | 3 + product_docs/docs/eprs/6.2/images/image37.png | 3 + product_docs/docs/eprs/6.2/images/image38.jpg | 3 + product_docs/docs/eprs/6.2/images/image38.png | 3 + product_docs/docs/eprs/6.2/images/image39.jpg | 3 + product_docs/docs/eprs/6.2/images/image39.png | 3 + product_docs/docs/eprs/6.2/images/image4.jpeg | 3 + product_docs/docs/eprs/6.2/images/image4.png | 3 + product_docs/docs/eprs/6.2/images/image40.jpg | 3 + product_docs/docs/eprs/6.2/images/image40.png | 3 + product_docs/docs/eprs/6.2/images/image41.jpg | 3 + product_docs/docs/eprs/6.2/images/image41.png | 3 + product_docs/docs/eprs/6.2/images/image42.jpg | 3 + product_docs/docs/eprs/6.2/images/image42.png | 3 + product_docs/docs/eprs/6.2/images/image43.jpg | 3 + product_docs/docs/eprs/6.2/images/image43.png | 3 + product_docs/docs/eprs/6.2/images/image44.jpg | 3 + product_docs/docs/eprs/6.2/images/image44.png | 3 + product_docs/docs/eprs/6.2/images/image45.jpg | 3 + product_docs/docs/eprs/6.2/images/image45.png | 3 + product_docs/docs/eprs/6.2/images/image46.jpg | 3 + product_docs/docs/eprs/6.2/images/image46.png | 3 + product_docs/docs/eprs/6.2/images/image47.jpg | 3 + product_docs/docs/eprs/6.2/images/image47.png | 3 + product_docs/docs/eprs/6.2/images/image48.jpg | 3 + product_docs/docs/eprs/6.2/images/image48.png | 3 + product_docs/docs/eprs/6.2/images/image49.jpg | 3 + product_docs/docs/eprs/6.2/images/image49.png | 3 + product_docs/docs/eprs/6.2/images/image5.jpeg | 3 + product_docs/docs/eprs/6.2/images/image5.png | 3 + product_docs/docs/eprs/6.2/images/image50.jpg | 3 + product_docs/docs/eprs/6.2/images/image50.png | 3 + product_docs/docs/eprs/6.2/images/image51.jpg | 3 + product_docs/docs/eprs/6.2/images/image51.png | 3 + product_docs/docs/eprs/6.2/images/image52.jpg | 3 + product_docs/docs/eprs/6.2/images/image52.png | 3 + product_docs/docs/eprs/6.2/images/image53.jpg | 3 + product_docs/docs/eprs/6.2/images/image53.png | 3 + product_docs/docs/eprs/6.2/images/image54.jpg | 3 + product_docs/docs/eprs/6.2/images/image54.png | 3 + product_docs/docs/eprs/6.2/images/image55.jpg | 3 + product_docs/docs/eprs/6.2/images/image55.png | 3 + product_docs/docs/eprs/6.2/images/image56.jpg | 3 + product_docs/docs/eprs/6.2/images/image56.png | 3 + product_docs/docs/eprs/6.2/images/image57.jpg | 3 + product_docs/docs/eprs/6.2/images/image57.png | 3 + product_docs/docs/eprs/6.2/images/image58.jpg | 3 + product_docs/docs/eprs/6.2/images/image58.png | 3 + product_docs/docs/eprs/6.2/images/image59.jpg | 3 + product_docs/docs/eprs/6.2/images/image59.png | 3 + product_docs/docs/eprs/6.2/images/image6.jpeg | 3 + product_docs/docs/eprs/6.2/images/image6.png | 3 + product_docs/docs/eprs/6.2/images/image60.jpg | 3 + product_docs/docs/eprs/6.2/images/image60.png | 3 + product_docs/docs/eprs/6.2/images/image61.jpg | 3 + product_docs/docs/eprs/6.2/images/image61.png | 3 + product_docs/docs/eprs/6.2/images/image62.jpg | 3 + product_docs/docs/eprs/6.2/images/image62.png | 3 + product_docs/docs/eprs/6.2/images/image63.jpg | 3 + product_docs/docs/eprs/6.2/images/image63.png | 3 + product_docs/docs/eprs/6.2/images/image64.jpg | 3 + product_docs/docs/eprs/6.2/images/image64.png | 3 + product_docs/docs/eprs/6.2/images/image65.jpg | 3 + product_docs/docs/eprs/6.2/images/image65.png | 3 + product_docs/docs/eprs/6.2/images/image66.jpg | 3 + product_docs/docs/eprs/6.2/images/image66.png | 3 + product_docs/docs/eprs/6.2/images/image67.jpg | 3 + product_docs/docs/eprs/6.2/images/image67.png | 3 + product_docs/docs/eprs/6.2/images/image68.jpg | 3 + product_docs/docs/eprs/6.2/images/image68.png | 3 + product_docs/docs/eprs/6.2/images/image69.jpg | 3 + product_docs/docs/eprs/6.2/images/image69.png | 3 + product_docs/docs/eprs/6.2/images/image7.jpeg | 3 + product_docs/docs/eprs/6.2/images/image7.png | 3 + product_docs/docs/eprs/6.2/images/image70.jpg | 3 + product_docs/docs/eprs/6.2/images/image70.png | 3 + product_docs/docs/eprs/6.2/images/image71.jpg | 3 + product_docs/docs/eprs/6.2/images/image71.png | 3 + product_docs/docs/eprs/6.2/images/image72.jpg | 3 + product_docs/docs/eprs/6.2/images/image72.png | 3 + product_docs/docs/eprs/6.2/images/image73.jpg | 3 + product_docs/docs/eprs/6.2/images/image73.png | 3 + product_docs/docs/eprs/6.2/images/image74.jpg | 3 + product_docs/docs/eprs/6.2/images/image74.png | 3 + product_docs/docs/eprs/6.2/images/image75.jpg | 3 + product_docs/docs/eprs/6.2/images/image75.png | 3 + product_docs/docs/eprs/6.2/images/image76.jpg | 3 + product_docs/docs/eprs/6.2/images/image76.png | 3 + product_docs/docs/eprs/6.2/images/image77.jpg | 3 + product_docs/docs/eprs/6.2/images/image77.png | 3 + product_docs/docs/eprs/6.2/images/image78.jpg | 3 + product_docs/docs/eprs/6.2/images/image78.png | 3 + product_docs/docs/eprs/6.2/images/image79.jpg | 3 + product_docs/docs/eprs/6.2/images/image79.png | 3 + product_docs/docs/eprs/6.2/images/image8.png | 3 + product_docs/docs/eprs/6.2/images/image80.jpg | 3 + product_docs/docs/eprs/6.2/images/image80.png | 3 + product_docs/docs/eprs/6.2/images/image81.jpg | 3 + product_docs/docs/eprs/6.2/images/image81.png | 3 + product_docs/docs/eprs/6.2/images/image82.jpg | 3 + product_docs/docs/eprs/6.2/images/image82.png | 3 + product_docs/docs/eprs/6.2/images/image83.jpg | 3 + product_docs/docs/eprs/6.2/images/image83.png | 3 + product_docs/docs/eprs/6.2/images/image84.jpg | 3 + product_docs/docs/eprs/6.2/images/image84.png | 3 + product_docs/docs/eprs/6.2/images/image85.jpg | 3 + product_docs/docs/eprs/6.2/images/image85.png | 3 + product_docs/docs/eprs/6.2/images/image86.jpg | 3 + product_docs/docs/eprs/6.2/images/image86.png | 3 + product_docs/docs/eprs/6.2/images/image87.jpg | 3 + product_docs/docs/eprs/6.2/images/image87.png | 3 + product_docs/docs/eprs/6.2/images/image88.jpg | 3 + product_docs/docs/eprs/6.2/images/image88.png | 3 + product_docs/docs/eprs/6.2/images/image89.jpg | 3 + product_docs/docs/eprs/6.2/images/image89.png | 3 + product_docs/docs/eprs/6.2/images/image9.png | 3 + product_docs/docs/eprs/6.2/images/image90.jpg | 3 + product_docs/docs/eprs/6.2/images/image90.png | 3 + product_docs/docs/eprs/6.2/images/image91.jpg | 3 + product_docs/docs/eprs/6.2/images/image91.png | 3 + product_docs/docs/eprs/6.2/images/image92.jpg | 3 + product_docs/docs/eprs/6.2/images/image92.png | 3 + product_docs/docs/eprs/6.2/images/image93.jpg | 3 + product_docs/docs/eprs/6.2/images/image93.png | 3 + product_docs/docs/eprs/6.2/images/image94.jpg | 3 + product_docs/docs/eprs/6.2/images/image94.png | 3 + product_docs/docs/eprs/6.2/images/image95.jpg | 3 + product_docs/docs/eprs/6.2/images/image95.png | 3 + product_docs/docs/eprs/6.2/images/image96.jpg | 3 + product_docs/docs/eprs/6.2/images/image96.png | 3 + product_docs/docs/eprs/6.2/images/image97.jpg | 3 + product_docs/docs/eprs/6.2/images/image97.png | 3 + product_docs/docs/eprs/6.2/images/image98.jpg | 3 + product_docs/docs/eprs/6.2/images/image98.png | 3 + product_docs/docs/eprs/6.2/images/image99.jpg | 3 + product_docs/docs/eprs/6.2/images/image99.png | 3 + .../docs/eprs/6.2/images/less_secure_apps.png | 3 + .../eprs/6.2/images/media/aws_instance.png | 3 + .../docs/eprs/6.2/images/media/edb_logo.png | 3 + .../docs/eprs/6.2/images/media/edb_logo.svg | 19 + .../docs/eprs/6.2/images/media/efm_slot.png | 3 + .../eprs/6.2/images/media/efm_slot_old.png | 3 + .../images/media/google_security_settings.png | 3 + .../docs/eprs/6.2/images/media/image10.jpg | 3 + .../docs/eprs/6.2/images/media/image100.jpg | 3 + .../docs/eprs/6.2/images/media/image101.jpg | 3 + .../docs/eprs/6.2/images/media/image102.jpg | 3 + .../docs/eprs/6.2/images/media/image103.jpg | 3 + .../docs/eprs/6.2/images/media/image104.jpg | 3 + .../docs/eprs/6.2/images/media/image105.jpg | 3 + .../docs/eprs/6.2/images/media/image106.jpg | 3 + .../docs/eprs/6.2/images/media/image107.jpg | 3 + .../docs/eprs/6.2/images/media/image108.jpg | 3 + .../docs/eprs/6.2/images/media/image109.jpg | 3 + .../docs/eprs/6.2/images/media/image11.png | 3 + .../docs/eprs/6.2/images/media/image110.jpg | 3 + .../docs/eprs/6.2/images/media/image111.jpg | 3 + .../docs/eprs/6.2/images/media/image112.jpg | 3 + .../docs/eprs/6.2/images/media/image113.jpg | 3 + .../docs/eprs/6.2/images/media/image114.jpg | 3 + .../docs/eprs/6.2/images/media/image115.jpg | 3 + .../docs/eprs/6.2/images/media/image116.jpg | 3 + .../docs/eprs/6.2/images/media/image117.jpg | 3 + .../docs/eprs/6.2/images/media/image118.jpg | 3 + .../docs/eprs/6.2/images/media/image119.jpg | 3 + .../docs/eprs/6.2/images/media/image12.jpg | 3 + .../docs/eprs/6.2/images/media/image120.jpg | 3 + .../docs/eprs/6.2/images/media/image121.jpg | 3 + .../docs/eprs/6.2/images/media/image122.jpg | 3 + .../docs/eprs/6.2/images/media/image123.jpg | 3 + .../docs/eprs/6.2/images/media/image124.jpg | 3 + .../docs/eprs/6.2/images/media/image125.jpg | 3 + .../docs/eprs/6.2/images/media/image126.jpg | 3 + .../docs/eprs/6.2/images/media/image127.jpg | 3 + .../docs/eprs/6.2/images/media/image128.jpg | 3 + .../docs/eprs/6.2/images/media/image129.jpg | 3 + .../docs/eprs/6.2/images/media/image13.jpg | 3 + .../docs/eprs/6.2/images/media/image130.jpg | 3 + .../docs/eprs/6.2/images/media/image131.jpg | 3 + .../docs/eprs/6.2/images/media/image132.jpg | 3 + .../docs/eprs/6.2/images/media/image133.jpg | 3 + .../docs/eprs/6.2/images/media/image134.jpg | 3 + .../docs/eprs/6.2/images/media/image135.jpg | 3 + .../docs/eprs/6.2/images/media/image136.jpg | 3 + .../docs/eprs/6.2/images/media/image137.jpg | 3 + .../docs/eprs/6.2/images/media/image138.jpg | 3 + .../docs/eprs/6.2/images/media/image139.jpg | 3 + .../docs/eprs/6.2/images/media/image14.jpg | 3 + .../docs/eprs/6.2/images/media/image140.jpg | 3 + .../docs/eprs/6.2/images/media/image141.jpg | 3 + .../docs/eprs/6.2/images/media/image142.jpg | 3 + .../docs/eprs/6.2/images/media/image143.jpg | 3 + .../docs/eprs/6.2/images/media/image144.jpg | 3 + .../docs/eprs/6.2/images/media/image145.jpg | 3 + .../docs/eprs/6.2/images/media/image146.jpg | 3 + .../docs/eprs/6.2/images/media/image147.jpg | 3 + .../docs/eprs/6.2/images/media/image148.jpg | 3 + .../docs/eprs/6.2/images/media/image149.jpg | 3 + .../docs/eprs/6.2/images/media/image15.jpg | 3 + .../docs/eprs/6.2/images/media/image150.jpg | 3 + .../docs/eprs/6.2/images/media/image151.jpg | 3 + .../docs/eprs/6.2/images/media/image152.jpg | 3 + .../docs/eprs/6.2/images/media/image153.jpg | 3 + .../docs/eprs/6.2/images/media/image154.jpg | 3 + .../docs/eprs/6.2/images/media/image155.jpg | 3 + .../docs/eprs/6.2/images/media/image156.jpg | 3 + .../docs/eprs/6.2/images/media/image157.jpg | 3 + .../docs/eprs/6.2/images/media/image158.jpg | 3 + .../docs/eprs/6.2/images/media/image159.jpg | 3 + .../docs/eprs/6.2/images/media/image16.jpg | 3 + .../docs/eprs/6.2/images/media/image160.jpg | 3 + .../docs/eprs/6.2/images/media/image161.jpg | 3 + .../docs/eprs/6.2/images/media/image162.jpg | 3 + .../docs/eprs/6.2/images/media/image163.jpg | 3 + .../docs/eprs/6.2/images/media/image164.jpg | 3 + .../docs/eprs/6.2/images/media/image165.jpg | 3 + .../docs/eprs/6.2/images/media/image166.jpg | 3 + .../docs/eprs/6.2/images/media/image167.jpg | 3 + .../docs/eprs/6.2/images/media/image168.jpg | 3 + .../docs/eprs/6.2/images/media/image169.jpg | 3 + .../docs/eprs/6.2/images/media/image17.jpg | 3 + .../docs/eprs/6.2/images/media/image170.jpg | 3 + .../docs/eprs/6.2/images/media/image171.jpg | 3 + .../docs/eprs/6.2/images/media/image172.jpg | 3 + .../docs/eprs/6.2/images/media/image173.jpg | 3 + .../docs/eprs/6.2/images/media/image174.jpg | 3 + .../docs/eprs/6.2/images/media/image175.jpg | 3 + .../docs/eprs/6.2/images/media/image176.jpg | 3 + .../docs/eprs/6.2/images/media/image177.jpg | 3 + .../docs/eprs/6.2/images/media/image178.jpg | 3 + .../docs/eprs/6.2/images/media/image179.jpg | 3 + .../docs/eprs/6.2/images/media/image18.jpg | 3 + .../docs/eprs/6.2/images/media/image180.jpg | 3 + .../docs/eprs/6.2/images/media/image181.jpg | 3 + .../docs/eprs/6.2/images/media/image182.jpg | 3 + .../docs/eprs/6.2/images/media/image183.jpg | 3 + .../docs/eprs/6.2/images/media/image184.jpg | 3 + .../docs/eprs/6.2/images/media/image185.jpg | 3 + .../docs/eprs/6.2/images/media/image186.jpg | 3 + .../docs/eprs/6.2/images/media/image187.jpg | 3 + .../docs/eprs/6.2/images/media/image188.jpg | 3 + .../docs/eprs/6.2/images/media/image189.jpg | 3 + .../docs/eprs/6.2/images/media/image19.jpg | 3 + .../docs/eprs/6.2/images/media/image190.jpg | 3 + .../docs/eprs/6.2/images/media/image191.jpg | 3 + .../docs/eprs/6.2/images/media/image192.jpg | 3 + .../docs/eprs/6.2/images/media/image193.jpg | 3 + .../docs/eprs/6.2/images/media/image194.jpg | 3 + .../docs/eprs/6.2/images/media/image195.jpg | 3 + .../docs/eprs/6.2/images/media/image196.jpg | 3 + .../docs/eprs/6.2/images/media/image197.jpg | 3 + .../docs/eprs/6.2/images/media/image198.jpg | 3 + .../docs/eprs/6.2/images/media/image199.jpg | 3 + .../docs/eprs/6.2/images/media/image2.png | 3 + .../docs/eprs/6.2/images/media/image20.jpg | 3 + .../docs/eprs/6.2/images/media/image200.jpg | 3 + .../docs/eprs/6.2/images/media/image201.jpg | 3 + .../docs/eprs/6.2/images/media/image202.jpg | 3 + .../docs/eprs/6.2/images/media/image203.jpg | 3 + .../docs/eprs/6.2/images/media/image204.jpg | 3 + .../docs/eprs/6.2/images/media/image205.jpg | 3 + .../docs/eprs/6.2/images/media/image206.jpg | 3 + .../docs/eprs/6.2/images/media/image207.jpg | 3 + .../docs/eprs/6.2/images/media/image208.jpg | 3 + .../docs/eprs/6.2/images/media/image209.jpg | 3 + .../docs/eprs/6.2/images/media/image21.png | 3 + .../docs/eprs/6.2/images/media/image210.jpg | 3 + .../docs/eprs/6.2/images/media/image211.jpg | 3 + .../docs/eprs/6.2/images/media/image212.jpg | 3 + .../docs/eprs/6.2/images/media/image213.jpg | 3 + .../docs/eprs/6.2/images/media/image214.jpg | 3 + .../docs/eprs/6.2/images/media/image215.jpg | 3 + .../docs/eprs/6.2/images/media/image216.jpg | 3 + .../docs/eprs/6.2/images/media/image217.jpg | 3 + .../docs/eprs/6.2/images/media/image218.jpg | 3 + .../docs/eprs/6.2/images/media/image219.jpg | 3 + .../docs/eprs/6.2/images/media/image22.jpg | 3 + .../docs/eprs/6.2/images/media/image220.jpg | 3 + .../docs/eprs/6.2/images/media/image221.jpg | 3 + .../docs/eprs/6.2/images/media/image222.jpg | 3 + .../docs/eprs/6.2/images/media/image223.jpg | 3 + .../docs/eprs/6.2/images/media/image224.jpg | 3 + .../docs/eprs/6.2/images/media/image225.jpg | 3 + .../docs/eprs/6.2/images/media/image226.jpg | 3 + .../docs/eprs/6.2/images/media/image227.jpg | 3 + .../docs/eprs/6.2/images/media/image228.jpg | 3 + .../docs/eprs/6.2/images/media/image229.jpg | 3 + .../docs/eprs/6.2/images/media/image23.jpg | 3 + .../docs/eprs/6.2/images/media/image230.jpg | 3 + .../docs/eprs/6.2/images/media/image231.jpg | 3 + .../docs/eprs/6.2/images/media/image232.jpg | 3 + .../docs/eprs/6.2/images/media/image233.jpg | 3 + .../docs/eprs/6.2/images/media/image234.jpg | 3 + .../docs/eprs/6.2/images/media/image235.jpg | 3 + .../docs/eprs/6.2/images/media/image236.jpg | 3 + .../docs/eprs/6.2/images/media/image237.jpg | 3 + .../docs/eprs/6.2/images/media/image238.jpg | 3 + .../docs/eprs/6.2/images/media/image239.jpg | 3 + .../docs/eprs/6.2/images/media/image24.jpg | 3 + .../docs/eprs/6.2/images/media/image240.jpg | 3 + .../docs/eprs/6.2/images/media/image241.jpg | 3 + .../docs/eprs/6.2/images/media/image242.jpg | 3 + .../docs/eprs/6.2/images/media/image243.jpg | 3 + .../docs/eprs/6.2/images/media/image244.jpg | 3 + .../docs/eprs/6.2/images/media/image245.jpg | 3 + .../docs/eprs/6.2/images/media/image246.jpg | 3 + .../docs/eprs/6.2/images/media/image247.jpg | 3 + .../docs/eprs/6.2/images/media/image248.jpg | 3 + .../docs/eprs/6.2/images/media/image249.jpg | 3 + .../docs/eprs/6.2/images/media/image25.png | 3 + .../docs/eprs/6.2/images/media/image250.jpg | 3 + .../docs/eprs/6.2/images/media/image251.jpg | 3 + .../docs/eprs/6.2/images/media/image252.jpeg | 3 + .../docs/eprs/6.2/images/media/image253.jpg | 3 + .../docs/eprs/6.2/images/media/image254.jpg | 3 + .../docs/eprs/6.2/images/media/image255.jpg | 3 + .../docs/eprs/6.2/images/media/image256.jpg | 3 + .../docs/eprs/6.2/images/media/image257.jpg | 3 + .../docs/eprs/6.2/images/media/image258.jpg | 3 + .../docs/eprs/6.2/images/media/image259.jpg | 3 + .../docs/eprs/6.2/images/media/image26.jpg | 3 + .../docs/eprs/6.2/images/media/image260.jpg | 3 + .../docs/eprs/6.2/images/media/image261.jpg | 3 + .../docs/eprs/6.2/images/media/image262.jpg | 3 + .../docs/eprs/6.2/images/media/image263.jpg | 3 + .../docs/eprs/6.2/images/media/image264.jpg | 3 + .../docs/eprs/6.2/images/media/image265.jpg | 3 + .../docs/eprs/6.2/images/media/image266.jpg | 3 + .../docs/eprs/6.2/images/media/image267.jpg | 3 + .../docs/eprs/6.2/images/media/image268.jpg | 3 + .../docs/eprs/6.2/images/media/image269.jpg | 3 + .../docs/eprs/6.2/images/media/image27.jpg | 3 + .../docs/eprs/6.2/images/media/image270.jpg | 3 + .../docs/eprs/6.2/images/media/image271.jpg | 3 + .../docs/eprs/6.2/images/media/image272.jpg | 3 + .../docs/eprs/6.2/images/media/image273.jpg | 3 + .../docs/eprs/6.2/images/media/image274.jpg | 3 + .../docs/eprs/6.2/images/media/image275.jpg | 3 + .../docs/eprs/6.2/images/media/image276.jpg | 3 + .../docs/eprs/6.2/images/media/image277.jpg | 3 + .../docs/eprs/6.2/images/media/image278.jpg | 3 + .../docs/eprs/6.2/images/media/image279.jpg | 3 + .../docs/eprs/6.2/images/media/image28.jpg | 3 + .../docs/eprs/6.2/images/media/image280.jpeg | 3 + .../docs/eprs/6.2/images/media/image281.jpeg | 3 + .../docs/eprs/6.2/images/media/image282.jpeg | 3 + .../docs/eprs/6.2/images/media/image283.jpeg | 3 + .../docs/eprs/6.2/images/media/image284.jpg | 3 + .../docs/eprs/6.2/images/media/image285.jpg | 3 + .../docs/eprs/6.2/images/media/image286.jpg | 3 + .../docs/eprs/6.2/images/media/image287.jpg | 3 + .../docs/eprs/6.2/images/media/image288.jpg | 3 + .../docs/eprs/6.2/images/media/image289.jpg | 3 + .../docs/eprs/6.2/images/media/image29.jpg | 3 + .../docs/eprs/6.2/images/media/image290.jpeg | 3 + .../docs/eprs/6.2/images/media/image291.jpg | 3 + .../docs/eprs/6.2/images/media/image292.jpg | 3 + .../docs/eprs/6.2/images/media/image293.jpg | 3 + .../docs/eprs/6.2/images/media/image294.jpg | 3 + .../docs/eprs/6.2/images/media/image295.jpeg | 3 + .../docs/eprs/6.2/images/media/image296.jpg | 3 + .../docs/eprs/6.2/images/media/image297.jpg | 3 + .../docs/eprs/6.2/images/media/image298.jpg | 3 + .../docs/eprs/6.2/images/media/image299.jpg | 3 + .../docs/eprs/6.2/images/media/image3.jpeg | 3 + .../docs/eprs/6.2/images/media/image3.png | 3 + .../docs/eprs/6.2/images/media/image30.jpg | 3 + .../docs/eprs/6.2/images/media/image31.jpg | 3 + .../docs/eprs/6.2/images/media/image32.jpg | 3 + .../docs/eprs/6.2/images/media/image33.jpg | 3 + .../docs/eprs/6.2/images/media/image34.jpg | 3 + .../docs/eprs/6.2/images/media/image35.jpg | 3 + .../docs/eprs/6.2/images/media/image36.jpg | 3 + .../docs/eprs/6.2/images/media/image37.jpg | 3 + .../docs/eprs/6.2/images/media/image38.jpg | 3 + .../docs/eprs/6.2/images/media/image39.jpg | 3 + .../docs/eprs/6.2/images/media/image4.jpeg | 3 + .../docs/eprs/6.2/images/media/image40.jpg | 3 + .../docs/eprs/6.2/images/media/image41.jpg | 3 + .../docs/eprs/6.2/images/media/image42.jpg | 3 + .../docs/eprs/6.2/images/media/image43.jpg | 3 + .../docs/eprs/6.2/images/media/image44.jpg | 3 + .../docs/eprs/6.2/images/media/image45.jpg | 3 + .../docs/eprs/6.2/images/media/image46.jpg | 3 + .../docs/eprs/6.2/images/media/image47.jpg | 3 + .../docs/eprs/6.2/images/media/image48.jpg | 3 + .../docs/eprs/6.2/images/media/image49.jpg | 3 + .../docs/eprs/6.2/images/media/image5.jpeg | 3 + .../docs/eprs/6.2/images/media/image50.jpg | 3 + .../docs/eprs/6.2/images/media/image51.jpg | 3 + .../docs/eprs/6.2/images/media/image52.jpg | 3 + .../docs/eprs/6.2/images/media/image53.jpg | 3 + .../docs/eprs/6.2/images/media/image54.jpg | 3 + .../docs/eprs/6.2/images/media/image55.jpg | 3 + .../docs/eprs/6.2/images/media/image56.jpg | 3 + .../docs/eprs/6.2/images/media/image57.jpg | 3 + .../docs/eprs/6.2/images/media/image58.jpg | 3 + .../docs/eprs/6.2/images/media/image59.jpg | 3 + .../docs/eprs/6.2/images/media/image6.jpeg | 3 + .../docs/eprs/6.2/images/media/image60.jpg | 3 + .../docs/eprs/6.2/images/media/image61.jpg | 3 + .../docs/eprs/6.2/images/media/image62.jpg | 3 + .../docs/eprs/6.2/images/media/image63.jpg | 3 + .../docs/eprs/6.2/images/media/image64.jpg | 3 + .../docs/eprs/6.2/images/media/image65.jpg | 3 + .../docs/eprs/6.2/images/media/image66.jpg | 3 + .../docs/eprs/6.2/images/media/image67.jpg | 3 + .../docs/eprs/6.2/images/media/image68.jpg | 3 + .../docs/eprs/6.2/images/media/image69.jpg | 3 + .../docs/eprs/6.2/images/media/image7.jpeg | 3 + .../docs/eprs/6.2/images/media/image70.jpg | 3 + .../docs/eprs/6.2/images/media/image71.jpg | 3 + .../docs/eprs/6.2/images/media/image72.jpg | 3 + .../docs/eprs/6.2/images/media/image73.jpg | 3 + .../docs/eprs/6.2/images/media/image74.jpg | 3 + .../docs/eprs/6.2/images/media/image75.jpg | 3 + .../docs/eprs/6.2/images/media/image76.jpg | 3 + .../docs/eprs/6.2/images/media/image77.jpg | 3 + .../docs/eprs/6.2/images/media/image78.jpg | 3 + .../docs/eprs/6.2/images/media/image79.jpg | 3 + .../docs/eprs/6.2/images/media/image8.png | 3 + .../docs/eprs/6.2/images/media/image80.jpg | 3 + .../docs/eprs/6.2/images/media/image81.jpg | 3 + .../docs/eprs/6.2/images/media/image82.jpg | 3 + .../docs/eprs/6.2/images/media/image83.jpg | 3 + .../docs/eprs/6.2/images/media/image84.jpg | 3 + .../docs/eprs/6.2/images/media/image85.jpg | 3 + .../docs/eprs/6.2/images/media/image86.jpg | 3 + .../docs/eprs/6.2/images/media/image87.jpg | 3 + .../docs/eprs/6.2/images/media/image88.jpg | 3 + .../docs/eprs/6.2/images/media/image89.jpg | 3 + .../docs/eprs/6.2/images/media/image9.png | 3 + .../docs/eprs/6.2/images/media/image90.jpg | 3 + .../docs/eprs/6.2/images/media/image91.jpg | 3 + .../docs/eprs/6.2/images/media/image92.jpg | 3 + .../docs/eprs/6.2/images/media/image93.jpg | 3 + .../docs/eprs/6.2/images/media/image94.jpg | 3 + .../docs/eprs/6.2/images/media/image95.jpg | 3 + .../docs/eprs/6.2/images/media/image96.jpg | 3 + .../docs/eprs/6.2/images/media/image97.jpg | 3 + .../docs/eprs/6.2/images/media/image98.jpg | 3 + .../docs/eprs/6.2/images/media/image99.jpg | 3 + .../6.2/images/media/less_secure_apps.png | 3 + .../media/security_group_inbound_traffic.1png | Bin 0 -> 119746 bytes .../media/security_group_inbound_traffic.png | 3 + .../security_group_inbound_traffic.1png | Bin 0 -> 119746 bytes .../images/security_group_inbound_traffic.png | 3 + product_docs/docs/eprs/6.2/index.mdx | 4 +- 1155 files changed, 23883 insertions(+), 2 deletions(-) create mode 100644 product_docs/docs/eprs/6.2/01_introduction/01_whats_new.mdx create mode 100644 product_docs/docs/eprs/6.2/01_introduction/02_conventions_used.mdx create mode 100644 product_docs/docs/eprs/6.2/01_introduction/03_certified_supported_versions.mdx create mode 100644 product_docs/docs/eprs/6.2/01_introduction/04_supported_jdk_versions.mdx create mode 100644 product_docs/docs/eprs/6.2/01_introduction/index.mdx create mode 100644 product_docs/docs/eprs/6.2/02_overview/01_why_replication/01_offloading_reporting_and_bi_queries.mdx create mode 100644 product_docs/docs/eprs/6.2/02_overview/01_why_replication/02_using_warm_standby.mdx create mode 100644 product_docs/docs/eprs/6.2/02_overview/01_why_replication/03_testing_systems_in_parallel.mdx create mode 100644 product_docs/docs/eprs/6.2/02_overview/01_why_replication/04_migrating_data.mdx create mode 100644 product_docs/docs/eprs/6.2/02_overview/01_why_replication/05_write_availability.mdx create mode 100644 product_docs/docs/eprs/6.2/02_overview/01_why_replication/06_write_scalability.mdx create mode 100644 product_docs/docs/eprs/6.2/02_overview/01_why_replication/07_localized_data_access.mdx create mode 100644 product_docs/docs/eprs/6.2/02_overview/01_why_replication/index.mdx create mode 100644 product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/01_smr_mmr_comparison.mdx create mode 100644 product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/02_publications_and_subscriptions.mdx create mode 100644 product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/03_smr_replication.mdx create mode 100644 product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/04_mmr_replication.mdx create mode 100644 product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/05_asynchronous.mdx create mode 100644 product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/06_snapshot_and_synchronous.mdx create mode 100644 product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/07_snapshot_only_publications.mdx create mode 100644 product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/08_snapshot_replication.mdx create mode 100644 product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/09_sync_replication_trigger_based.mdx create mode 100644 product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/01_requirements_and_restrictions.mdx create mode 100644 product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/02_logical_replication_slots.mdx create mode 100644 product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/03_streaming_replication_wal_sender.mdx create mode 100644 product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/04_replication_origin.mdx create mode 100644 product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/05_inmemory_caching.mdx create mode 100644 product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/index.mdx create mode 100644 product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/11_requirements_and_restrictions.mdx create mode 100644 product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/12_mmr_parallel_replication.mdx create mode 100644 product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/13_table_filters.mdx create mode 100644 product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/index.mdx create mode 100644 product_docs/docs/eprs/6.2/02_overview/03_replication_server_components_and_architecture/01_physical_components.mdx create mode 100644 product_docs/docs/eprs/6.2/02_overview/03_replication_server_components_and_architecture/02_logical_components.mdx create mode 100644 product_docs/docs/eprs/6.2/02_overview/03_replication_server_components_and_architecture/03_xdb_replication_system_examples.mdx create mode 100644 product_docs/docs/eprs/6.2/02_overview/03_replication_server_components_and_architecture/index.mdx create mode 100644 product_docs/docs/eprs/6.2/02_overview/04_design_replication_system/01_general_steps.mdx create mode 100644 product_docs/docs/eprs/6.2/02_overview/04_design_replication_system/02_design_considerations.mdx create mode 100644 product_docs/docs/eprs/6.2/02_overview/04_design_replication_system/03_restrictions_on_replicated_database_objects.mdx create mode 100644 product_docs/docs/eprs/6.2/02_overview/04_design_replication_system/04_performance_considerations.mdx create mode 100644 product_docs/docs/eprs/6.2/02_overview/04_design_replication_system/05_distributed_replication.mdx create mode 100644 product_docs/docs/eprs/6.2/02_overview/04_design_replication_system/index.mdx create mode 100644 product_docs/docs/eprs/6.2/02_overview/index.mdx create mode 100644 product_docs/docs/eprs/6.2/03_installation/01_installing_with_stackbuilder.mdx create mode 100644 product_docs/docs/eprs/6.2/03_installation/02_installing_from_cli.mdx create mode 100644 product_docs/docs/eprs/6.2/03_installation/03_installing_rpm_package.mdx create mode 100644 product_docs/docs/eprs/6.2/03_installation/04_installing_xDB_sles_12_host.mdx create mode 100644 product_docs/docs/eprs/6.2/03_installation/05_post_installation_host_environment.mdx create mode 100644 product_docs/docs/eprs/6.2/03_installation/06_uninstalling_xdb_replication_server.mdx create mode 100644 product_docs/docs/eprs/6.2/03_installation/07_uninstalling_xdb_rpm_package.mdx create mode 100644 product_docs/docs/eprs/6.2/03_installation/index.mdx create mode 100644 product_docs/docs/eprs/6.2/04_intro_xdb_console.mdx create mode 100644 product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/01_setting_heap_size_for_pub_and_sub.mdx create mode 100644 product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/02_enable_sync_replication_with_log-based_method.mdx create mode 100644 product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/03_enable_access_to_database.mdx create mode 100644 product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/04_preparing_pub_database.mdx create mode 100644 product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/05_preparing_sub_database.mdx create mode 100644 product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/06_verifying_host_accessibility.mdx create mode 100644 product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/index.mdx create mode 100644 product_docs/docs/eprs/6.2/05_smr_operation/02_creating_publication/01_registering_publication_server.mdx create mode 100644 product_docs/docs/eprs/6.2/05_smr_operation/02_creating_publication/02_adding_pub_database.mdx create mode 100644 product_docs/docs/eprs/6.2/05_smr_operation/02_creating_publication/03_adding_publication.mdx create mode 100644 product_docs/docs/eprs/6.2/05_smr_operation/02_creating_publication/04_control_schema_objects_created_for_publication.mdx create mode 100644 product_docs/docs/eprs/6.2/05_smr_operation/02_creating_publication/index.mdx create mode 100644 product_docs/docs/eprs/6.2/05_smr_operation/03_creating_subscription/01_registering_subscription_server.mdx create mode 100644 product_docs/docs/eprs/6.2/05_smr_operation/03_creating_subscription/02_adding_subscription_database.mdx create mode 100644 product_docs/docs/eprs/6.2/05_smr_operation/03_creating_subscription/03_adding_subscription.mdx create mode 100644 product_docs/docs/eprs/6.2/05_smr_operation/03_creating_subscription/04_subscription_metadata_object.mdx create mode 100644 product_docs/docs/eprs/6.2/05_smr_operation/03_creating_subscription/index.mdx create mode 100644 product_docs/docs/eprs/6.2/05_smr_operation/04_on_demand_replication/01_perform_replication.mdx create mode 100644 product_docs/docs/eprs/6.2/05_smr_operation/04_on_demand_replication/02_perform_sync_replication.mdx create mode 100644 product_docs/docs/eprs/6.2/05_smr_operation/04_on_demand_replication/index.mdx create mode 100644 product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/01_updating_subscription_server.mdx create mode 100644 product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/02_updating_subscription_database.mdx create mode 100644 product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/03_updating_subscription.mdx create mode 100644 product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/04_enable_filters_on_subscription.mdx create mode 100644 product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/05_removing_subscription.mdx create mode 100644 product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/06_removing_subscription_database.mdx create mode 100644 product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/index.mdx create mode 100644 product_docs/docs/eprs/6.2/05_smr_operation/06_performing_switchover.mdx create mode 100644 product_docs/docs/eprs/6.2/05_smr_operation/07_performing_failover.mdx create mode 100644 product_docs/docs/eprs/6.2/05_smr_operation/08_optimizing_performance/01_optimizing_snapshot_replication.mdx create mode 100644 product_docs/docs/eprs/6.2/05_smr_operation/08_optimizing_performance/02_optimize_sync_replication/01_using_sql_statements.mdx create mode 100644 product_docs/docs/eprs/6.2/05_smr_operation/08_optimizing_performance/02_optimize_sync_replication/02_parallel_sync.mdx create mode 100644 product_docs/docs/eprs/6.2/05_smr_operation/08_optimizing_performance/02_optimize_sync_replication/03_other_sync_configuration.mdx create mode 100644 product_docs/docs/eprs/6.2/05_smr_operation/08_optimizing_performance/02_optimize_sync_replication/index.mdx create mode 100644 product_docs/docs/eprs/6.2/05_smr_operation/08_optimizing_performance/index.mdx create mode 100644 product_docs/docs/eprs/6.2/05_smr_operation/index.mdx create mode 100644 product_docs/docs/eprs/6.2/06_mmr_operation/01_pre_steps.mdx create mode 100644 product_docs/docs/eprs/6.2/06_mmr_operation/02_creating_publication_mmr.mdx create mode 100644 product_docs/docs/eprs/6.2/06_mmr_operation/03_creating_primary_nodes.mdx create mode 100644 product_docs/docs/eprs/6.2/06_mmr_operation/04_control_schema_created_in_primary_nodes.mdx create mode 100644 product_docs/docs/eprs/6.2/06_mmr_operation/05_on_demand_replication_mmr.mdx create mode 100644 product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/01_configuration_para_andtable_setting.mdx create mode 100644 product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/02_conflict_types.mdx create mode 100644 product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/03_conflict_detection.mdx create mode 100644 product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/04_conflict_resolution_strategies.mdx create mode 100644 product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/05_conflict_prevention_uniquness.mdx create mode 100644 product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/01_create_mmr_ready_sequence.mdx create mode 100644 product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/02_mmr_ready_example.mdx create mode 100644 product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/03_convert_to_mmr_ready.mdx create mode 100644 product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/04_convert_to_mmr_ready_eg.mdx create mode 100644 product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/index.mdx create mode 100644 product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/07_auto_conflict_resolution_eg.mdx create mode 100644 product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/08_custom_conflict_handling/01_custom_conflict_handling_function.mdx create mode 100644 product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/08_custom_conflict_handling/02_adding_custom_conflict_handling_function.mdx create mode 100644 product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/08_custom_conflict_handling/03_custom_conflict_handling_examples.mdx create mode 100644 product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/08_custom_conflict_handling/index.mdx create mode 100644 product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/01_find_conflict.mdx create mode 100644 product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/02_conflict_resolution_prep.mdx create mode 100644 product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/03_overview_correction_strategies.mdx create mode 100644 product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/04_manual_publication_table_correction.mdx create mode 100644 product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/05_correction_using_new_txn.mdx create mode 100644 product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/06_correction_using_shadow_table_txn.mdx create mode 100644 product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/index.mdx create mode 100644 product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/01_finding_conflict.mdx create mode 100644 product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/02_conflict_resolution_for_log_based.mdx create mode 100644 product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/03_overview_correction_strategies_log_based.mdx create mode 100644 product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/04_manual_publication_table_correction_log_based.mdx create mode 100644 product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/05_correction_using_new_txn_log_based.mdx create mode 100644 product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/index.mdx create mode 100644 product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/index.mdx create mode 100644 product_docs/docs/eprs/6.2/06_mmr_operation/07_view_conflict_history.mdx create mode 100644 product_docs/docs/eprs/6.2/06_mmr_operation/08_update_conflict_resolution_options.mdx create mode 100644 product_docs/docs/eprs/6.2/06_mmr_operation/09_enable_disable_table_filters.mdx create mode 100644 product_docs/docs/eprs/6.2/06_mmr_operation/10_switching_pdn.mdx create mode 100644 product_docs/docs/eprs/6.2/06_mmr_operation/11_ensuring_ha.mdx create mode 100644 product_docs/docs/eprs/6.2/06_mmr_operation/12_optimizing_performance_mmr.mdx create mode 100644 product_docs/docs/eprs/6.2/06_mmr_operation/index.mdx create mode 100644 product_docs/docs/eprs/6.2/07_common_operations/01_select_tables_wildcard_selector.mdx create mode 100644 product_docs/docs/eprs/6.2/07_common_operations/02_creating_schedule.mdx create mode 100644 product_docs/docs/eprs/6.2/07_common_operations/03_managing_schedule.mdx create mode 100644 product_docs/docs/eprs/6.2/07_common_operations/04_view_replication_history.mdx create mode 100644 product_docs/docs/eprs/6.2/07_common_operations/05_managing_history.mdx create mode 100644 product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/01_updating_publication_server.mdx create mode 100644 product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/02_updating_pub_database.mdx create mode 100644 product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/03_updating_pub.mdx create mode 100644 product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/04_updating_table_filters_in_pub.mdx create mode 100644 product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/05_validating_publication.mdx create mode 100644 product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/06_removing_pub.mdx create mode 100644 product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/07_removing_pub_database.mdx create mode 100644 product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/index.mdx create mode 100644 product_docs/docs/eprs/6.2/07_common_operations/07_switching_controller_db.mdx create mode 100644 product_docs/docs/eprs/6.2/07_common_operations/08_replicating_ddl_changes/01_ddl_change_replication.mdx create mode 100644 product_docs/docs/eprs/6.2/07_common_operations/08_replicating_ddl_changes/02_ddl_change_replication_using_xdb_console.mdx create mode 100644 product_docs/docs/eprs/6.2/07_common_operations/08_replicating_ddl_changes/index.mdx create mode 100644 product_docs/docs/eprs/6.2/07_common_operations/09_offline_snapshot.mdx create mode 100644 product_docs/docs/eprs/6.2/07_common_operations/10_replicating_postgres_partitioned_tables.mdx create mode 100644 product_docs/docs/eprs/6.2/07_common_operations/11_using_ssl_connections.mdx create mode 100644 product_docs/docs/eprs/6.2/07_common_operations/index.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/01_prereq_steps.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/02_general_use.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/01_get_help.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/02_print_version.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/03_print_xdb_server_version.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/04_encrypt_password.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/05_printing_server_uptime.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/06_add_pub_database.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/07_printing_pub_db_id.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/08_printing_pub_db_details.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/09_printing_controller_db_id.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/10_printing_pdn_node_db_id.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/11_updating_publication_database.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/12_removing_publication_database.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/13_get_tables_for_new_publication.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/14_creating_publication_cli.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/15_print_publications_list.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/16_print_publications_tables_list.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/17_print_publications_filters_list.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/18_adding_tables_to_publication.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/19_removing_tables_from_publication.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/20_adding_tablefilters_to_publication.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/21_updating_tablefilters_to_publication.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/22_removing_tablefilters_to_publication.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/23_print_conflict_resolution_strategy.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/24_updating_conflict_resolution_strategy.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/25_set_pdn_node.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/26_set_controller.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/27_validate_a_publication.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/28_validate_all_publications.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/29_removing_a_publication.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/30_replicating_ddl_changes_cli.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/31_adding_subscription_db.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/32_printing_subscription_db_id.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/33_printing_subscription_db_details.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/34_updating_subscription_database_cli.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/35_removing_subscription_database_cli.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/36_creating_subscription_cli.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/37_print_subscription_list.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/38_enable_filters_on_subscription_or_non_pdn_node.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/39_disable_filters_on_subscription_or_non_pdn_node.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/40_taking_smr_snapshot.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/41_taking_mmr_snapshot.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/42_perform_synchronization.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/43_configure_smr_schedule.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/44_configure_mmr_schedule.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/45_print_schedule.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/46_updating_subscription_cli.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/47_removing_subscription_cli.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/48_schedule_shadow_table_history_clean.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/49_clean_shadow_table_history.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/50_clean_replication_history.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/51_clean_all_replication_history.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/index.mdx create mode 100644 product_docs/docs/eprs/6.2/08_xdb_cli/index.mdx create mode 100644 product_docs/docs/eprs/6.2/09_data_validator/01_installation_and_configuratiin_datavalidator.mdx create mode 100644 product_docs/docs/eprs/6.2/09_data_validator/02_perform_datavalidation.mdx create mode 100644 product_docs/docs/eprs/6.2/09_data_validator/index.mdx create mode 100644 product_docs/docs/eprs/6.2/10_appendix/01_permitted_conf_and_permutations.mdx create mode 100644 product_docs/docs/eprs/6.2/10_appendix/02_upgrading_to_xdb6_2/01_permitted_conf_and_permutations.mdx create mode 100644 product_docs/docs/eprs/6.2/10_appendix/02_upgrading_to_xdb6_2/02_upgrading_with_gui_installer.mdx create mode 100644 product_docs/docs/eprs/6.2/10_appendix/02_upgrading_to_xdb6_2/03_upgrading_with_xdb_rpm_package.mdx create mode 100644 product_docs/docs/eprs/6.2/10_appendix/02_upgrading_to_xdb6_2/04_updating_sub_and_pub_ports.mdx create mode 100644 product_docs/docs/eprs/6.2/10_appendix/02_upgrading_to_xdb6_2/index.mdx create mode 100644 product_docs/docs/eprs/6.2/10_appendix/03_resolving_problems/01_error_messages.mdx create mode 100644 product_docs/docs/eprs/6.2/10_appendix/03_resolving_problems/02_where_to_look_for_errors.mdx create mode 100644 product_docs/docs/eprs/6.2/10_appendix/03_resolving_problems/03_common_problems_checklist.mdx create mode 100644 product_docs/docs/eprs/6.2/10_appendix/03_resolving_problems/04_troubleshooting_areas.mdx create mode 100644 product_docs/docs/eprs/6.2/10_appendix/03_resolving_problems/index.mdx create mode 100644 product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/01_controlling_logging_level.mdx create mode 100644 product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/02_replacing_null_characters.mdx create mode 100644 product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/03_schema_migration_options.mdx create mode 100644 product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/04_replicate_oracle_partitioned_tables.mdx create mode 100644 product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/05_specify_custom_url_for_oracle_jdbc.mdx create mode 100644 product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/06_snapshot_replication_options.mdx create mode 100644 product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/07_assign_ip_adress_for_rmi.mdx create mode 100644 product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/08_using_pgagent_job_scheduling.mdx create mode 100644 product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/09_forcing_shadow_table_cleanup.mdx create mode 100644 product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/10_setting_event_history_cleanup.mdx create mode 100644 product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/11_ddl_change_replication_table_locking.mdx create mode 100644 product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/12_persisting_zero_txn_replication_hist.mdx create mode 100644 product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/13_skipping_grants_of_table_level_user_privileges_on_mmr.mdx create mode 100644 product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/14_applying_grants_of_table_level_user_privileges_on_smr.mdx create mode 100644 product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/15_log_based_sync_options.mdx create mode 100644 product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/16_setting_apache_dbcp_connection_validation_query.mdx create mode 100644 product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/index.mdx create mode 100644 product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/02_encrypt_password_inconf_file.mdx create mode 100644 product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/03_writing_cron_exp.mdx create mode 100644 product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/04_disable_foreign_key_constraints_for_snapshot_replication.mdx create mode 100644 product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/05_quoted_identifiers.mdx create mode 100644 product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/06_replicating_sql_server_sql_variant_data_type.mdx create mode 100644 product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/index.mdx create mode 100644 product_docs/docs/eprs/6.2/10_appendix/05_service_pack_maintenance.mdx create mode 100644 product_docs/docs/eprs/6.2/10_appendix/index.mdx create mode 100644 product_docs/docs/eprs/6.2/images/E.ico create mode 100755 product_docs/docs/eprs/6.2/images/PG_to_oracle.png create mode 100755 product_docs/docs/eprs/6.2/images/PG_to_oracle_sc.png create mode 100644 product_docs/docs/eprs/6.2/images/aws_instance.png create mode 100644 product_docs/docs/eprs/6.2/images/edb_logo.png create mode 100644 product_docs/docs/eprs/6.2/images/edb_logo.svg create mode 100644 product_docs/docs/eprs/6.2/images/efm_slot.png create mode 100644 product_docs/docs/eprs/6.2/images/efm_slot_old.png create mode 100755 product_docs/docs/eprs/6.2/images/google_security_settings.png create mode 100644 product_docs/docs/eprs/6.2/images/image10.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image10.png create mode 100644 product_docs/docs/eprs/6.2/images/image100.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image100.png create mode 100644 product_docs/docs/eprs/6.2/images/image101.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image101.png create mode 100644 product_docs/docs/eprs/6.2/images/image102.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image102.png create mode 100644 product_docs/docs/eprs/6.2/images/image103.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image103.png create mode 100644 product_docs/docs/eprs/6.2/images/image104.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image104.png create mode 100644 product_docs/docs/eprs/6.2/images/image105.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image105.png create mode 100644 product_docs/docs/eprs/6.2/images/image106.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image106.png create mode 100644 product_docs/docs/eprs/6.2/images/image107.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image107.png create mode 100644 product_docs/docs/eprs/6.2/images/image108.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image108.png create mode 100644 product_docs/docs/eprs/6.2/images/image109.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image109.png create mode 100644 product_docs/docs/eprs/6.2/images/image11.png create mode 100644 product_docs/docs/eprs/6.2/images/image110.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image110.png create mode 100644 product_docs/docs/eprs/6.2/images/image111.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image111.png create mode 100644 product_docs/docs/eprs/6.2/images/image112.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image112.png create mode 100644 product_docs/docs/eprs/6.2/images/image113.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image113.png create mode 100644 product_docs/docs/eprs/6.2/images/image114.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image114.png create mode 100644 product_docs/docs/eprs/6.2/images/image115.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image115.png create mode 100644 product_docs/docs/eprs/6.2/images/image116.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image116.png create mode 100644 product_docs/docs/eprs/6.2/images/image117.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image117.png create mode 100644 product_docs/docs/eprs/6.2/images/image118.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image118.png create mode 100644 product_docs/docs/eprs/6.2/images/image119.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image119.png create mode 100644 product_docs/docs/eprs/6.2/images/image12.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image12.png create mode 100644 product_docs/docs/eprs/6.2/images/image120.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image120.png create mode 100644 product_docs/docs/eprs/6.2/images/image121.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image121.png create mode 100644 product_docs/docs/eprs/6.2/images/image122.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image122.png create mode 100644 product_docs/docs/eprs/6.2/images/image123.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image123.png create mode 100644 product_docs/docs/eprs/6.2/images/image124.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image124.png create mode 100644 product_docs/docs/eprs/6.2/images/image125.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image125.png create mode 100644 product_docs/docs/eprs/6.2/images/image126.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image126.png create mode 100644 product_docs/docs/eprs/6.2/images/image127.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image127.png create mode 100644 product_docs/docs/eprs/6.2/images/image128.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image128.png create mode 100644 product_docs/docs/eprs/6.2/images/image129.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image129.png create mode 100644 product_docs/docs/eprs/6.2/images/image13.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image13.png create mode 100644 product_docs/docs/eprs/6.2/images/image130.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image130.png create mode 100644 product_docs/docs/eprs/6.2/images/image131.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image131.png create mode 100644 product_docs/docs/eprs/6.2/images/image132.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image132.png create mode 100644 product_docs/docs/eprs/6.2/images/image133.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image133.png create mode 100644 product_docs/docs/eprs/6.2/images/image134.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image134.png create mode 100644 product_docs/docs/eprs/6.2/images/image135.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image135.png create mode 100644 product_docs/docs/eprs/6.2/images/image136.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image136.png create mode 100644 product_docs/docs/eprs/6.2/images/image137.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image137.png create mode 100644 product_docs/docs/eprs/6.2/images/image138.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image138.png create mode 100644 product_docs/docs/eprs/6.2/images/image139.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image139.png create mode 100644 product_docs/docs/eprs/6.2/images/image14.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image14.png create mode 100644 product_docs/docs/eprs/6.2/images/image140.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image140.png create mode 100644 product_docs/docs/eprs/6.2/images/image141.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image141.png create mode 100644 product_docs/docs/eprs/6.2/images/image142.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image142.png create mode 100644 product_docs/docs/eprs/6.2/images/image143.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image143.png create mode 100644 product_docs/docs/eprs/6.2/images/image144.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image144.png create mode 100644 product_docs/docs/eprs/6.2/images/image145.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image145.png create mode 100644 product_docs/docs/eprs/6.2/images/image146.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image146.png create mode 100644 product_docs/docs/eprs/6.2/images/image147.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image147.png create mode 100644 product_docs/docs/eprs/6.2/images/image148.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image148.png create mode 100644 product_docs/docs/eprs/6.2/images/image149.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image149.png create mode 100644 product_docs/docs/eprs/6.2/images/image15.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image15.png create mode 100644 product_docs/docs/eprs/6.2/images/image150.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image150.png create mode 100644 product_docs/docs/eprs/6.2/images/image151.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image151.png create mode 100644 product_docs/docs/eprs/6.2/images/image152.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image152.png create mode 100644 product_docs/docs/eprs/6.2/images/image153.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image153.png create mode 100644 product_docs/docs/eprs/6.2/images/image154.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image154.png create mode 100644 product_docs/docs/eprs/6.2/images/image155.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image155.png create mode 100644 product_docs/docs/eprs/6.2/images/image156.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image156.png create mode 100644 product_docs/docs/eprs/6.2/images/image157.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image157.png create mode 100644 product_docs/docs/eprs/6.2/images/image158.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image158.png create mode 100644 product_docs/docs/eprs/6.2/images/image159.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image159.png create mode 100644 product_docs/docs/eprs/6.2/images/image16.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image16.png create mode 100644 product_docs/docs/eprs/6.2/images/image160.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image160.png create mode 100644 product_docs/docs/eprs/6.2/images/image161.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image161.png create mode 100644 product_docs/docs/eprs/6.2/images/image162.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image162.png create mode 100644 product_docs/docs/eprs/6.2/images/image163.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image163.png create mode 100644 product_docs/docs/eprs/6.2/images/image164.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image164.png create mode 100644 product_docs/docs/eprs/6.2/images/image165.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image165.png create mode 100644 product_docs/docs/eprs/6.2/images/image166.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image166.png create mode 100644 product_docs/docs/eprs/6.2/images/image167.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image167.png create mode 100644 product_docs/docs/eprs/6.2/images/image168.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image168.png create mode 100644 product_docs/docs/eprs/6.2/images/image169.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image169.png create mode 100644 product_docs/docs/eprs/6.2/images/image17.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image17.png create mode 100644 product_docs/docs/eprs/6.2/images/image170.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image170.png create mode 100644 product_docs/docs/eprs/6.2/images/image171.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image171.png create mode 100644 product_docs/docs/eprs/6.2/images/image172.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image172.png create mode 100644 product_docs/docs/eprs/6.2/images/image173.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image173.png create mode 100644 product_docs/docs/eprs/6.2/images/image174.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image174.png create mode 100644 product_docs/docs/eprs/6.2/images/image175.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image175.png create mode 100644 product_docs/docs/eprs/6.2/images/image176.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image176.png create mode 100644 product_docs/docs/eprs/6.2/images/image177.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image177.png create mode 100644 product_docs/docs/eprs/6.2/images/image178.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image178.png create mode 100644 product_docs/docs/eprs/6.2/images/image179.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image179.png create mode 100644 product_docs/docs/eprs/6.2/images/image18.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image18.png create mode 100644 product_docs/docs/eprs/6.2/images/image180.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image180.png create mode 100644 product_docs/docs/eprs/6.2/images/image181.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image181.png create mode 100644 product_docs/docs/eprs/6.2/images/image182.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image182.png create mode 100644 product_docs/docs/eprs/6.2/images/image183.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image183.png create mode 100644 product_docs/docs/eprs/6.2/images/image184.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image184.png create mode 100644 product_docs/docs/eprs/6.2/images/image185.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image185.png create mode 100644 product_docs/docs/eprs/6.2/images/image186.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image186.png create mode 100644 product_docs/docs/eprs/6.2/images/image187.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image187.png create mode 100644 product_docs/docs/eprs/6.2/images/image188.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image188.png create mode 100644 product_docs/docs/eprs/6.2/images/image189.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image189.png create mode 100644 product_docs/docs/eprs/6.2/images/image19.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image19.png create mode 100644 product_docs/docs/eprs/6.2/images/image190.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image190.png create mode 100644 product_docs/docs/eprs/6.2/images/image191.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image191.png create mode 100644 product_docs/docs/eprs/6.2/images/image192.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image192.png create mode 100644 product_docs/docs/eprs/6.2/images/image193.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image193.png create mode 100644 product_docs/docs/eprs/6.2/images/image194.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image194.png create mode 100644 product_docs/docs/eprs/6.2/images/image195.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image195.png create mode 100644 product_docs/docs/eprs/6.2/images/image196.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image196.png create mode 100644 product_docs/docs/eprs/6.2/images/image197.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image197.png create mode 100644 product_docs/docs/eprs/6.2/images/image198.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image198.png create mode 100644 product_docs/docs/eprs/6.2/images/image199.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image199.png create mode 100644 product_docs/docs/eprs/6.2/images/image2.png create mode 100644 product_docs/docs/eprs/6.2/images/image20.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image20.png create mode 100644 product_docs/docs/eprs/6.2/images/image200.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image200.png create mode 100644 product_docs/docs/eprs/6.2/images/image201.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image201.png create mode 100644 product_docs/docs/eprs/6.2/images/image202.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image202.png create mode 100644 product_docs/docs/eprs/6.2/images/image203.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image203.png create mode 100644 product_docs/docs/eprs/6.2/images/image204.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image204.png create mode 100644 product_docs/docs/eprs/6.2/images/image205.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image205.png create mode 100644 product_docs/docs/eprs/6.2/images/image206.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image206.png create mode 100644 product_docs/docs/eprs/6.2/images/image207.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image207.png create mode 100644 product_docs/docs/eprs/6.2/images/image208.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image208.png create mode 100644 product_docs/docs/eprs/6.2/images/image209.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image209.png create mode 100644 product_docs/docs/eprs/6.2/images/image21.png create mode 100644 product_docs/docs/eprs/6.2/images/image210.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image210.png create mode 100644 product_docs/docs/eprs/6.2/images/image211.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image211.png create mode 100644 product_docs/docs/eprs/6.2/images/image212.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image212.png create mode 100644 product_docs/docs/eprs/6.2/images/image213.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image213.png create mode 100644 product_docs/docs/eprs/6.2/images/image214.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image214.png create mode 100644 product_docs/docs/eprs/6.2/images/image215.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image215.png create mode 100644 product_docs/docs/eprs/6.2/images/image216.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image216.png create mode 100644 product_docs/docs/eprs/6.2/images/image217.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image217.png create mode 100644 product_docs/docs/eprs/6.2/images/image218.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image218.png create mode 100644 product_docs/docs/eprs/6.2/images/image219.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image219.png create mode 100644 product_docs/docs/eprs/6.2/images/image22.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image22.png create mode 100644 product_docs/docs/eprs/6.2/images/image220.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image220.png create mode 100644 product_docs/docs/eprs/6.2/images/image221.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image221.png create mode 100644 product_docs/docs/eprs/6.2/images/image222.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image222.png create mode 100644 product_docs/docs/eprs/6.2/images/image223.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image223.png create mode 100644 product_docs/docs/eprs/6.2/images/image224.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image224.png create mode 100644 product_docs/docs/eprs/6.2/images/image225.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image225.png create mode 100644 product_docs/docs/eprs/6.2/images/image226.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image226.png create mode 100644 product_docs/docs/eprs/6.2/images/image227.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image227.png create mode 100644 product_docs/docs/eprs/6.2/images/image228.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image228.png create mode 100644 product_docs/docs/eprs/6.2/images/image229.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image229.png create mode 100644 product_docs/docs/eprs/6.2/images/image23.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image23.png create mode 100644 product_docs/docs/eprs/6.2/images/image230.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image230.png create mode 100644 product_docs/docs/eprs/6.2/images/image231.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image231.png create mode 100644 product_docs/docs/eprs/6.2/images/image232.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image232.png create mode 100644 product_docs/docs/eprs/6.2/images/image233.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image233.png create mode 100644 product_docs/docs/eprs/6.2/images/image234.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image234.png create mode 100644 product_docs/docs/eprs/6.2/images/image235.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image235.png create mode 100644 product_docs/docs/eprs/6.2/images/image236.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image236.png create mode 100644 product_docs/docs/eprs/6.2/images/image237.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image237.png create mode 100644 product_docs/docs/eprs/6.2/images/image238.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image238.png create mode 100644 product_docs/docs/eprs/6.2/images/image239.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image239.png create mode 100644 product_docs/docs/eprs/6.2/images/image24.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image24.png create mode 100644 product_docs/docs/eprs/6.2/images/image240.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image240.png create mode 100644 product_docs/docs/eprs/6.2/images/image241.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image241.png create mode 100644 product_docs/docs/eprs/6.2/images/image242.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image242.png create mode 100644 product_docs/docs/eprs/6.2/images/image243.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image243.png create mode 100644 product_docs/docs/eprs/6.2/images/image244.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image244.png create mode 100644 product_docs/docs/eprs/6.2/images/image245.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image245.png create mode 100644 product_docs/docs/eprs/6.2/images/image246.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image246.png create mode 100644 product_docs/docs/eprs/6.2/images/image247.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image247.png create mode 100644 product_docs/docs/eprs/6.2/images/image248.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image248.png create mode 100644 product_docs/docs/eprs/6.2/images/image249.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image249.png create mode 100644 product_docs/docs/eprs/6.2/images/image25.png create mode 100644 product_docs/docs/eprs/6.2/images/image250.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image250.png create mode 100644 product_docs/docs/eprs/6.2/images/image251.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image251.png create mode 100644 product_docs/docs/eprs/6.2/images/image252.jpeg create mode 100644 product_docs/docs/eprs/6.2/images/image252.png create mode 100644 product_docs/docs/eprs/6.2/images/image253.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image253.png create mode 100644 product_docs/docs/eprs/6.2/images/image254.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image254.png create mode 100644 product_docs/docs/eprs/6.2/images/image255.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image255.png create mode 100644 product_docs/docs/eprs/6.2/images/image256.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image256.png create mode 100644 product_docs/docs/eprs/6.2/images/image257.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image257.png create mode 100644 product_docs/docs/eprs/6.2/images/image258.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image258.png create mode 100644 product_docs/docs/eprs/6.2/images/image259.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image259.png create mode 100644 product_docs/docs/eprs/6.2/images/image26.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image26.png create mode 100644 product_docs/docs/eprs/6.2/images/image260.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image260.png create mode 100644 product_docs/docs/eprs/6.2/images/image261.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image261.png create mode 100644 product_docs/docs/eprs/6.2/images/image262.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image262.png create mode 100644 product_docs/docs/eprs/6.2/images/image263.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image263.png create mode 100644 product_docs/docs/eprs/6.2/images/image264.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image264.png create mode 100644 product_docs/docs/eprs/6.2/images/image265.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image265.png create mode 100644 product_docs/docs/eprs/6.2/images/image266.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image266.png create mode 100644 product_docs/docs/eprs/6.2/images/image267.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image267.png create mode 100644 product_docs/docs/eprs/6.2/images/image268.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image268.png create mode 100644 product_docs/docs/eprs/6.2/images/image269.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image269.png create mode 100644 product_docs/docs/eprs/6.2/images/image27.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image27.png create mode 100644 product_docs/docs/eprs/6.2/images/image270.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image270.png create mode 100644 product_docs/docs/eprs/6.2/images/image271.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image271.png create mode 100644 product_docs/docs/eprs/6.2/images/image272.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image272.png create mode 100644 product_docs/docs/eprs/6.2/images/image273.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image273.png create mode 100644 product_docs/docs/eprs/6.2/images/image274.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image274.png create mode 100644 product_docs/docs/eprs/6.2/images/image275.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image275.png create mode 100644 product_docs/docs/eprs/6.2/images/image276.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image276.png create mode 100644 product_docs/docs/eprs/6.2/images/image277.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image277.png create mode 100644 product_docs/docs/eprs/6.2/images/image278.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image278.png create mode 100644 product_docs/docs/eprs/6.2/images/image279.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image279.png create mode 100644 product_docs/docs/eprs/6.2/images/image28.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image28.png create mode 100644 product_docs/docs/eprs/6.2/images/image280.jpeg create mode 100644 product_docs/docs/eprs/6.2/images/image280.png create mode 100644 product_docs/docs/eprs/6.2/images/image281.jpeg create mode 100644 product_docs/docs/eprs/6.2/images/image281.png create mode 100644 product_docs/docs/eprs/6.2/images/image282.jpeg create mode 100644 product_docs/docs/eprs/6.2/images/image282.png create mode 100644 product_docs/docs/eprs/6.2/images/image283.jpeg create mode 100644 product_docs/docs/eprs/6.2/images/image283.png create mode 100644 product_docs/docs/eprs/6.2/images/image284.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image284.png create mode 100644 product_docs/docs/eprs/6.2/images/image285.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image285.png create mode 100644 product_docs/docs/eprs/6.2/images/image286.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image286.png create mode 100644 product_docs/docs/eprs/6.2/images/image287.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image287.png create mode 100644 product_docs/docs/eprs/6.2/images/image288.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image288.png create mode 100644 product_docs/docs/eprs/6.2/images/image289.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image289.png create mode 100644 product_docs/docs/eprs/6.2/images/image29.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image29.png create mode 100644 product_docs/docs/eprs/6.2/images/image290.jpeg create mode 100644 product_docs/docs/eprs/6.2/images/image290.png create mode 100644 product_docs/docs/eprs/6.2/images/image291.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image291.png create mode 100644 product_docs/docs/eprs/6.2/images/image292.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image292.png create mode 100644 product_docs/docs/eprs/6.2/images/image293.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image293.png create mode 100644 product_docs/docs/eprs/6.2/images/image294.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image294.png create mode 100644 product_docs/docs/eprs/6.2/images/image295.jpeg create mode 100644 product_docs/docs/eprs/6.2/images/image295.png create mode 100644 product_docs/docs/eprs/6.2/images/image296.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image296.png create mode 100644 product_docs/docs/eprs/6.2/images/image297.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image297.png create mode 100644 product_docs/docs/eprs/6.2/images/image298.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image298.png create mode 100644 product_docs/docs/eprs/6.2/images/image299.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image299.png create mode 100644 product_docs/docs/eprs/6.2/images/image3.jpeg create mode 100644 product_docs/docs/eprs/6.2/images/image3.png create mode 100644 product_docs/docs/eprs/6.2/images/image30.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image30.png create mode 100644 product_docs/docs/eprs/6.2/images/image31.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image31.png create mode 100644 product_docs/docs/eprs/6.2/images/image32.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image32.png create mode 100644 product_docs/docs/eprs/6.2/images/image33.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image33.png create mode 100644 product_docs/docs/eprs/6.2/images/image34.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image34.png create mode 100644 product_docs/docs/eprs/6.2/images/image35.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image35.png create mode 100644 product_docs/docs/eprs/6.2/images/image36.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image36.png create mode 100644 product_docs/docs/eprs/6.2/images/image37.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image37.png create mode 100644 product_docs/docs/eprs/6.2/images/image38.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image38.png create mode 100644 product_docs/docs/eprs/6.2/images/image39.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image39.png create mode 100644 product_docs/docs/eprs/6.2/images/image4.jpeg create mode 100644 product_docs/docs/eprs/6.2/images/image4.png create mode 100644 product_docs/docs/eprs/6.2/images/image40.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image40.png create mode 100644 product_docs/docs/eprs/6.2/images/image41.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image41.png create mode 100644 product_docs/docs/eprs/6.2/images/image42.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image42.png create mode 100644 product_docs/docs/eprs/6.2/images/image43.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image43.png create mode 100644 product_docs/docs/eprs/6.2/images/image44.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image44.png create mode 100644 product_docs/docs/eprs/6.2/images/image45.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image45.png create mode 100644 product_docs/docs/eprs/6.2/images/image46.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image46.png create mode 100644 product_docs/docs/eprs/6.2/images/image47.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image47.png create mode 100644 product_docs/docs/eprs/6.2/images/image48.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image48.png create mode 100644 product_docs/docs/eprs/6.2/images/image49.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image49.png create mode 100644 product_docs/docs/eprs/6.2/images/image5.jpeg create mode 100644 product_docs/docs/eprs/6.2/images/image5.png create mode 100644 product_docs/docs/eprs/6.2/images/image50.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image50.png create mode 100644 product_docs/docs/eprs/6.2/images/image51.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image51.png create mode 100644 product_docs/docs/eprs/6.2/images/image52.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image52.png create mode 100644 product_docs/docs/eprs/6.2/images/image53.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image53.png create mode 100644 product_docs/docs/eprs/6.2/images/image54.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image54.png create mode 100644 product_docs/docs/eprs/6.2/images/image55.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image55.png create mode 100644 product_docs/docs/eprs/6.2/images/image56.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image56.png create mode 100644 product_docs/docs/eprs/6.2/images/image57.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image57.png create mode 100644 product_docs/docs/eprs/6.2/images/image58.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image58.png create mode 100644 product_docs/docs/eprs/6.2/images/image59.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image59.png create mode 100644 product_docs/docs/eprs/6.2/images/image6.jpeg create mode 100644 product_docs/docs/eprs/6.2/images/image6.png create mode 100644 product_docs/docs/eprs/6.2/images/image60.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image60.png create mode 100644 product_docs/docs/eprs/6.2/images/image61.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image61.png create mode 100644 product_docs/docs/eprs/6.2/images/image62.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image62.png create mode 100644 product_docs/docs/eprs/6.2/images/image63.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image63.png create mode 100644 product_docs/docs/eprs/6.2/images/image64.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image64.png create mode 100644 product_docs/docs/eprs/6.2/images/image65.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image65.png create mode 100644 product_docs/docs/eprs/6.2/images/image66.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image66.png create mode 100644 product_docs/docs/eprs/6.2/images/image67.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image67.png create mode 100644 product_docs/docs/eprs/6.2/images/image68.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image68.png create mode 100644 product_docs/docs/eprs/6.2/images/image69.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image69.png create mode 100644 product_docs/docs/eprs/6.2/images/image7.jpeg create mode 100644 product_docs/docs/eprs/6.2/images/image7.png create mode 100644 product_docs/docs/eprs/6.2/images/image70.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image70.png create mode 100644 product_docs/docs/eprs/6.2/images/image71.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image71.png create mode 100644 product_docs/docs/eprs/6.2/images/image72.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image72.png create mode 100644 product_docs/docs/eprs/6.2/images/image73.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image73.png create mode 100644 product_docs/docs/eprs/6.2/images/image74.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image74.png create mode 100644 product_docs/docs/eprs/6.2/images/image75.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image75.png create mode 100644 product_docs/docs/eprs/6.2/images/image76.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image76.png create mode 100644 product_docs/docs/eprs/6.2/images/image77.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image77.png create mode 100644 product_docs/docs/eprs/6.2/images/image78.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image78.png create mode 100644 product_docs/docs/eprs/6.2/images/image79.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image79.png create mode 100644 product_docs/docs/eprs/6.2/images/image8.png create mode 100644 product_docs/docs/eprs/6.2/images/image80.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image80.png create mode 100644 product_docs/docs/eprs/6.2/images/image81.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image81.png create mode 100644 product_docs/docs/eprs/6.2/images/image82.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image82.png create mode 100644 product_docs/docs/eprs/6.2/images/image83.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image83.png create mode 100644 product_docs/docs/eprs/6.2/images/image84.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image84.png create mode 100644 product_docs/docs/eprs/6.2/images/image85.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image85.png create mode 100644 product_docs/docs/eprs/6.2/images/image86.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image86.png create mode 100644 product_docs/docs/eprs/6.2/images/image87.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image87.png create mode 100644 product_docs/docs/eprs/6.2/images/image88.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image88.png create mode 100644 product_docs/docs/eprs/6.2/images/image89.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image89.png create mode 100644 product_docs/docs/eprs/6.2/images/image9.png create mode 100644 product_docs/docs/eprs/6.2/images/image90.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image90.png create mode 100644 product_docs/docs/eprs/6.2/images/image91.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image91.png create mode 100644 product_docs/docs/eprs/6.2/images/image92.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image92.png create mode 100644 product_docs/docs/eprs/6.2/images/image93.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image93.png create mode 100644 product_docs/docs/eprs/6.2/images/image94.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image94.png create mode 100644 product_docs/docs/eprs/6.2/images/image95.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image95.png create mode 100644 product_docs/docs/eprs/6.2/images/image96.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image96.png create mode 100644 product_docs/docs/eprs/6.2/images/image97.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image97.png create mode 100644 product_docs/docs/eprs/6.2/images/image98.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image98.png create mode 100644 product_docs/docs/eprs/6.2/images/image99.jpg create mode 100644 product_docs/docs/eprs/6.2/images/image99.png create mode 100755 product_docs/docs/eprs/6.2/images/less_secure_apps.png create mode 100644 product_docs/docs/eprs/6.2/images/media/aws_instance.png create mode 100644 product_docs/docs/eprs/6.2/images/media/edb_logo.png create mode 100644 product_docs/docs/eprs/6.2/images/media/edb_logo.svg create mode 100644 product_docs/docs/eprs/6.2/images/media/efm_slot.png create mode 100644 product_docs/docs/eprs/6.2/images/media/efm_slot_old.png create mode 100755 product_docs/docs/eprs/6.2/images/media/google_security_settings.png create mode 100644 product_docs/docs/eprs/6.2/images/media/image10.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image100.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image101.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image102.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image103.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image104.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image105.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image106.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image107.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image108.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image109.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image11.png create mode 100644 product_docs/docs/eprs/6.2/images/media/image110.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image111.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image112.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image113.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image114.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image115.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image116.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image117.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image118.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image119.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image12.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image120.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image121.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image122.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image123.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image124.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image125.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image126.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image127.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image128.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image129.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image13.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image130.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image131.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image132.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image133.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image134.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image135.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image136.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image137.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image138.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image139.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image14.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image140.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image141.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image142.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image143.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image144.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image145.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image146.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image147.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image148.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image149.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image15.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image150.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image151.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image152.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image153.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image154.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image155.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image156.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image157.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image158.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image159.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image16.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image160.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image161.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image162.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image163.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image164.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image165.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image166.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image167.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image168.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image169.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image17.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image170.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image171.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image172.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image173.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image174.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image175.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image176.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image177.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image178.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image179.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image18.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image180.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image181.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image182.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image183.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image184.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image185.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image186.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image187.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image188.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image189.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image19.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image190.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image191.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image192.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image193.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image194.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image195.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image196.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image197.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image198.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image199.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image2.png create mode 100644 product_docs/docs/eprs/6.2/images/media/image20.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image200.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image201.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image202.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image203.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image204.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image205.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image206.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image207.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image208.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image209.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image21.png create mode 100644 product_docs/docs/eprs/6.2/images/media/image210.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image211.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image212.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image213.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image214.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image215.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image216.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image217.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image218.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image219.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image22.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image220.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image221.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image222.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image223.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image224.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image225.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image226.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image227.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image228.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image229.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image23.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image230.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image231.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image232.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image233.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image234.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image235.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image236.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image237.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image238.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image239.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image24.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image240.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image241.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image242.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image243.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image244.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image245.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image246.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image247.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image248.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image249.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image25.png create mode 100644 product_docs/docs/eprs/6.2/images/media/image250.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image251.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image252.jpeg create mode 100644 product_docs/docs/eprs/6.2/images/media/image253.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image254.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image255.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image256.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image257.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image258.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image259.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image26.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image260.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image261.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image262.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image263.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image264.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image265.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image266.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image267.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image268.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image269.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image27.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image270.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image271.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image272.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image273.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image274.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image275.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image276.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image277.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image278.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image279.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image28.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image280.jpeg create mode 100644 product_docs/docs/eprs/6.2/images/media/image281.jpeg create mode 100644 product_docs/docs/eprs/6.2/images/media/image282.jpeg create mode 100644 product_docs/docs/eprs/6.2/images/media/image283.jpeg create mode 100644 product_docs/docs/eprs/6.2/images/media/image284.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image285.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image286.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image287.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image288.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image289.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image29.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image290.jpeg create mode 100644 product_docs/docs/eprs/6.2/images/media/image291.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image292.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image293.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image294.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image295.jpeg create mode 100644 product_docs/docs/eprs/6.2/images/media/image296.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image297.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image298.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image299.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image3.jpeg create mode 100644 product_docs/docs/eprs/6.2/images/media/image3.png create mode 100644 product_docs/docs/eprs/6.2/images/media/image30.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image31.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image32.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image33.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image34.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image35.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image36.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image37.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image38.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image39.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image4.jpeg create mode 100644 product_docs/docs/eprs/6.2/images/media/image40.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image41.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image42.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image43.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image44.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image45.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image46.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image47.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image48.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image49.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image5.jpeg create mode 100644 product_docs/docs/eprs/6.2/images/media/image50.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image51.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image52.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image53.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image54.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image55.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image56.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image57.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image58.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image59.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image6.jpeg create mode 100644 product_docs/docs/eprs/6.2/images/media/image60.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image61.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image62.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image63.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image64.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image65.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image66.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image67.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image68.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image69.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image7.jpeg create mode 100644 product_docs/docs/eprs/6.2/images/media/image70.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image71.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image72.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image73.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image74.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image75.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image76.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image77.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image78.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image79.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image8.png create mode 100644 product_docs/docs/eprs/6.2/images/media/image80.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image81.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image82.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image83.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image84.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image85.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image86.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image87.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image88.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image89.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image9.png create mode 100644 product_docs/docs/eprs/6.2/images/media/image90.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image91.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image92.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image93.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image94.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image95.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image96.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image97.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image98.jpg create mode 100644 product_docs/docs/eprs/6.2/images/media/image99.jpg create mode 100755 product_docs/docs/eprs/6.2/images/media/less_secure_apps.png create mode 100755 product_docs/docs/eprs/6.2/images/media/security_group_inbound_traffic.1png create mode 100755 product_docs/docs/eprs/6.2/images/media/security_group_inbound_traffic.png create mode 100755 product_docs/docs/eprs/6.2/images/security_group_inbound_traffic.1png create mode 100755 product_docs/docs/eprs/6.2/images/security_group_inbound_traffic.png diff --git a/product_docs/docs/eprs/6.2/01_introduction/01_whats_new.mdx b/product_docs/docs/eprs/6.2/01_introduction/01_whats_new.mdx new file mode 100644 index 00000000000..4913c2425e2 --- /dev/null +++ b/product_docs/docs/eprs/6.2/01_introduction/01_whats_new.mdx @@ -0,0 +1,13 @@ +--- +title: "What’s New" +--- + + + + +The following features have been added to xDB Replication Server version 6.1 to create xDB Replication Server version 6.2: + +> - Registering your xDB Replication Server product with an EnterpriseDB product license key is no longer required. Thus, all components related to registering the product have been removed. The following are the removed components: 1) the Product Registration dialog box accessed from the xDB Replication Console Help menu, 2) the `license_key` parameter located in the xDB Replication Configuration file, and 3) the xDB Replication Server CLI `registerkey` command. +> - Partitioned tables created using the declarative partitioning feature of PostgreSQL and Advanced Server version 10 and later can now be replicated in a log-based single-master or multi-master replication system. For more information, see [Replicating Postgres Partitioned Tables](../07_common_operations/#replicating_postgres_partitioned_tables). +> - In a single-master replication system, removal of a table from a publication that has one or more existing subscriptions is now permitted as long as the table to be removed is not the parent referenced in a foreign key constraint from a child table that is not being removed as well. Previously, no tables from a publication in a single-master replication system could be removed if there are existing subscriptions. For more information, see [Removing Tables from a Publication](../07_common_operations/06_managing_publication/#remove_tables_from_pub). +> - Versions 11 and 12 of PostgreSQL and Advanced Server are now supported. diff --git a/product_docs/docs/eprs/6.2/01_introduction/02_conventions_used.mdx b/product_docs/docs/eprs/6.2/01_introduction/02_conventions_used.mdx new file mode 100644 index 00000000000..3ca963ffd2e --- /dev/null +++ b/product_docs/docs/eprs/6.2/01_introduction/02_conventions_used.mdx @@ -0,0 +1,12 @@ +--- +title: "Conventions Used in this Guide" +--- + + + + +The following is a list of other conventions used throughout this document. + +- This guide applies to both Linux and Windows systems. Directory paths are presented in the Linux format with forward slashes. When working on Windows systems, start the directory path with the drive letter followed by a colon and substitute back slashes for forward slashes. +- Much of the information in this document applies interchangeably to PostgreSQL and EDB Postgres Advanced Server. The term Postgres is used to generically refer to both PostgreSQL and Advanced Server. When a distinction needs to be made between these two database systems, the specific names, PostgreSQL or Advanced Server are used. +- The installation directory path of the PostgreSQL or Advanced Server products is referred to as `POSTGRES_INSTALL_HOME`. For PostgreSQL Linux installations, this defaults to `/opt/PostgreSQL/x.x` for version `10` and earlier. For later versions, use the PostgreSQL community packages. For PostgreSQL Windows installations, this defaults to `C:\Program Files\PostgreSQL\x.x`. For Advanced Server Linux installations accomplished using the interactive installer for version 10 and earlier, this defaults to `/opt/PostgresPlus/x.xAS or /opt/edb/asx.x`. For Advanced Server Linux installations accomplished using an RPM package, this defaults to `/usr/ppas-x.x or /usr/edb/asx.x`. For Advanced Server Windows installations, this defaults to `C:\Program Files\PostgresPlus\x.xAS` or `C:\Program Files\edb\asx.x`. The product version number is represented by `x.x` or by `xx` for version `10` and later. diff --git a/product_docs/docs/eprs/6.2/01_introduction/03_certified_supported_versions.mdx b/product_docs/docs/eprs/6.2/01_introduction/03_certified_supported_versions.mdx new file mode 100644 index 00000000000..bbcb9f6077d --- /dev/null +++ b/product_docs/docs/eprs/6.2/01_introduction/03_certified_supported_versions.mdx @@ -0,0 +1,22 @@ +--- +title: "Certified and Supported Product Versions" +--- + + + +The following database product versions may be used with xDB Replication Server: + +- PostgreSQL versions 9.6, 10, 11, 12, and 13 +- Advanced Server versions 9.6, 10, 11, 12, and 13 +- Oracle 10g Release 2 version 10.2.0.1.0 has been explicitly certified. Newer minor versions in the 10.2 line are supported as well. +- Oracle 11g Release 2 version 11.2.0.2.0 has been explicitly certified. Newer minor versions in the 11.2 line are supported as well. +- Oracle 12c version 12.1.0.2.0 has been explicitly certified. Newer minor versions in the 12.1 line are supported as well. +- SQL Server 2008 version 10.50.1617.0 has been explicitly certified. Newer minor versions in the 10.50 line are supported as well. +- SQL Server 2012 version 11.0.6020.0 has been explicitly certified. Newer minor versions in the 11.0 line are supported as well. +- SQL Server 2014 version 12.0.5000.0 has been explicitly certified. Newer minor versions in the 12.0 line are supported as well. + +Contact your EnterpriseDB Account Manager or if you require support for other platforms. + +**A Note Regarding Oracle RAC and Oracle Exadata** + +xDB Replication server has not been tested and is not officially supported for use with Oracle RAC and Exadata, but may work when connected to a single persistent node. To determine its ability to work with RAC or Exadata, please contact your EDB representative. diff --git a/product_docs/docs/eprs/6.2/01_introduction/04_supported_jdk_versions.mdx b/product_docs/docs/eprs/6.2/01_introduction/04_supported_jdk_versions.mdx new file mode 100644 index 00000000000..12500f1c95a --- /dev/null +++ b/product_docs/docs/eprs/6.2/01_introduction/04_supported_jdk_versions.mdx @@ -0,0 +1,23 @@ +--- +title: "Supported JDK Versions" +--- + + + +The xDB Replication Server is certified to work with the following Java platforms: + +
Certified Java Platforms
Operating SystemsJDK Versions

CentOS 7 and 8

  • Red Hat OpenJDK 7
  • Red Hat OpenJDK 8
PPCLE RHEL7

Red Hat OpenJDK 8

RHEL 7

  • Red Hat OpenJDK 7
  • Red Hat OpenJDK 8
  • Oracle JDK 7
  • Oracle JDK 8

Windows 2012 R2, 2016, and 2019

  • Red Hat OpenJDK 7
  • Red Hat OpenJDK 8
Debian 10

Red Hat OpenJDK 11

+ +**Certified Java Platforms** + +
+ +
+ +Note + +
+ +EDB Postgres Replication Server 6.2 is no longer supported on `CentOS/RHEL/OEL 6.x` platforms. It is strongly recommended that EDB products running on these platforms should be migrated to a supported platform. + +
diff --git a/product_docs/docs/eprs/6.2/01_introduction/index.mdx b/product_docs/docs/eprs/6.2/01_introduction/index.mdx new file mode 100644 index 00000000000..6e6d47c91ec --- /dev/null +++ b/product_docs/docs/eprs/6.2/01_introduction/index.mdx @@ -0,0 +1,63 @@ +--- +title: "Introduction" +--- + + + + +This document describes the installation, configuration, architecture, and operation of the EDB xDB Replication Server. EDB xDB (cross database) Replication Server (referred to hereafter as xDB Replication Server) is an asynchronous replication system available for PostgreSQL and for EDB Postgres Advanced Server. The latter will be referred to simply as Advanced Server. + +xDB Replication Server can be used to implement replication systems based on either of two different replication models – single-master (primary-to-secondary) replication or multi-master replication. + +Regardless of the chosen replication model, xDB Replication Server is extremely flexible and easy to use. + +For single-master replication, PostgreSQL, Advanced Server, Oracle, and Microsoft SQL Server are supported in an assortment of configurations (including cascading replication) allowing organizations to utilize it in multiple use cases with a variety of benefits. + +The following are some combinations of cross database replications that xDB Replication Server supports for single-master replication: + +- From Oracle to PostgreSQL +- From Oracle to Advanced Server +- From SQL Server to PostgreSQL +- From SQL Server to Advanced Server +- From Advanced Server to Oracle +- From PostgreSQL to SQL Server +- From Advanced Server to SQL Server +- Between PostgreSQL and Advanced Server +- From PostgreSQL to Oracle (WAL mode) +- From PostgreSQL to Oracle (trigger mode) + +
+ +
+ +Note + +
+ +Oracle Real Application Clusters (RAC) and Oracle Exadata are not supported by xDB Replication Server. These Oracle products have not been evaluated nor certified with xDB Replication Server. + +
+ +For multi-master replication, xDB Replication Server supports the following configurations: + +- Between PostgreSQL database servers +- Between PostgreSQL database servers and Advanced Servers in PostgreSQL compatible mode + +The reader is assumed to have basic SQL knowledge and basic Oracle, SQL Server, or PostgreSQL database administration skills (whichever are applicable) so that databases, users, schemas, and tables can be created and database object privileges assigned. + +- The remainder of Chapter 1 describes conventions used throughout this user’s guide along with suggested sections to read based upon your purpose for using this guide. +- Chapter [Overview](02_overview/#overview) provides an overview of xDB Replication Server including basic replication concepts and definitions, architecture and components of xDB Replication Server, and design guidelines for setting up a replication system. +- Chapter [Installation and Uninstallation](03_installation/#installation) gives instructions for installing and uninstalling xDB Replication Server. +- Chapter [Introduction to the xDB Replication Console](#intro_xdb_console) provides an overview of the xDB Replication Console, the graphical user interface for using xDB Replication Server. +- Chapter [Single-Master Replication Operation](05_smr_operation/#smr_operation) gives instructions for the configuration and operation of xDB Replication Server for single-master replication systems. +- Chapter [Multi-Master Replication Operation](06_mmr_operation/#mmr_operation) gives instructions for the configuration and operation of xDB Replication Server for multi-master replication systems. +- Chapter [Common Operations](07_common_operations/#common_operations) describes operations that are common to both single-master and multi-master replication systems. +- Chapter [xDB Replication Server Command Line Interface](08_xdb_cli/#xdb_cli) describes the xDB Replication Server Command Line Interface, an alternative to the graphical user interface for xDB Replication Server configuration and management. +- Chapter [Data Validator](09_data_validator/#data_validator) gives instructions for configuration and usage of the Data Validator. +- Chapter [Appendix](10_appendix/#appendix) is an appendix containing troubleshooting tips, a list of error messages, their causes and resolutions, permitted combinations of database servers in a replication system, xDB Replication Server product upgrade procedures, and other miscellaneous technical information. + +
+ +whats\_new conventions\_used certified\_supported\_versions supported\_jdk\_versions + +
diff --git a/product_docs/docs/eprs/6.2/02_overview/01_why_replication/01_offloading_reporting_and_bi_queries.mdx b/product_docs/docs/eprs/6.2/02_overview/01_why_replication/01_offloading_reporting_and_bi_queries.mdx new file mode 100644 index 00000000000..a25c1fc61f4 --- /dev/null +++ b/product_docs/docs/eprs/6.2/02_overview/01_why_replication/01_offloading_reporting_and_bi_queries.mdx @@ -0,0 +1,12 @@ +--- +title: "Offloading Reporting and Business Intelligence Queries" +--- + + + + +In this use case, users take all or just a subset of data from a production OLTP system and replicate it to another database whose sole purpose is to support reporting queries. This can have multiple benefits: + +1. Reporting loads are removed from the OLTP system, improving transaction processing performance. +2. Query performance improves as well without being subordinated to transactions on the system. +3. In Oracle installations, the reporting server duties can be handled by a product like Advanced Server reducing licensing costs for a reporting server. diff --git a/product_docs/docs/eprs/6.2/02_overview/01_why_replication/02_using_warm_standby.mdx b/product_docs/docs/eprs/6.2/02_overview/01_why_replication/02_using_warm_standby.mdx new file mode 100644 index 00000000000..c0c2c52a054 --- /dev/null +++ b/product_docs/docs/eprs/6.2/02_overview/01_why_replication/02_using_warm_standby.mdx @@ -0,0 +1,8 @@ +--- +title: "Using Warm Standby Servers" +--- + + + + +When many organizations wish to improve the availability of their data, a cost effective solution is often the use of warm standby servers. These are database servers kept up to date with the online system through replication that can be brought online quickly in the event of a failure in the production system. Warm standby servers can also be used for regular maintenance by gracefully switching over to the standby server so that the production server can be brought offline for regular maintenance. diff --git a/product_docs/docs/eprs/6.2/02_overview/01_why_replication/03_testing_systems_in_parallel.mdx b/product_docs/docs/eprs/6.2/02_overview/01_why_replication/03_testing_systems_in_parallel.mdx new file mode 100644 index 00000000000..9eeb14336af --- /dev/null +++ b/product_docs/docs/eprs/6.2/02_overview/01_why_replication/03_testing_systems_in_parallel.mdx @@ -0,0 +1,8 @@ +--- +title: "Testing Systems in Parallel" +--- + + + + +Often times, upgrading or moving to a new database system requires that the old and new systems be up and running in parallel to allow for testing and comparing results in real time. Replication can be employed in this use case and is frequently used in development and testing environments. diff --git a/product_docs/docs/eprs/6.2/02_overview/01_why_replication/04_migrating_data.mdx b/product_docs/docs/eprs/6.2/02_overview/01_why_replication/04_migrating_data.mdx new file mode 100644 index 00000000000..fd106d31d02 --- /dev/null +++ b/product_docs/docs/eprs/6.2/02_overview/01_why_replication/04_migrating_data.mdx @@ -0,0 +1,10 @@ +--- +title: "Migrating Data" +--- + + + + +Similar to running in parallel, is the situation where data may be migrated from one system to another in a sort of *seeding* operation. Replication can be very effective in this situation by quickly copying data. + +Some reasons to consider multi-master replication include the following: diff --git a/product_docs/docs/eprs/6.2/02_overview/01_why_replication/05_write_availability.mdx b/product_docs/docs/eprs/6.2/02_overview/01_why_replication/05_write_availability.mdx new file mode 100644 index 00000000000..727feb86af6 --- /dev/null +++ b/product_docs/docs/eprs/6.2/02_overview/01_why_replication/05_write_availability.mdx @@ -0,0 +1,8 @@ +--- +title: "Write Availability" +--- + + + + +In single-master replication, only the primary database is available for writes. The secondary databases are read-only for applications. If the replicated target databases must be available for write access as well, multi-master replication can be employed for the same use cases as outlined for single-master replication, but with the additional advantage of write access to the secondary. diff --git a/product_docs/docs/eprs/6.2/02_overview/01_why_replication/06_write_scalability.mdx b/product_docs/docs/eprs/6.2/02_overview/01_why_replication/06_write_scalability.mdx new file mode 100644 index 00000000000..fac4b9ac26c --- /dev/null +++ b/product_docs/docs/eprs/6.2/02_overview/01_why_replication/06_write_scalability.mdx @@ -0,0 +1,8 @@ +--- +title: "Write Scalability" +--- + + + + +In write-intensive applications, multi-master replication allows you to utilize multiple database servers on separate hosts to process write transactions independently of each other on their own primary databases. Changes can then be reconciled across primary databases according to your chosen schedule. diff --git a/product_docs/docs/eprs/6.2/02_overview/01_why_replication/07_localized_data_access.mdx b/product_docs/docs/eprs/6.2/02_overview/01_why_replication/07_localized_data_access.mdx new file mode 100644 index 00000000000..2d44a157a1b --- /dev/null +++ b/product_docs/docs/eprs/6.2/02_overview/01_why_replication/07_localized_data_access.mdx @@ -0,0 +1,8 @@ +--- +title: "Localized Data Access" +--- + + + + +In a geographically dispersed application, local access to the database can be provided to regions of clients. Having the database servers physically close to clients can reduce latency with the database. Multi-master replication allows you to employ a WAN connected network of primary databases that can be geographically close to groups of clients, yet maintain data consistency across primary databases. diff --git a/product_docs/docs/eprs/6.2/02_overview/01_why_replication/index.mdx b/product_docs/docs/eprs/6.2/02_overview/01_why_replication/index.mdx new file mode 100644 index 00000000000..bdfe0107ef3 --- /dev/null +++ b/product_docs/docs/eprs/6.2/02_overview/01_why_replication/index.mdx @@ -0,0 +1,16 @@ +--- +title: "Why Use Replication" +--- + + + + +Replication of data can be employed in a variety of use cases in organizations where it is important to use the same data in multiple settings. This allows users to work with ‘real’ data that will yield ‘real’ results that are reliable in more than one setting. Support of both single-master and multi-master replication gives xDB Replication Server a broad range of supported use cases. + +Some of the more popular uses of single-master replication include the following: + +
+ +offloading\_reporting\_and\_bi\_queries using\_warm\_standby testing\_systems\_in\_parallel migrating\_data write\_availability write\_scalability localized\_data\_access + +
diff --git a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/01_smr_mmr_comparison.mdx b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/01_smr_mmr_comparison.mdx new file mode 100644 index 00000000000..cb03b6d4cf5 --- /dev/null +++ b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/01_smr_mmr_comparison.mdx @@ -0,0 +1,40 @@ +--- +title: "Comparison of Single-Master and Multi-Master Replication" +--- + + + + +In write-intensive applications, multi-master replication allows you to utilize multiple database servers on separate hosts to process write transactions independently of each other on their own primary databases. Changes can then be reconciled across primary databases according to your chosen schedule. + +There are two models of replication systems supported by xDB Replication Server: + +- **Single-Master Replication (SMR).** Changes (inserts, updates, and deletions) to table rows are allowed to occur in a designated primary database. These changes are replicated to tables in one or more secondary databases. The replicated tables in the secondary databases are not permitted to accept any changes except from its designated primary database. (This is also known as primary-to-secondary replication.) +- **Multi-Master Replication (MMR).** Two or more databases are designated in which tables with the same table definitions and initial row sets are created. Changes (inserts, updates, and deletions) to table rows are allowed to occur in any database. Changes to table rows in any given database are replicated to their counterpart tables in every other database. + +For a single-master replication system, a variety of configurations are supported including: + +- Replication between PostgreSQL and Advanced Server databases (between products in either direction) +- Replication in either direction between Oracle and Advanced Server +- Replication in either direction between SQL Server and PostgreSQL +- Replication in either direction between SQL Server and Advanced Server +- Replication in either direction between PostgreSQL and Oracle + +For multi-master replication, the participating database servers in a given multi-master replication system must be of the same type: + +- PostgreSQL database servers +- PostgreSQL database servers and Advanced Servers operating in PostgreSQL compatible mode +- Advanced Servers operating in PostgreSQL compatible mode +- Advanced Servers operating in Oracle compatible mode + +
+ +
+ +Note + +
+ +A given database cannot simultaneously participate in both a single-master replication system and a multi-master replication system. + +
diff --git a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/02_publications_and_subscriptions.mdx b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/02_publications_and_subscriptions.mdx new file mode 100644 index 00000000000..f2fd31d5a95 --- /dev/null +++ b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/02_publications_and_subscriptions.mdx @@ -0,0 +1,58 @@ +--- +title: "Publications and Subscriptions" +--- + + + + +xDB Replication Server uses an architecture called *publish* and *subscribe*. The data to be made available for copying by a replication system is defined as a publication. To get a copy of that data, you must `subscribe` to that publication. The manner in which you subscribe is slightly different for single-master and multi-master replication systems. + +In xDB Replication Server a publication is defined as a named set of tables and views within a database. The database that contains the publication is called the publication database of that publication. + +In a single-master replication system, to get a copy of an xDB Replication Server publication, you must create a subscription. An xDB Replication Server subscription is a named association of a publication to a database to which the publication is to be copied. This database is called the subscription database. + +Similar to a single-master replication system, when creating a multi-master replication system, you first define a publication in the publication database. You then add one or more additional databases that you want to participate in this multi-master replication system. As you add each database, it is associated with this replication system. You do not create an explicit, named subscription in a multi-master replication system. + +In a single-master replication system, replication is said to occur when xDB Replication Server initiates and completes either of the following processes: + +1. applies changes that have been made to rows in the publication since the last replication occurred, to rows in tables of the subscription database (called synchronization); or +2. copies rows of the publication to empty tables of the subscription database (called a snapshot). See [Snapshot and Synchronization Overview](../../02_overview/02_replication_concepts_and_definitions/#snapshot_and_synchronous) for further discussion on snapshots and synchronization. + +The subscription tables are the tables in the subscription database created from corresponding tables or views in the publication. + +
+ +
+ +Note + +
+ +In a single-master replication system xDB Replication Server creates a table in the subscription database for each view contained in the publication. + +
+ +In a multi-master replication system, the concept and definition of replication is nearly identical to a single-master replication system with the following modifications: + +1. synchronization can occur between any pair of databases (referred to as primary nodes) participating in the replication system; +2. a snapshot can occur from the publication database designated as the Primary Definition Node to any of the other primary nodes. + +The following diagrams illustrate some basic single-master replication system examples. + +The preceding diagram illustrates that a table that has been created as a member of a subscription can be used in a publication replicating to another subscription. This scenario is called cascading replication. + +The following diagram illustrates a multi-master replication system with three primary nodes. + +![Publications in one database replicating to subscriptions in another database](/../../images/image3.png) + +![Publications replicating to two subscription databases](/../../images/image4.png) + +![*Publications in two databases replicating to one subscription database*](/../../images/image5.png) + +![*Cascading Replication: Tables used in both a subscription and a publication*](/../../images/image6.png) + +The preceding diagram illustrates that a table that has been created as a member of a subscription can be used in a publication replicating to another subscription. This scenario is called cascading replication. + +The following diagram illustrates a multi-master replication system with three primary nodes. + +![*Multi-master replication system*](/../../images/image7.png) diff --git a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/03_smr_replication.mdx b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/03_smr_replication.mdx new file mode 100644 index 00000000000..5609c885bc6 --- /dev/null +++ b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/03_smr_replication.mdx @@ -0,0 +1,14 @@ +--- +title: "Single-Master (Primary-to-secondary) Replication" +--- + + + + +xDB Replication Server performs primary-to-secondary replication when a single-master replication system is implemented. The publication is the master and the subscription is the secondary. In a primary-to-secondary relationship, changes are propagated in one direction only, from the master to the secondary. + +Generally, changes must not be made to the definitions of the publication tables or the subscription tables. If such changes are made to the publication tables, they are not propagated to the subscription and vice versa unless the DDL change replication feature is used as described in [Replicating DDL Changes](../../07_common_operations/08_replicating_ddl_changes/#replicating_ddl_changes). If changes are made to the table definitions without using the DDL change replication feature, there is a risk that future replication attempts may fail. + +Changes must not be made to the rows of the subscription tables. If such changes are made, they are not propagated back to the publication. If changes are made to the subscription table rows, it is fairly likely that the rows will no longer match their publication counterparts. There is also a risk that future replication attempts may fail. + +![Single-Master (Primary-to-secondary) replication](/../../images/image8.png) diff --git a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/04_mmr_replication.mdx b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/04_mmr_replication.mdx new file mode 100644 index 00000000000..5a0de156334 --- /dev/null +++ b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/04_mmr_replication.mdx @@ -0,0 +1,27 @@ +--- +title: "Multi-Master Replication" +--- + + + + +As an alternative to the single-master (primary-to-secondary) replication model, xDB Replication Server supports multi-master replication. + +The following definitions are used when referring to multi-master replication systems. + +A primary node is a database participating in a multi-master replication system. + +The database (primary node) in which the publication is initially defined is specially designated as the `primary definition node (PDN)`. There can be only one primary definition node at any given time, however, it is possible to change which primary node is the primary definition node. When it is important to make a distinction between the primary definition node and all other primary nodes that are not the primary definition node, the latter are referred to as `non-PDN nodes`. + +The primary definition node has the following significance: + +- The publication is initially created in the primary definition node, and the tables comprising the publication must exist in the database to be designated as the primary definition node at the time the publication is defined. +- The publication can be initially replicated to other primary nodes by means of a snapshot from the primary definition node. +- Each subsequent primary node added to the replication system must either: 1) contain no tables with the same schema-qualified names as the publication tables in the primary definition node; or 2) contain all publication table definitions as they exist in the primary definition node with the same schema-qualified names. In the first case, when you add the primary node, you select the option to replicate the publication schema from the primary definition node. In the second case, you do not select this option. +- The table rows in a primary node can be reloaded from the primary definition node. The primary node tables are truncated and the rows reloaded by a snapshot from the primary definition node. + +Once the multi-master replication system is defined, changes (inserts, updates, and deletions) to rows of the publication tables on any primary node are synchronized to all other primary nodes on either an on demand or scheduled basis. + +Generally, changes must not be made to the table definitions in any of the primary nodes including the primary definition node. If such changes are made, they are not propagated to other nodes in the multi-master replication system unless they are made using the DDL change replication feature described in [Replicating DDL Changes](../../07_common_operations/08_replicating_ddl_changes/#replicating_ddl_changes). If changes are made to tables without using the DDL change replication feature, there is a risk that future replication attempts may fail. + +![In a multi-master replication system, table rows can be updated at any primary node](/../../images/image9.png) diff --git a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/05_asynchronous.mdx b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/05_asynchronous.mdx new file mode 100644 index 00000000000..3d29819efe4 --- /dev/null +++ b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/05_asynchronous.mdx @@ -0,0 +1,10 @@ +--- +title: "Asynchronous" +--- + + + + +xDB Replication Server performs replications asynchronously. The systems hosting the databases do not always have to be running continuously in order for successful replication to occur. If one system goes offline, replication resumes when it comes back online if there is still pending data to replicate. + +In addition you can create a schedule for your replication system. xDB Replication Server initiates and performs replications regularly according to the assigned schedule. This allows you to run the replication system unattended. See [Creating a Schedule](../../07_common_operations/#creating_schedule) for directions on creating a schedule. diff --git a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/06_snapshot_and_synchronous.mdx b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/06_snapshot_and_synchronous.mdx new file mode 100644 index 00000000000..3b404bd2012 --- /dev/null +++ b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/06_snapshot_and_synchronous.mdx @@ -0,0 +1,40 @@ +--- +title: "Snapshot and Synchronization Overview" +--- + + + + +xDB Replication Server performs two different types of replications. These two main types are called snapshot replication and synchronization replication. + +In either method, the source tables refer to the tables from which the replication data is originating (the publication in a single-master replication system, or the primary node whose changes are being replicated to another primary node in a multi-master replication system). + +The target tables are the tables that are receiving the replication data from the source tables (the subscription tables in a single-master replication system, or the primary node receiving changes from another primary node in a multi-master replication system). + +In snapshot replication, all existing rows in the target tables are deleted using the database system’s `TRUNCATE` command. The tables are then completely reloaded from the source tables of the publication. + +In synchronization replication, only the changes (inserts, updates, and deletions) to the rows in the source tables since the last replication are applied to the target tables. + +
+ +
+ +Note + +
+ +Deletion of all rows in a source table executed by the `SQL TRUNCATE` command results in replication to the target tables only if the log-based method of synchronization replication is used. If the trigger-based method of synchronization replication is used, execution of the `TRUNCATE` command on a source table does not replicate the effect to the target tables. You must perform a snapshot from the source table to the target tables if the trigger-based method is used. (The difference between the trigger-based method and the log-based method is discussed as follows.) + +
+ +Synchronization replication is implemented using two different methods – the trigger-based method and the log-based method. + +In the trigger-based method changes to rows in the source tables result in the firing of row-based triggers. These triggers record the changes in shadow tables. The changes recorded in the shadow tables are then periodically extracted from the shadow tables, converted to an in-memory data structure, and applied to the target tables by means of SQL statements executed using JDBC. See [Synchronization Replication with the Trigger-Based Method](../../02_overview/02_replication_concepts_and_definitions/#sync_replication_trigger_based) for information on the trigger-based method. + +In the log-based method changes to rows in the source tables are extracted from the Write-Ahead Log segments (WAL files) using asynchronous streaming replication implemented by the logical decoding feature available in Postgres database servers. The extracted changes are converted to an in-memory data structure and applied to the target tables by means of SQL statements executed using JDBC. See [Synchronization Replication with the Log-Based Method](../../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#sync_replication_log_based) for information on the log-based method. + +In a multi-master replication system, the manner in which changes accumulated on all primary nodes are replicated to all other primary nodes is conceptually done in groups identified by the source primary node with the changes to be replicated. See [Multi-Master Parallel Replication](../../02_overview/02_replication_concepts_and_definitions/#mmr_parallel_replication) for information on this process and the improvement for the log-based method with parallel replication. + +In a single-master replication system, the very first replication to a newly created subscription must always be done by a snapshot. Subsequent replications can be done by snapshot or by synchronization provided that the publication is not defined as a snapshot-only publication as discussed in [Snapshot-Only Publications](../../02_overview/02_replication_concepts_and_definitions/#snapshot_only_publications). + +In a multi-master replication system, the very first replication from the primary definition node to a newly added primary node must always be done by a snapshot. Subsequent replications between primary nodes occur by synchronization. However, it is possible to perform subsequent snapshots from the primary definition node to any other primary node. diff --git a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/07_snapshot_only_publications.mdx b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/07_snapshot_only_publications.mdx new file mode 100644 index 00000000000..fa3e942a20c --- /dev/null +++ b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/07_snapshot_only_publications.mdx @@ -0,0 +1,12 @@ +--- +title: "Snapshot-Only Publications" +--- + + + + +When a publication is created in a single-master replication system, the publication can be defined as a snapshot-only publication. Replication from a snapshot-only publication can only be done using the snapshot replication method. Synchronization replication is not permitted on a snapshot-only publication. + +A snapshot-only publication cannot be created in a multi-master replication system. + +See [Performance Considerations](../../02_overview/04_design_replication_system/#performance_considerations) for a discussion of the advantages of using a snapshot-only publication. diff --git a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/08_snapshot_replication.mdx b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/08_snapshot_replication.mdx new file mode 100644 index 00000000000..c1aedf78fff --- /dev/null +++ b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/08_snapshot_replication.mdx @@ -0,0 +1,32 @@ +--- +title: "Snapshot Replication" +--- + + + + +In snapshot replication, the target tables are completely reloaded from the source tables. The database system’s truncate operation is used to delete all rows from the target tables. + +**For Oracle and SQL Server only:** Oracle and SQL Server target tables are loaded using JDBC batches of `INSERT` statements. + +**For Postgres only:** In general, Postgres target tables are loaded using the JDBC COPY command since using truncation and COPY is generally faster than if you were to execute an `SQL DELETE` statement against the entire table and then add the rows using JDBC batches of `INSERT` statements. If the `COPY` command fails, the publication server retries the snapshot using JDBC batches of `INSERT` statements. + +If the target table (regardless of database type) contains a large object data type such as `BYTEA`, `BLOB`, or `CLOB` then rows are loaded one at a time per batch using an INSERT statement. This is to avoid a heap space error resulting from potentially large rows. Loading time can be decreased by allowing multiple inserts per batch, which is done by adjusting the configuration option `lobBatchSize` described in [Optimizing Snapshot Replication](../../05_smr_operation/08_optimizing_performance/#optimizing_snapshot_replication). + +
+ +
+ +Note + +
+ +Advanced Server supports a number of aliases for data types. Such aliases that translate to `BYTEA` are treated as large object data types. See the Database Compatibility for Oracle Developers Reference Guide for a listing of Advanced Server data types. (See the *Database Compatibility for Oracle Developer’s Guide* for Advanced Server version 9.5 or earlier versions.) + +
+ +Under certain circumstances, the corresponding Postgres target table created for certain types of Oracle partitioned tables is a set of inherited tables. In these cases, the `SQL DELETE` statement is used on the inherited child tables instead of truncation. See [Replicating Oracle Partitioned Tables](../../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/#replicate_oracle_partitioned_tables) for additional information on replicating Oracle partitioned tables. + +A server configuration option is available that forces the snapshot replication process to use the Oracle database link utility instead of `JDBC COPY` to populate the Postgres target tables from an Oracle publication. Oracle database link provides an additional performance improvement over `JDBC COPY`. See [Optimizing Snapshot Replication](../../05_smr_operation/08_optimizing_performance/#optimizing_snapshot_replication) for information on using the Oracle database link option. + +See [Optimizing Snapshot Replication](../../05_smr_operation/08_optimizing_performance/#optimizing_snapshot_replication) for information on various configuration options to optimize snapshot replication. diff --git a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/09_sync_replication_trigger_based.mdx b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/09_sync_replication_trigger_based.mdx new file mode 100644 index 00000000000..f74bad8fa4e --- /dev/null +++ b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/09_sync_replication_trigger_based.mdx @@ -0,0 +1,54 @@ +--- +title: "Synchronization Replication with the Trigger-Based Method" +--- + + + + +If a publication in a single-master replication system is created that will be used in synchronization replications with the trigger-based method, the publication server installs an insert trigger, an update trigger, and a delete trigger on each publication table. In a multi-master replication system, each replicated table in each primary node employing the trigger-based method has an insert trigger, an update trigger, and a delete trigger. + +The publication server also creates a shadow table for each source table on which triggers have been created. A shadow table is a table used by xDB Replication Server to record the changes (inserts, updates, and deletions) made to a given source table. A shadow table records three types of record ../../images: For each row inserted into the source table, the shadow table records the image of the inserted row. For each existing row that is updated in the source table, the shadow table records the after image of the updated row. For each row deleted from the source table, the shadow table records the primary key value of the deleted row. + +
+ +
+ +Note + +
+ +In a multi-master replication system, the before image of an updated row is also stored in the shadow table in order to perform update conflict detection. See [Conflict Resolution](../../06_mmr_operation/06_conflict_resolution/#conflict_resolution) for information on conflict detection in a multi-master replication system. + +
+ +After each change on the source table, one of the insert, update, or delete triggers is executed. These are row triggers, so for each row affected by the change, the trigger executes. Each execution of the trigger records a row of the appropriate type (insert, update, or deletion) in the shadow table of the corresponding source table. + +Though changes made to the source tables since the last replication occurred are applied to the target tables using `SQL INSERT, UPDATE`, and `DELETE` statements, the actual SQL statements run against the target tables are not the same SQL statements that were run against the source tables. + +When synchronization replication occurs, the publication server executes JDBC batches of SQL statements (also referred to as transaction sets) against the target tables. The batches contain an `INSERT` statement for each shadow table row recording an insert operation, an `UPDATE` statement for each shadow table row recording an update operation, and a `DELETE` statement for each shadow table row recording a delete operation. Each batch is executed in one transaction. + +Shadow table rows that were applied to target tables can be viewed as shadow table history in the xDB Replication Console (see [Shadow Table History](../../07_common_operations/#shadow_table_history)). + +
+ +
+ +Note + +
+ +A single SQL statement executed against a source table may result in many rows recorded in a shadow table, and therefore, many SQL statements executed against the target table. For example, if a single `UPDATE` statement affects 10 rows in the source table, 10 rows will be inserted into the shadow table – one for each row in the source table that was updated. When the publication server applies the changes to the target table, 10 `UPDATE` statements will be executed. + +
+ +
+ +
+ +Note + +
+ +For greater efficiency, when changes to the source tables consist of SQL statements that each affect a large number of rows, the publication server may employ the use of prepared SQL statements. See [Optimizing Synchronization Replication](../../05_smr_operation/08_optimizing_performance/02_optimize_sync_replication/#optimize_sync_replication) for directions on how to control the usage of prepared SQL statements as well as information on various other configuration options to optimize synchronization replication. + +
diff --git a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/01_requirements_and_restrictions.mdx b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/01_requirements_and_restrictions.mdx new file mode 100644 index 00000000000..f8e1f68c45e --- /dev/null +++ b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/01_requirements_and_restrictions.mdx @@ -0,0 +1,33 @@ +--- +title: "Requirements and Restrictions" +--- + + + + +The following are the general requirements and restrictions when using the log-based method for any database of a single-master or multi-master replication system: + +- The selection of either the trigger-based method or the log-based method is a characteristic applicable to only the publication database. The choice is made when defining the primary database of a single-master replication system (see Section [Adding a Publication Database](../../../05_smr_operation/02_creating_publication/#adding_pub_database)) or the primary definition node of a multi-master replication system (see [Adding the Primary definition node](../../../06_mmr_operation/#adding_pdn)). +- The logical decoding feature, and hence the log-based method, is supported beginning with PostgreSQL version 9.4. Therefore, in order to use the log-based method for a publication database, that publication database must be running under PostgreSQL version 9.4 or later, or under Advanced Server version 9.4 or later. +- In a single-master replication system, whether the primary database uses the trigger-based method or the log-based method has no additional impact on the rules for choosing the subscription database. For example, even if the log-based method is chosen for the primary database, the subscription database may be running on Postgres version 9.4 as well as any supported, earlier version of Postgres, as well as Oracle or SQL Server. +- In a single-master replication system, the primary database may contain one or more publications (that is, named sets of tables for replication). This is applicable to a primary database using either the trigger-based method or the log-based method. +- It is permissible to have multiple, single-master replication systems running under a publication server where some primary databases may use the trigger-based method while others use the log-based method. +- In a multi-master replication system, the selection of either the trigger-based method or the log-based method on the primary definition node determines the method for all other primary nodes. In other words, if the trigger-based method is chosen for the primary definition node, then all other primary nodes will use the trigger-based method. If the log-based method is chosen for the primary definition node, then all other primary nodes will use the log-based method. +- As a consequence of the restriction described in the preceding bullet point, in order to use the log-based method for a multi-master replication system, all of the primary nodes of the system must be running under Postgres version 9.4 or later, and all such Postgres database clusters must be configured to use logical decoding for the log-based method. + +Selection of the log-based method for any database impacts the configuration of the Postgres database cluster containing that database. + +If you plan to use the log-based method with any publication database running under a Postgres database server, the following configuration parameter settings are required in the configuration file, `postgresql.conf`, of that Postgres database server: + +- `wal_level.` Set to logical. +- `max_wal_senders.` Specifies the maximum number of concurrent connections (that is, the maximum number of simultaneously running WAL sender processes). Set at minimum, to the total number of primary databases of single-master replication systems and primary nodes of multi-master replication systems on this database server that will use the log-based method. +- `max_replication_slots.` Specifies the maximum number of replication slots. If the database server supports both single-master replication systems and multi-master replication systems, then max\_replication\_slots must be set at minimum to the sum of the requirements for both replication systems. For support of SMR systems, the minimum requirement is the total number of primary databases of the single-master replication systems that will use the log-based method. For support of MMR systems, the minimum requirement is the total number of primary nodes in the multi-master replication system multiplied by the number of primary nodes residing on this database server. For information, see [Replication Origin](../../../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#replication_origin). +- `track_commit_timestamp.` Set to `on`. This configuration parameter applies only to Postgres database servers of version 9.5 and later. See [Configuration Parameter and Table Setting Requirements](#configuration_para_and%20table_setting) for additional information. + +Also, see [Enabling Synchronization Replication with the Log-Based Method](../../../05_smr_operation/01_prerequisites/#enable_sync_replication_with_log-based_method) for setting these parameters for a single-master replication system. See [Enabling Synchronization Replication with the Log-Based Method](../../../06_mmr_operation/#enabling_sync_replication_log-based_method_mmr) for a multi-master replication system. + +In addition, the `pg_hba.conf` configuration file of the Postgres database server must contain an entry permitting `REPLICATION` access for each database using the log-based method running on the database server. The access must be permitted to the publication database user specified when creating the publication database definition using the xDB Replication Console (See [Adding a Publication Database](../../../05_smr_operation/02_creating_publication/#adding_pub_database) for a single-master replication system or [Adding the Primary definition node](../../../06_mmr_operation/#adding_pdn) for a multi-master replication system) or the xDB Replication Server Command Line Interface (CLI) (see Adding a Publication Database (addpubdb) <add\_pub\_database>). + +See [Postgres Server Authentication](../../../05_smr_operation/01_prerequisites/#postgres_server_auth) for setting `REPLICATION` access for a single-master replication system. See [Verifying Host Accessibility](../../../05_smr_operation/01_prerequisites/#verifying_host_accessibility) for a multi-master replication system. + +For configuration options in the publication server configuration file that are specifically applicable to the log-based method see [Log-Based Method of Synchronization Options](../../../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/#log_based_sync_options). diff --git a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/02_logical_replication_slots.mdx b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/02_logical_replication_slots.mdx new file mode 100644 index 00000000000..fd4c4583f0d --- /dev/null +++ b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/02_logical_replication_slots.mdx @@ -0,0 +1,16 @@ +--- +title: "Logical Replication Slots" +--- + + + + +When using the log-based method on a publication database, the underlying logical decoding framework exposes the data changes (the changeset stream) by means of a logical replication slot. + +A logical replication slot represents a changeset stream and applies to a single database. The xDB Replication Server assigns a unique identifier, called the slot name, to each logical replication slot it creates in the form xdb\_dboid\_pubid where `dboid` is the publication database object identifier (`OID`) and `pubid` is the publication ID assigned by the xDB Replication Server. All slot names are unique within a Postgres database cluster. + +Thus, for each single-master replication system using the log-based method, a replication slot is required for the publication database of each such system. + +For a multi-master replication system using the log-based method, each primary node requires a replication slot. + +The maximum number of replication slots permitted for a database server is controlled by the `max_replication_slots` configuration parameter in the `postgresql.conf` file. Therefore this configuration parameter must be set to a large enough value to account for all publication databases defined with the log-based method of single-master replication systems running on the database server as well as all primary nodes of a multi-master replication system defined with the log-based method running on the database server. Additional replication slots are required to support the usage of replication origin (see [Replication Origin](../../../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#replication_origin)). See [Enabling Synchronization Replication with the Log-Based Method](../../../05_smr_operation/01_prerequisites/#enable_sync_replication_with_log-based_method) for additional information on configuration parameters for single-master replication systems. See [Enabling Synchronization Replication with the Log-Based Method](../../../06_mmr_operation/#enabling_sync_replication_log-based_method_mmr) for multi-master replication systems. diff --git a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/03_streaming_replication_wal_sender.mdx b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/03_streaming_replication_wal_sender.mdx new file mode 100644 index 00000000000..b4bd51f4bea --- /dev/null +++ b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/03_streaming_replication_wal_sender.mdx @@ -0,0 +1,32 @@ +--- +title: "Streaming Replication with the WAL Sender Process" +--- + + + + +The changeset stream is accessible to the xDB publication server by the **WAL sender process** (`walsender`) using the streaming replication protocol. + +The xDB publication server connects using the `walsender` interface through which changes are streamed on a continual basis. The continuous streaming eliminates the need for explicitly polling for changes. + +The following are the basic synchronization steps using the log-based method: + +1. A streaming replication connection to the database server is opened using `libpq` to establish a `walsender` communication channel. +2. A separate thread is used to monitor data changes streamed through the `walsender` interface. +3. As the data changes become available, they are transformed to populate an in-memory cache. +4. On the next scheduled interval, the in-memory cached data changes are applied to each of the target databases in JDBC batches of SQL statements (referred to as transaction sets) in the same manner as described in [Synchronization Replication with the Trigger-Based Method](../../../02_overview/02_replication_concepts_and_definitions/#sync_replication_trigger_based) for the trigger-based method. If one or more target database servers are not accessible, the data changes are saved in a local file on the host running the publication server. See [In-Memory Caching and Persistence](../../../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#inmemory_caching) for information on in-memory caching and data persistence. +5. The value of the `WAL` segment’s log sequence number (`LSN`) identifying the last set of applied changes based on the last replicated transaction is updated. The update is confirmed to the database server. +6. The applied data changes are cleared from the in-memory cache. +7. Steps 3 through 6 are repeated. + +
+ +
+ +Note + +
+ +A single SQL statement executed against a source table may result in many rows modified and returned in the changeset stream, and therefore, many SQL statements executed against the target table. For example, if a single `UPDATE` statement affects 10 rows in the source table, 10 rows will be returned in the changeset stream – one for each row in the source table that was updated. When the publication server applies the changes to the target table, 10 `UPDATE` statements will be executed. + +
diff --git a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/04_replication_origin.mdx b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/04_replication_origin.mdx new file mode 100644 index 00000000000..b5915015c23 --- /dev/null +++ b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/04_replication_origin.mdx @@ -0,0 +1,107 @@ +--- +title: "Replication Origin" +--- + + + + +Starting with Postgres version 9.5, a feature called replication origin has been introduced to the logical decoding framework. Replication origin allows an application to identify, label, and mark certain aspects of a logical decoding session. + +For information on replication origin see the PostgreSQL Core Documentation located at: + +> + +For the log-based method of synchronization replication, this provides performance improvement provided that the primary nodes are running under Postgres version 9.5 or later. + +As previously described, the log-based method uses the WAL files to obtain the changes applied to the publication tables. After the changes are retrieved through the walsender interface, the publication server applies the set of changes to the other primary nodes using transaction sets consisting of JDBC batches of SQL statements. When these changes are applied to the tables in the other target primary nodes, the same changes are also recorded in the WAL files of each database server hosting the target primary nodes. + +These redundant or `replayed` changes are included in the changeset stream received by the publication server. These replayed changes must be ignored and not applied since they are duplicates of all changes that have already been applied to the target tables through the JDBC batches. + +The replayed changes result in performance overhead as all such changes are transmitted over the network from the database server to the publication server, and then the publication server must discard such redundant changes. + +With the replication origin feature, the publication server is able to set up the logical decoding sessions so that these replayed changes are not included in the changeset stream transmitted over the network to the publication server thus eliminating this performance overhead. + +The following are the conditions under which replication origin is used: + +- Replication origin applies to multi-master replication systems only, not to single-master replication systems. +- Replication origin eliminates streaming of replayed changes only from Postgres versions 9.5 or later. Replayed changes are still included in the changeset stream from Postgres version 9.4, but are discarded by the publication server. Thus multi-master replication systems consisting of both Postgres versions 9.4 and 9.5 utilize the replication origin advantage on the 9.5 database servers. +- The `max_replication_slots` configuration parameter must be set at a certain minimal level to ensure that the publication server can create the additional replication slots for replication origin. + +For each primary node database, in addition to the replication slot used for the changeset stream, an additional number of replication slots is required – one additional slot corresponding to every other primary node to support the replication origin usage. Thus, for each primary node, the total number of replication slots required is equal to the total number of primary nodes in the entire MMR system. + +Therefore, for a given database server (that is, a Postgres database cluster containing primary node databases), the total number of replication slots required is equal to the total number of primary nodes in the entire MMR system multiplied by the number of primary node databases residing within the given database cluster. + +For example, assume the usage of a 6-node multi-master replication system using three database clusters as follows: + +- Database cluster \#1 contains 3 primary node databases. +- Database cluster \#2 contains 2 primary node databases. +- Database cluster \#3 contains 1 primary node database. + +The total number of primary nodes is six. Multiply the number of primary node databases in each database cluster by six to give the required minimum setting for `max_replication_slots` for that database cluster. + +The following table shows the required, minimum settings for `max_replication_slots` as well as `max_wal_senders`. + +
Replication Origin Configuration Parameter Settings
Postgres Database Servermax_wal_sendersmax_replication_slots

Cluster #1 (3 primary nodes)

3

18

Cluster #2 (2 primary nodes)

2

12

Cluster #3 (1 primary node)

1

6

+ +**Replication Origin Configuration Parameter Settings** + +If the `max_replication_slots` parameter is not set to a high enough value, synchronization replication still succeeds, but without the replication origin performance advantage. + +The publication server log file contains the following warning in such cases: + +``` text +WARNING: Failed to setup replication origin ``xdb_MMRnode_c_emp_pub_6``. Reason: ERROR: could not find free replication state slot for replication origin with OID 4 + Hint: Increase max_replication_slots and try again. +``` + +The following example shows some of the replication slot information for a 3-primary node system running on a single database cluster. + +The following shows the maximum allowable number of replication slots: + +``` text +SHOW max_replication_slots; + +max_replication_slots +----------------------- + 9 +(1 row) +``` + +The number should be sufficiently greater than the number of replication slots and replication origins currently allocated. + +The following displays the replication slots: + +``` text +SELECT slot_name, slot_type, database, active FROM pg_replication_slots ORDER BY 1; + + slot_name | slot_type | database | active +-------------+-----------+-----------+-------- + xdb_47877_5 | logical | MMRnode_a | t + xdb_47878_5 | logical | MMRnode_b | t + xdb_47879_5 | logical | MMRnode_c | t +(3 rows) +``` + +The following shows the replication origins. + +``` text +SELECT * FROM pg_replication_origin ORDER BY 2; + + roident | roname +---------+-------------------------- + 5 | xdb_MMRnode_a_emp_pub_39 + 2 | xdb_MMRnode_a_emp_pub_6 + 1 | xdb_MMRnode_b_emp_pub_1 + 6 | xdb_MMRnode_b_emp_pub_39 + 3 | xdb_MMRnode_c_emp_pub_1 + 4 | xdb_MMRnode_c_emp_pub_6 +(6 rows) +``` + +The replication origin name is assigned in the format `xdb_srcdbname_pubname_remotedbid` where `srcdbname` is the source database name, `pubname` is the publication name, and `remotedbid` is the publication database ID of a remote database. + +The replication slots are in the active state when the publication server is running. The replication slots are deactivated when the publication server is shut down. + +The replication slots and replication origin sessions are deleted from the database cluster when their corresponding primary nodes are removed from the multi-master replication system using the xDB Replication Console or the xDB Replication Server CLI. + +Should some situation occur where the replication slots are not properly deleted when required, see [Dropping Replication Slots for Log-Based Synchronization Replication](../../../10_appendix/03_resolving_problems/#drop_replication_slots_for_log_based) for instructions on manually deleting them. diff --git a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/05_inmemory_caching.mdx b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/05_inmemory_caching.mdx new file mode 100644 index 00000000000..aec191fa6f9 --- /dev/null +++ b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/05_inmemory_caching.mdx @@ -0,0 +1,27 @@ +--- +title: "In-Memory Caching and Persistence" +--- + + + + +The data changes are fetched and stored in memory buffers to optimize the data replication process. This avoids the overhead associated with repeatedly fetching the same set of changes from the database server when there are multiple target databases. + +This approach is sufficient as long as all of the target databases are accessible during a replication event and the data fits within the available cache. + +However, if one or more of the target databases is unavailable due to network connectivity problems, server down time, etc. the in-memory data changes must be persisted for later retrieval when the target databases becomes available for synchronization with the source database. + +The xDB Replication Server architecture utilizes `Java object serializatio` to persist the in-memory state of the data. Object serialization is the conversion of object data and other relevant information to a sequence of bytes that can then be stored in a file. + +The following are examples that can result in the eviction of in-memory data to persistent storage: + +- Before the next replication event occurs, the in-memory cache is filled with the data changes and needs to be evicted to accommodate a new set of changes. +- In the replication system, there are multiple target databases. During a synchronization event, all of the changes available in the cache are applied successfully to some of the target databases. However one or more of the other target databases cannot be accessed. All of the applied changes held in memory must be persisted and retained so that these changes can be reloaded and applied when the inaccessible databases becomes available. + +The cache size corresponds to the heap size configured for the publication server by the `-Xmxnnnm` setting of the `JAVA_HEAP_SIZE` parameter in the xDB Startup Configuration file. See [xDB Replication Configuration File](../../../02_overview/03_replication_server_components_and_architecture/#xdb_replication_conf_file) for information on the xDB Startup Configuration file. + +The persistence I/O overhead can be minimized by increasing the heap size value and defining a more frequent synchronization interval such as for every few seconds. See [Creating a Schedule](../../../07_common_operations/#creating_schedule) for information on setting a replication schedule. + +The data changes are persisted in a local file on the host running the publication server. The file is stored in the directory `XDB_HOME/xdata`. + +Each time persistence occurs, a new file is created. After the files have been processed, they are periodically removed from disk. diff --git a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/index.mdx b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/index.mdx new file mode 100644 index 00000000000..49541367d48 --- /dev/null +++ b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/index.mdx @@ -0,0 +1,28 @@ +--- +title: "Synchronization Replication with the Log-Based Method" +--- + + + + +In PostgreSQL 9.4 a feature has been introduced called logical decoding (also called logical replication or changeset extraction). This feature provides the capability to extract data manipulation language (DML) changes from the Write-Ahead Log segments (WAL files) in a readable format. + +For information on logical decoding see the *PostgreSQL Core Documentation* located at: + +> + +The key significance of this feature is the ability to capture data changes to the publication tables without impacting the online transaction processing rate against these tables that occurs when using the trigger-based method. The trigger-based method results in the firing of row-level triggers whenever data changes occur, then inserting these data changes into shadow tables for temporary storage before applying the changes to the target databases. + +Thus, extracting data changes using logical decoding can be beneficial for improving database server throughput and replication latency. + +However, note that the logical decoding interface streams changes for all tables in a given database, which may have a performance overhead associated with it. For example, if a database contains 100 tables, and the user is interested in replicating only a small subset of these tables, say only 20 tables in a single publication, the logical decoding protocol will stream changes for all 100 tables to the publication server. The publication server eventually filters out the changes for the irrelevant 80 tables. However, this results in network overhead caused by the additional changeset load that is not required by the replication system. + +Using logical decoding to extract changes from a publication database during xDB synchronization replication is referred to as the log-based method. + +The following sections describe the basic requirements and concepts for the log-based method of synchronization replication. + +
+ +requirements\_and\_restrictions logical\_replication\_slots streaming\_replication\_wal\_sender replication\_origin inmemory\_caching + +
diff --git a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/11_requirements_and_restrictions.mdx b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/11_requirements_and_restrictions.mdx new file mode 100644 index 00000000000..e10736785d5 --- /dev/null +++ b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/11_requirements_and_restrictions.mdx @@ -0,0 +1,33 @@ +--- +title: "Requirements and Restrictions" +--- + + + + +The following are the general requirements and restrictions when using the log-based method for any database of a single-master or multi-master replication system: + +- The selection of either the trigger-based method or the log-based method is a characteristic applicable to only the publication database. The choice is made when defining the primary database of a single-master replication system (see Section [Adding a Publication Database](../../05_smr_operation/02_creating_publication/#adding_pub_database)) or the primary definition node of a multi-master replication system (see [Adding the Primary definition node](../../06_mmr_operation/#adding_pdn)). +- The logical decoding feature, and hence the log-based method, is supported beginning with PostgreSQL version 9.4. Therefore, in order to use the log-based method for a publication database, that publication database must be running under PostgreSQL version 9.4 or later, or under Advanced Server version 9.4 or later. +- In a single-master replication system, whether the primary database uses the trigger-based method or the log-based method has no additional impact on the rules for choosing the subscription database. For example, even if the log-based method is chosen for the primary database, the subscription database may be running on Postgres version 9.4 as well as any supported, earlier version of Postgres, as well as Oracle or SQL Server. +- In a single-master replication system, the primary database may contain one or more publications (that is, named sets of tables for replication). This is applicable to a primary database using either the trigger-based method or the log-based method. +- It is permissible to have multiple, single-master replication systems running under a publication server where some primary databases may use the trigger-based method while others use the log-based method. +- In a multi-master replication system, the selection of either the trigger-based method or the log-based method on the primary definition node determines the method for all other primary nodes. In other words, if the trigger-based method is chosen for the primary definition node, then all other primary nodes will use the trigger-based method. If the log-based method is chosen for the primary definition node, then all other primary nodes will use the log-based method. +- As a consequence of the restriction described in the preceding bullet point, in order to use the log-based method for a multi-master replication system, all of the primary nodes of the system must be running under Postgres version 9.4 or later, and all such Postgres database clusters must be configured to use logical decoding for the log-based method. + +Selection of the log-based method for any database impacts the configuration of the Postgres database cluster containing that database. + +If you plan to use the log-based method with any publication database running under a Postgres database server, the following configuration parameter settings are required in the configuration file, `postgresql.conf`, of that Postgres database server: + +- `wal_level.` Set to logical. +- `max_wal_senders.` Specifies the maximum number of concurrent connections (that is, the maximum number of simultaneously running WAL sender processes). Set at minimum, to the total number of primary databases of single-master replication systems and primary nodes of multi-master replication systems on this database server that will use the log-based method. +- `max_replication_slots.` Specifies the maximum number of replication slots. If the database server supports both single-master replication systems and multi-master replication systems, then max\_replication\_slots must be set at minimum to the sum of the requirements for both replication systems. For support of SMR systems, the minimum requirement is the total number of primary databases of the single-master replication systems that will use the log-based method. For support of MMR systems, the minimum requirement is the total number of primary nodes in the multi-master replication system multiplied by the number of primary nodes residing on this database server. For information, see [Replication Origin](../../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#replication_origin). +- `track_commit_timestamp.` Set to `on`. This configuration parameter applies only to Postgres database servers of version 9.5 and later. See [Configuration Parameter and Table Setting Requirements](#configuration_para_and%20table_setting) for additional information. + +Also, see [Enabling Synchronization Replication with the Log-Based Method](../../05_smr_operation/01_prerequisites/#enable_sync_replication_with_log-based_method) for setting these parameters for a single-master replication system. See [Enabling Synchronization Replication with the Log-Based Method](../../06_mmr_operation/#enabling_sync_replication_log-based_method_mmr) for a multi-master replication system. + +In addition, the `pg_hba.conf` configuration file of the Postgres database server must contain an entry permitting `REPLICATION` access for each database using the log-based method running on the database server. The access must be permitted to the publication database user specified when creating the publication database definition using the xDB Replication Console (See [Adding a Publication Database](../../05_smr_operation/02_creating_publication/#adding_pub_database) for a single-master replication system or [Adding the Primary definition node](../../06_mmr_operation/#adding_pdn) for a multi-master replication system) or the xDB Replication Server Command Line Interface (CLI) (see Adding a Publication Database (addpubdb) <add\_pub\_database>). + +See [Postgres Server Authentication](../../05_smr_operation/01_prerequisites/#postgres_server_auth) for setting `REPLICATION` access for a single-master replication system. See [Verifying Host Accessibility](../../05_smr_operation/01_prerequisites/#verifying_host_accessibility) for a multi-master replication system. + +For configuration options in the publication server configuration file that are specifically applicable to the log-based method see [Log-Based Method of Synchronization Options](../../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/#log_based_sync_options). diff --git a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/12_mmr_parallel_replication.mdx b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/12_mmr_parallel_replication.mdx new file mode 100644 index 00000000000..4804543d74a --- /dev/null +++ b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/12_mmr_parallel_replication.mdx @@ -0,0 +1,54 @@ +--- +title: "Multi-Master Parallel Replication" +--- + + + + +For a multi-master replication system, transactions can be replicated from one primary node to another by one of the synchronization methods described in the previous sections – either the trigger-based method (see [Synchronization Replication with the Trigger-Based Method](../../02_overview/02_replication_concepts_and_definitions/#sync_replication_trigger_based)) or the log-based method (see [Synchronization Replication with the Log-Based Method](../../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#sync_replication_log_based)). + +For a single replication event to be considered finished and complete, transactions that have occurred on all primary nodes since the previous replication event must be successfully replicated to all other primary nodes by the configured synchronization method. + +This consists of a series of multiple replication sets, each identified by a primary node acting as the source primary node, which contains the transactions that needs to be replicated to all other primary nodes acting as the target primary nodes. So for a multi-master replication system consisting of n number of primary nodes, there will be n such replication sets – each with a different primary node acting as the source. + +Since the initial support of multi-master replication systems in xDB Replication Server version 5.0, such a series of multiple replication sets were always initiated in a strictly serial manner. That is, the transaction replication from a source primary node to all target primary nodes must be completed before the start of the transaction replication from the next primary node to all other target primary nodes, and so on. + +For example, consider a 3-primary node system consisting of primary node A, primary node B, and primary node C. + +If applications have applied transactions to tables in all three primary nodes and then a synchronization replication event is initiated either on demand by the xDB Replication Console, an xDB Replication Server CLI command, or by a scheduled replication, the transactions are replicated in the following manner: + +1. Transactions that were made on primary node A are replicated to primary node B and primary node C. +2. When Step 1 has been completed, transactions that were made on primary node B are replicated to primary node A and primary node C. +3. When Step 2 has been completed, transactions that were made on primary node C are replicated to primary node A and primary node B. + +The time to complete the entire replication event, referred to as the latency time, is basically the sum of the replication times where each primary node acts as the source (that is, the sum of the times for steps 1, 2, and 3). + +For the log-based method, this latency time has been reduced by the implementation of parallel replication whereby each replication set from a given primary node acting as the source, executes and runs simultaneously with all other replication sets where the other primary nodes act as the source. + +Thus, a replication set from a primary node is not waiting for others to complete before it can start so steps 1, 2, and 3 all run simultaneously instead of one after the other. + +
+ +
+ +Note + +
+ +The parallel replication applies only to the log-based method and not for the trigger-based method. + +
+ +There is no required configuration setting to enable the use of parallel replication for the log-based MMR system. + +
+ +
+ +Note + +
+ +In addition to parallel replication, optimization of replicating from a given primary node to all other primary nodes (that is, within the context of a single replication set) has been implemented with the use of multiple threads. This is referred to as parallel synchronization. Parallel synchronization applies to both the trigger-based and log-based methods. See [Parallel Synchronization](../../05_smr_operation/08_optimizing_performance/02_optimize_sync_replication/#parallel_sync) for information on parallel synchronization. + +
diff --git a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/13_table_filters.mdx b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/13_table_filters.mdx new file mode 100644 index 00000000000..bffcf9eee28 --- /dev/null +++ b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/13_table_filters.mdx @@ -0,0 +1,162 @@ +--- +title: "Table Filters" +--- + + + + +Table filters specify the selection criteria for rows in publication tables or views that are to be included during replications to subscriptions from the publication database in a single-master replication system or between primary nodes in a multi-master replication system. Rows that do not satisfy the selection criteria are excluded from replications to subscriptions or primary nodes on which these table filters have been enabled. + +## Implementing Table Filters + +Implementing table filters is a two-part process. First, a set of available table filters must be defined. This can be done during the process of creating the publication by defining specific, named rules applicable to selected publication tables or views expressed in the form of `SQL WHERE` clauses. + +Once a set of available table filters have been defined, they must be enabled only on those subscription tables of a single-master replication system or primary node tables of a multi-master replication system where filtering is to occur during replication to those particular target tables. No filtering occurs during replication to a target subscription table or primary node table if no filters have been specifically enabled on that table in the subscription or primary node. + +It is strongly recommended that a snapshot replication be performed to the subscriptions or primary nodes that contain tables on which the filtering criteria has changed either by the addition of filter rules, the removal of filter rules, or the modification of existing filter rules. + +A snapshot ensures that the content of the subscription tables or primary node tables is consistent with the updated filtering criteria. + +
+ +
+ +Note + +
+ +(For MMR only): When using table filters in a multi-master replication system, the primary definition node, which provides the source of the table content for a snapshot, should contain a superset of all the data contained in the other primary nodes of the multi-master replication system. This ensures that the target of a snapshot receives all of the data that satisfies any filtering criteria enabled on the other primary nodes. + +
+ +On the contrary, if the primary definition node contains only a subset of all the data contained in the other primary nodes, then a snapshot to another primary node may not result in the complete set of data that is required for that target primary node. + +## Effects of Table Filtering + +A filter enabled on a table only affects the results from snapshot or synchronization replications targeted to that table by the xDB Replication Server. Filtering has no effect on changes made directly on the target table by external user applications such as an SQL command line utility. + +Filtering has the following effects on a targeted, filtered table. + +
+ +
+ +Note + +
+ +In the following discussion, a result set refers to the set of rows in a table satisfying the selection criteria of an `UPDATE` or `DELETE` statement executed on that table. + +
+ +In a snapshot replication, a row from the source table of the snapshot is inserted into the target table if the row satisfies the filtering criteria. Otherwise the row is excluded from insertion into the target table. + +When an `INSERT` statement is executed on a source table followed by a synchronization replication, the row is inserted into the target table of the synchronization if the row satisfies the filtering criteria. Otherwise the row is excluded from insertion into the target table. + +When an `UPDATE` statement is executed on a source table followed by a synchronization replication, the `UPDATE` result set of the source table determines the action on the target table of the synchronization as follows. + +- If a row in the result set has no corresponding row in the target table with the same primary key value, and the updated row in the result set satisfies the filtering criteria, then the row is inserted into the target table. (That is, a row that was previously non-existent in the target table is added because the updated row in the source table now satisfies the filtering criteria.) +- If a row in the result set has a corresponding row in the target table with the same primary key value, and the updated row in the result set satisfies the filtering criteria, then the row in the target table is updated accordingly. (That is, the update is applied to an existing, matching row in the target table that still satisfies the filtering criteria after the update.) +- If a row in the result set has a corresponding row in the target table with the same primary key value, and the updated row in the result set no longer satisfies the filtering criteria, then the corresponding row in the target table is deleted. (That is, an existing, matching row in the target table no longer satisfies the filtering criteria after the update, so the row is removed from the target table.) + +When a `DELETE` statement is executed on a source table followed by a synchronization replication, the DELETE result set of the source table determines the action on the target table of the synchronization as follows. + +- If a row in the result set has a corresponding row in the target table with the same primary key value, then the row with that primary key value is deleted from the target table. (That is, an existing, matching row in the target table is removed.) +- If a row in the result set has no corresponding row in the target table with the same primary key value, then no action is taken on the target table for that row. (That is, there is no existing, matching row in the target table, so there is no row to remove from the target table.) + +Thus, regardless of whether the transaction on the source table is an `INSERT`, `UPDATE`, or `DELETE` statement, the goal of a table filter is to ensure that all rows in the target table satisfy the filter rule. + + + +## Table Settings and Restrictions for Table Filters + +This section lists specific table settings and restrictions on the use of table filters. + +**REPLICA IDENTITY Setting for Filtering in a Log-Based Replication System** + +For replication systems using the log-based method of synchronization replication, a publication table on which a filter is to be defined must have the `REPLICA IDENTITY` option set to `FULL`. + +
+ +
+ +Note + +
+ +This `REPLICA IDENTITY FULL` setting is not required for tables in single-master, snapshot-only publications, See [Snapshot-Only Publications](../../02_overview/02_replication_concepts_and_definitions/#snapshot_only_publications) for information on snapshot-only publications. + +
+ +This setting is done with the `ALTER TABLE` command as shown by the following: + +`ALTER TABLE schema.table_name REPLICA IDENTITY FULL` + +For additional information see the ALTER TABLE SQL command in the PostgreSQL Core Documentation located at: + +> + +For example, for a publication table named `edb.dept`, use the following `ALTER TABLE` command: + +`ALTER TABLE edb.dept REPLICA IDENTITY FULL;` + +The `REPLICA IDENTITY` setting can be displayed by the `PSQL` utility using the `\d+` command: + +``` text +edb=# \d+ edb.dept + Table "edb.dept" + Column | Type | Modifiers | Storage | Stats target | Description +--------+-----------------------+-----------+----------+--------------+------------- + deptno | numeric(2,0) | not null | main | | + dname | character varying(14) | | extended | | + loc | character varying(13) | | extended | | +Indexes: + "dept_pk" PRIMARY KEY, btree (deptno) + "dept_dname_uq" UNIQUE CONSTRAINT, btree (dname) +Referenced by: + TABLE "emp" CONSTRAINT "emp_ref_dept_fk" FOREIGN KEY (deptno) REFERENCES dept(deptno) + TABLE "jobhist" CONSTRAINT "jobhist_ref_dept_fk" FOREIGN KEY (deptno) REFERENCES dept(deptno) ON DELETE SET NULL +Replica Identity: FULL +``` + +The `REPLICA IDENTITY FULL` setting is required on tables in the following databases of a log-based replication system: + +- In a single-master replication system, table filters are defined in the primary database. Thus, the publication tables in the primary database requiring filter definitions must be altered to a `REPLICA IDENTITY FULL` setting, but only if the publication is not a snapshot-only publication. See [Snapshot-Only Publications](../../02_overview/02_replication_concepts_and_definitions/#snapshot_only_publications) for information on snapshot-only publications. +- In a multi-master replication system, table filters are defined in the primary definition node. Thus, publication tables in the primary definition node requiring filter definitions must be altered to a `REPLICA IDENTITY FULL` setting. +- In a multi-master replication system, non-PDN nodes should not have their tables’ `REPLICA IDENTITY` option set to `FULL` unless transactions are expected to be targeted on those non-PDN nodes, and the transactions are to be filtered when they are replicated to the other primary nodes. + +The `REPLICA IDENTITY FULL` setting on a source table ensures that certain types of transactions on the source table result in the proper updates to the target tables on which filters have been enabled. + +
+ +
+ +Note + +
+ +In addition to table filtering requirements, the `REPLICA IDENTITY FULL` setting may be required on publication tables for other reasons in xDB Replication Server. See [Configuration Parameter and Table Setting Requirements](#configuration_para_and%20table_setting) for additional requirements. + +
+ +**Filtering Restrictions on Data Types** + +Table filters are not supported on binary data type columns. A binary data type is the Postgres data type `BYTEA`. In addition, table filters are not supported on Advanced Server columns with data types `BINARY`, `VARBINARY`, `BLOB`, `LONG RAW`, and `RAW` as these are alias names for the `BYTEA` data type. + +## Roadmap for Further Instructions + +The specific details on implementing table filtering depend upon whether you are using a single-master replication system or a multi-master replication system. The following is a roadmap to the relevant sections for each type of replication system. + +For using table filters in a single-master replication system see the following sections: + +- Section [Adding a Publication](../../05_smr_operation/02_creating_publication/#adding_publication) for information on defining the initial set of table filters that are to be available for selective enablement on subscriptions +- Section [Adding a Subscription](../../05_smr_operation/03_creating_subscription/#adding_subscription) for information on enabling available table filters on a newly created subscription +- Section [Updating the Set of Available Table Filters in a Publication](../../07_common_operations/06_managing_publication/#updating_table_filters_in_pub) for information on adding, removing, or modifying rules comprising the set of available table filters +- Section Enabling/Disabling Table Filters on a Subscription <enable\_filters\_on\_subscription> for information on changing which table filters have been enabled on an existing subscription + +For using table filters in a multi-master replication system see the following sections: + +- Section [Adding a Publication](../../06_mmr_operation/#add_pub_mmr) for information on defining the initial set of table filters that are to be available for selective enablement on primary nodes +- Section [Creating Additional Primary nodes](../../06_mmr_operation/#creating_primary_nodes) for information on enabling available table filters on a newly created primary node +- Section [Updating the Set of Available Table Filters in a Publication](../../07_common_operations/06_managing_publication/#updating_table_filters_in_pub) for information on adding, removing, or modifying rules comprising the set of available table filters +- Section Enabling/Disabling Table Filters on a Primary node <enable\_disable\_table\_filters> for information on changing which table filters have been enabled on an existing primary node diff --git a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/index.mdx b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/index.mdx new file mode 100644 index 00000000000..24cfc440f8f --- /dev/null +++ b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/index.mdx @@ -0,0 +1,18 @@ +--- +title: "Replication Concepts and Definitions" +--- + + + + +xDB Replication Server is a software product that enables the implementation of a replication system. A **replication system** is software and hardware whose purpose is to make a copy of data from one location to another and to ensure the copied data is the same as the original over time. + +xDB Replication Server applies the replication system concept to tables of Oracle, SQL Server, PostgreSQL, and Advanced Server database management systems. + +The following sections present specific terms and concepts used when discussing xDB Replication Server. + +
+ +smr\_mmr\_comparison publications\_and\_subscriptions smr\_replication mmr\_replication asynchronous snapshot\_and\_synchronous snapshot\_only\_publications snapshot\_replication sync\_replication\_trigger\_based sync\_replication\_log\_based requirements\_and\_restrictions mmr\_parallel\_replication table\_filters + +
diff --git a/product_docs/docs/eprs/6.2/02_overview/03_replication_server_components_and_architecture/01_physical_components.mdx b/product_docs/docs/eprs/6.2/02_overview/03_replication_server_components_and_architecture/01_physical_components.mdx new file mode 100644 index 00000000000..76ae72b5dd1 --- /dev/null +++ b/product_docs/docs/eprs/6.2/02_overview/03_replication_server_components_and_architecture/01_physical_components.mdx @@ -0,0 +1,345 @@ +--- +title: "Physical Components" +--- + + + + +xDB Replication Server is not a single, executable program, but rather a set of programs along with data stores containing configuration information and metadata that work together to form a replication system. + +The following diagram illustrates the components of xDB Replication Server and how they are used to form a complete, basic, single-master replication system. + +![xDB Replication Server - physical view (single-master replication system)](/../../images/image10.png) + +The following diagram illustrates the components of xDB Replication Server and how they are used to form a complete, basic, multi-master replication system. + +![xDB Replication Server - physical view (multi-master replication system)](/../../images/image11.png) + +The minimal configuration of xDB Replication Server for a basic replication system consists of the following software components: + +- **Publication server.** The program that configures the publication database and primary nodes for replication and performs replication. +- Subscription server. The program that configures the subscription database for replication and initiates replication. The subscription server is used only in single-master replication systems. +- **xDB Replication Configuration file.** Text file containing connection and authentication information used by the publication server and subscription server upon startup to connect to a publication database designated as the controller database. Also used to authenticate registration of the publication server and subscription server from the user interface when creating a replication system. +- **xDB Startup Configuration file.** Text file containing installation and configuration information used for the Java Runtime Environment when the publication server and subscription server are started. + +The entire replication system is completed with the addition of the following components: + +- User interfaces for configuring and maintaining the replication system +- One or more publication databases for a single-master replication system +- One or more subscription databases for a single-master replication system +- One primary definition node for a multi-master replication system +- One or more additional primary nodes for a multi-master replication system + +The user interface, publication server, subscription server, publication database, subscription database, and primary nodes can all run on the same host or on separate, networked hosts. + +Any number of user interfaces can be used at any time to access any number of publication servers and subscription servers on the network as long as the network locations, user names, and passwords of the publication and subscription servers are known. + +Any number of publication and subscription databases can participate in a single-master replication system. + +Any number of primary nodes can participate in a multi-master replication system. + +The following sections describe each component in more detail. + +## Publication Server + +The publication server creates and manages the metadata for publications. When a publication is created, the publication server creates database objects in the control schema of the publication database to record metadata about the publication. + +Whenever a primary node is added to a multi-master replication system, the publication server creates database objects in the control schema of the primary node for recording metadata. For non-PDN nodes, the publication server also calls EnterpriseDB’s Migration Toolkit to create the publication table definitions if so chosen at primary node creation time. + +
+ +
+ +Note + +
+ +See [Control Schema and Control Schema Objects](../../02_overview/03_replication_server_components_and_architecture/#control_schema_and_objects) for information on the control schema. + +
+ +The publication server is also responsible for performing a replication. For snapshot replications, the publication server calls EnterpriseDB’s Migration Toolkit to perform the snapshot. + +For single-master synchronization replications, the publication server uses the Java Database Connectivity (JDBC) interface to apply changes to the subscription table rows based on changes that have been recorded in either one of two ways: a) If the publication database is running under Postgres version 9.4 or later and the logical decoding option has been chosen when creating the publication, changes are obtained from the Postgres WAL files using a logical replication slot, or b) In all other circumstances, changes are recorded in metadata tables (called shadow tables) in the publication database by row-based triggers that fire upon any insert, update, or deletion to the publication table rows. + +For multi-master synchronization replications, the publication server performs the same process as for single-master synchronizations, but does so for each primary node pair combination in the multi-master replication system. + +The publication server may run on the same host as the other xDB Replication Server components, or it may run on a separate, networked host. + +## Subscription Server + +
+ +
+ +Note + +
+ +The subscription server is required only for single-master replication systems. The subscription server does not need to be running, nor even installed if only multi-master replication systems are in use. + +
+ +The subscription server creates and manages the metadata for subscriptions. When a subscription is created, the subscription server creates database objects in the control schema of the publication database to record metadata about the subscription. + +When a subscription is created, the subscription server calls EnterpriseDB’s Migration Toolkit to create the subscription table definitions in the subscription database. The rows in the subscription tables are not populated until a replication occurs. Rows are populated by actions of the publication server. + +The subscription server is also responsible for initiating a replication as a result of manual user action through the user interface, or a schedule created for the subscription. The subscription server initiates a call to the publication server that manages the associated publication. The publication server then performs the actual replication. + +The subscription server may run on the same host as the other xDB Replication Server components, or it may run on a separate, networked host. + +When the subscription server is started, it uses the information in the xDB Replication Configuration file found on its host to connect to the designated controller database. + + + +## xDB Replication Configuration File + +The xDB Replication Configuration file contains the connection and authentication information used by any publication server or subscription server running on the host containing the file. + +Specifically, the xDB Replication Configuration file is accessed in the following circumstances: + +- When a publication server or subscription server is started on the host. +- When a publication server or subscription server is registered during the process of creating a replication system. Registration of a publication server or subscription server is done using the xDB Replication Console or the xDB Replication Server Command Line Interface. + +The following table contains a brief description of the parameters in the xDB Replication Configuration file. + +| | | +|------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **Parameter** | **Description** | +| `admin_user` | xDB administrator user name (the admin user name) for registering a publication server or a subscription server on this host containing the xDB Replication Configuration file | +| `admin_password` | Encrypted password of the admin user | +| `database` | Database name of the controller database | +| `user` | Database user name of the controller database | +| `password` | Encrypted password of the controller database user | +| `port` | Port number on which the database server of the controller database listens for requests | +| `host` | IP address of the host running the database server of the controller database | +| `type` | Database type of the controller database such as oracle, enterprisedb, etc. | + +**xDB Replication Configuration File** + +The xDB Replication Server product creates the content of this file as follows: + +- The xDB Replication Configuration file and some of its initial content are created when you install a publication server or subscription server on a host during the xDB Replication Server installation process. +- Parameters `admin_user` and `admin_password` are determined during the xDB Replication Server installation process. See Chapter [Installation and Uninstallation](../../03_installation/#installation) for how the content of these parameters are determined. +- Parameters `database, user, password, port, host,` and `type` are set with the connection and authentication information of the first publication database definition you create with the xDB Replication Console or xDB Replication Server CLI. This database is designated as the controller database. See [Controller Database](../../02_overview/03_replication_server_components_and_architecture/#controller_database) for information on the controller database. See [Adding a Publication Database](../../05_smr_operation/02_creating_publication/#adding_pub_database) for creating a publication database definition for a single-master replication system. See [Adding the Primary definition node](../../06_mmr_operation/#adding_pdn) for creating the publication database definition for a multi-master replication system. + +The following is an example of the content of an xDB Replication Configuration file: + +``` text +#xDB Replication Server Configuration Properties +#Tue May 26 13:45:37 GMT-05:00 2015 +port=1521 +admin_password=ygJ9AxoJEX854elcVIJPTw\=\= +user=pubuser +admin_user=admin +type=oracle +password=ygJ9AxoJEX854elcVIJPTw\=\= +database=xe +host=192.168.2.23 +``` + +
+ +
+ +Note + +
+ +The passwords for the admin user name and the controller database user name are encrypted. Should you change either of these passwords, you must modify the corresponding password parameters in the xDB Replication Configuration file to contain the encrypted form of the new password. See [Encrypting the Password in the xDB Replication Configuration File](#encrypt_password_in%20conf_file) for directions on how to generate the encrypted form of a password. + +
+ +See [Post-Installation Host Environment](../../03_installation/#post_installation_host_environment) for the file system location of the xDB Replication Configuration file. + + + +## xDB Startup Configuration File + +The xDB Startup Configuration file contains installation and configuration information primarily used by the Java Runtime Environment (JRE) when any publication server or subscription server is started up on the host containing the file. + +The content of the file is created by the xDB Replication Server installer when you install xDB Replication Server. + +The following is an example of the content of an xDB Startup Configuration file: + +``` text +#!/bin/sh + +JAVA_EXECUTABLE_PATH="/usr/bin/java" +JAVA_MINIMUM_VERSION=1.7 +JAVA_BITNESS_REQUIRED=64 +JAVA_HEAP_SIZE="-Xms256m -Xmx1536m" +PUBPORT=9051 +SUBPORT=9052 +``` + +The following table contains a brief description of the parameters in the xDB Startup Configuration file. + +| | | +|-------------------------|----------------------------------------------------------------------------------------------------------------------------------------------| +| **Parameter** | **Description** | +| `JAVA_EXECUTABLE_PATH` | Directory path to the Java runtime program used to start and run the publication and subscription servers | +| `JAVA_MINIMUM_VERSION` | The earliest JRE version that can be used by the publication and subscription servers | +| `JAVA_BITNESS_REQUIRED` | The bitness of the Java virtual machine required by the installed publication and subscription servers | +| `JAVA_HEAP_SIZE` | In `-Xmsnnnm` `nnn` specifies the minimum Java heap size in megabytes. In `-Xmxnnnm` `nnn` specifies the maximum Java heap size in megabytes | +| `PUBPORT` | Port number on which the publication server listens for requests | +| `SUBPORT` | Port number on which the subscription server listens for requests | + +**xDB Startup Configuration File** + +The `JAVA_EXECUTABLE_PATH` parameter specifies the location of the Java runtime program as identified by the xDB Replication Server installer during the installation process. The setting of this parameter may be subsequently changed to a different JRE installation if so desired. + +`The JAVA_MINIMUM_VERSION` parameter specifies the earliest version of the Java Runtime Environment that can be used with xDB Replication Server. This setting must not be changed. + +The `JAVA_BITNESS_REQUIRED` parameter must not be altered. If the installed value is modified, or if it does not match the bitness of the Java virtual machine as identified by `JAVA_EXECUTABLE_PATH`, a number of errors may occur, which include failure of the publication and subscription servers to start and registration failure of the xDB Replication Server product. + +See [Setting Heap Memory Size for the Publication and Subscription Servers](../../05_smr_operation/01_prerequisites/#setting_heap_size_for_pub_and_sub) for information on setting the `JAVA_HEAP_SIZE` parameter. + +See [Firewalls and Access to Ports](../../05_smr_operation/01_prerequisites/#firewalls_and_access_to_ports) Setting Heap Memory Size for the Publication and Subscription Servers for information on the `PUBPORT` and `SUBPORT` parameters. + +After making any modifications to the xDB Startup Configuration file, the publication server and subscription server must be restarted. + +See [Post-Installation Host Environment](../../03_installation/#post_installation_host_environment) for the file system location of the xDB Startup Configuration file. + +## xDB Replication Console + +The xDB Replication Console is the graphical user interface program you can use to create and control all aspects of a replication system. + +Through a single xDB Replication Console, you can configure and operate a replication system running on the same host on which the xDB Replication Console is installed, or you can configure and operate replication systems where the xDB Replication Server components are distributed on different hosts in a networked environment. + +![xDB Replication Consoles accessing multiple hosts](/../../images/image12.png) + +In the preceding figure, there are two Postgres installations running on two networked hosts, each with its own xDB Replication Server installation. Each host is running a publication server and a subscription server. + +The xDB Replication Console on each host can access and manage the replication systems on the other host if given the network IP address, port number, user name, and password with which the publication server and subscription server were installed with on the remote host. See Chapter [Introduction to the xDB Replication Console](../../#intro_xdb_console) for information on the user interface of the xDB Replication Console. + +## xDB Replication Server Command Line Interface + +xDB Replication Server Command Line Interface (CLI) is a command line driven alternative to the xDB Replication Console graphical user interface, providing equivalent functionality for creating and controlling all aspects of a replication system. + +Automation of replication system operations can be done by embedding xDB Replication Server CLI commands in scripts such as Bash for Linux. + +xDB Replication Server CLI is installed whenever you choose to install the xDB Replication Console. + +Chapter [xDB Replication Server Command Line Interface](../../08_xdb_cli/#xdb_cli) provides directions for using xDB Replication Server CLI. + +## Publication Database + +The publication database contains the tables and views used in a publication. The publication database may be running on the same host or on a different host than where the publication server is running as long as the hosts are accessible to each other by a network. + +Each publication database also contains a control schema, which is a collection of database objects containing metadata on all replication systems, both single-master and multi-master, controlled by the publication server connected to this publication database. See [Control Schema and Control Schema Objects](../../02_overview/03_replication_server_components_and_architecture/#control_schema_and_objects) for information on the control schema. + +In a multi-master replication system, all primary nodes are considered publication databases. + +A database plays the roles of both a publication database and a subscription database if it contains publications and subscriptions. + +## Subscription Database + +
+ +
+ +Note + +
+ +The subscription database applies only to single-master replication systems. + +
+ +The subscription database contains the tables created from a subscription. The subscription database may be running on the same host or on a different host than where the subscription server is running as long as the hosts are accessible to each other by a network. + +A subscription database can also serve as a publication source for replicating to a third server if desired. This configuration is referred to as cascading replication. + +A database plays the roles of both a publication database and a subscription database if it contains publications and subscriptions such as in the cascaded replication scenario. + +## Primary node + +In a multi-master replication system, the databases containing the set of tables (the publication) for which row changes are to be replicated are called primary nodes. The primary nodes may be running on the same host or on different hosts than where the publication server is running as long as the hosts are accessible to each other by a network. + +Each primary node also contains a control schema, which is a collection of database objects containing metadata on all replication systems, both single-master and multi-master, controlled by the publication server connected to this primary node. See [Control Schema and Control Schema Objects](../../02_overview/03_replication_server_components_and_architecture/#control_schema_and_objects) for information on the control schema. The primary nodes may be running under the same, or under multiple database server instances (Postgres database clusters). + + + +## Primary definition node + +The first node added to create a multi-master replication system is initially designated the primary definition node. This node must contain the table definitions (and optionally, the initial set of rows) that are to be included in the publication. + +As subsequent databases are added as primary nodes to the replication system, the table definitions and initial row sets can optionally be propagated from the primary definition node to the newly added primary nodes. + +After the multi-master replication system is defined, it is possible to reassign the role of the primary definition node to another primary node in the multi-master replication system. The significance of this reassignment is that snapshots can be taken from the newly appointed primary definition node to other primary nodes. This could be beneficial if the data in the old primary definition node becomes corrupt or out-of-sync with the other primary nodes and needs to be completely refreshed by a snapshot from another primary node. + +As with all primary nodes, the primary definition node contains a control schema, which is a collection of database objects containing metadata on all replication systems, both single-master and multi-master, controlled by the publication server connected to this primary node. See [Control Schema and Control Schema Objects](../../02_overview/03_replication_server_components_and_architecture/#control_schema_and_objects) for information on the control schema. + + + +## Control Schema and Control Schema Objects + +The control schema is a conceptual term referring to the collection of metadata database objects that define the logical and physical structure of, and enable the operation and maintenance of xDB Replication Server single-master and multi-master replication systems. + +These metadata database objects, referred to as control schema objects consist of tables, sequences, functions, procedures, triggers, packages, etc. + +The control schema objects store metadata such as type of replication system (single-master or multi-master), network location, database type, connection and authentication information for publication databases, subscription databases, and primary nodes, names of publications and the tables and views they contain, names of subscriptions and the publications to which they are subscribed, replication transaction status, replication scheduling, replication history cleanup scheduling, replication history, etc. + +Each publication database in a trigger-based, single-master replication system also contains control schema objects with the changes that have been made to rows in the publication and the status of whether or not those changes have been applied to the subscription tables. + +Similarly, for a multi-master replication system, each trigger-based primary node contains control schema objects with the changes that have been made to rows in the publication residing on that primary node, and the statuses of whether or not those changes have been applied to the other primary nodes in the multi-master replication system. + +
+ +
+ +Note + +
+ +For log-based single-master and multi-master replication systems, changes are extracted from the database server WAL files instead of being stored in control schema objects. See [Synchronization Replication with the Log-Based Method](../../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#sync_replication_log_based) for information on the log-based method. + +
+ +The actual, physical database schemas implementing the control schema to which the control schema objects belong varies depending upon the database type (Oracle, SQL Server, or Postgres) and how the database was initially configured for use by xDB Replication Server. + +The following points should be noted about the control schema: + +- The control schema and its control schema objects are created in every publication database of both single-master and multi-master replication systems. That is, all master (publication) databases of single-master replication systems and all primary nodes of multi-master replication systems. +- When a new primary database is added for a single-master replication system or a new primary node for a multi-master replication system, a snapshot operation is used to replicate the control schema to the newly added publication database assuming there is an existing controller database. See [Controller Database](../../02_overview/03_replication_server_components_and_architecture/#controller_database) for information regarding the controller database. +- Updates to the configuration of a single-master replication system or a multi-master replication system made by the xDB Replication Console or the xDB Replication Server Command Line Interface are synchronized between the control schemas on all publication databases to ensure that the metadata is consistent across all publication databases. +- The secondary (subscription) database of single-master replication systems contains one, single table as its metadata database object. The term, subscription metadata object, is specifically used to refer to this database object in the subscription database. The general terms, control schema and control schema objects refer to the database objects in the publication databases. +- The control schema objects in all databases controlled by the same given publication server generally contain the same information. This allows any such database to provide the information needed by xDB Replication Server to control all single-master and multi-master replication systems running under that given publication server. +- Should a certain publication database of a replication system go offline due to database server problems, network connectivity issues, etc., the other replication systems running under the same publication server are still functional since the other publication databases can provide the control schema information required to run all replication systems. + + + +## Controller Database + +In the xDB Replication Configuration file, the connection and authentication information for one publication database is included and as such, designated as the controller database. + +As with all publication databases, the controller database contains the control schema with the replication system information for all single-master and multi-master replication systems run by the publication server that accesses that xDB Replication Configuration file. + +The controller database serves as the primary provider of the replication system information to the publication server and the subscription server. Thus, upon initial startup, the publication server and subscription server attempt to connect to the designated controller database. This controller database then provides the metadata information for all replication systems. + +Should the initial connection to the controller database fail for some reason, you can manually edit the xDB Replication Configuration file to provide the connection and authentication information for another publication database. Then upon startup of the publication server and subscription server, the control schema of this alternate publication database is used to provide the replication system information. + +The initial controller database is determined by the first publication database definition created by the xDB Replication Console or the xDB Replication Server CLI either for a single-master or multi-master replication system. The publication server records the connection and authentication information in the xDB Replication Configuration file. + +If you wish to delete the publication database definition of the current controller database, you must first designate another publication database, defined under the same publication server, as the controller using the xDB Replication Console. See [Switching the Controller Database](../../07_common_operations/#switching_controller_db) for directions on switching the controller to another publication database. + +The following are some points regarding the controller database: + +- The database server running the controller database must be running and accessible before starting the publication server and subscription server. +- For a single-master replication system, the publication server under which the publication database and publication are defined and the subscription server under which the subscription database and the subscription related to the publication are defined, must both connect to the same the controller database. This gives the publication server and the subscription server access to the same control schema. +- When changes are made to the metadata maintained by the control schema in the controller database, these changes are replicated by the publication server to the control schemas of all other publication databases. This ensures that the metadata of all single-master and multi-master systems are complete and consistent in the control schemas of all publication databases. This allows you to switch the controller database at some later point in time. See [Switching the Controller Database](../../07_common_operations/#switching_controller_db) for information on switching the controller database. + +
+ +
+ +Note + +
+ +If the controller database is an Oracle or a SQL Server publication database, then a second Oracle or SQL Server publication database cannot be added to create a second single-master replication system. In order for xDB Replication Server to run more than one single-master replication systems consisting of Oracle or SQL Server publication databases, a Postgres publication database must be designated as the controller database. + +
+ +Once you have multiple Oracle or SQL Server publication databases set up in single-master replication systems with a Postgres controller database, do not switch the controller database to an Oracle or SQL Server publication database. diff --git a/product_docs/docs/eprs/6.2/02_overview/03_replication_server_components_and_architecture/02_logical_components.mdx b/product_docs/docs/eprs/6.2/02_overview/03_replication_server_components_and_architecture/02_logical_components.mdx new file mode 100644 index 00000000000..a0d38eae49c --- /dev/null +++ b/product_docs/docs/eprs/6.2/02_overview/03_replication_server_components_and_architecture/02_logical_components.mdx @@ -0,0 +1,148 @@ +--- +title: "Logical Components" +--- + + + + +This section discusses the logical components of a replication system, how they are related to each other, and how they correspond to the programs and databases in a replication system. + +The logical components are created when you build a replication system using the xDB Replication Console or the xDB Replication Server CLI. The logical components are stored as part of the replication system metadata in the control schema of the publication databases. + +Creating a replication system requires the following steps: + +- Register a publication server +- Create a publication database definition +- Create a publication + +For a single-master replication system, you then perform the following: + +- Register a subscription server +- Create a subscription database definition +- Create a subscription + +For a multi-master replication system, you create additional primary nodes by creating additional publication database definitions. + +Each of these steps creates a logical component that is represented by a node in the replication tree of the xDB Replication Console. See Chapter [Introduction to the xDB Replication Console](../../#intro_xdb_console) for a description of the xDB Replication Console. A brief description of these components is given in the following sections. + +## Publication Server + +The first step in creating a publication is to identify the publication server that is to be used to manage the publication. This process is called registering the publication server. + +Using the xDB Replication Console or the xDB Replication Server CLI, a publication server is registered by giving the IP address and port number of the host on which the publication server is running, along with the admin user name and password stored in the xDB Replication Configuration file located on the host running the publication server. (This information is determined during the publication server installation process.) + +When viewed in the xDB Replication Console, a registered publication server appears under the top level Replication Servers node in the replication tree. All publication related logical components are created subordinate to a registered publication server and appear underneath it in the replication tree. + +Section [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server) gives directions for registering a publication server for a single-master replication system. See [Registering a Publication Server](../../06_mmr_operation/#registering_pub_server) for a multi-master replication system. + +## Replication System Type (SMR/MMR) + +Subordinate to a registered publication server, two nodes representing the replication system type appear. One is identified by the label SMR for single-master replication and the other has the label MMR for multi-master replication. + +If you are creating a single-master replication system, you proceed to add logical components under the SMR type node. + +If you are creating a multi-master replication system, you proceed to add logical components under the MMR type node. + +## Publication Database Definition + +Subordinate to one of the Replication System Type nodes under a registered publication server, one or more publication database definitions can be created. + +A publication database definition identifies a database whose tables and views are to be used in a publication. The identify information consists of the database server IP address, port number, a database user name and password, and the database identifier. + +The publication server uses this information to connect to the publication database in order to create the replication system control schema in the publication database and perform the replications. + +Though the process of creating a publication database definition is similar for single-master and multi-master replication systems, their usage within the replication system is somewhat different. + +In a single-master replication system, a publication database definition identifies the storage area of one or more publications, each of which is eventually associated with its own subscription in a primary-to-secondary relationship. + +In a multi-master replication system, each publication database definition subordinate to the MMR type node of a given publication server identifies a primary node in a single, multi-master replication system. + +
+ +
+ +Note + +
+ +Currently, there can only be one multi-master replication system per publication server. + +
+ +Section [Adding a Publication Database](../../05_smr_operation/02_creating_publication/#adding_pub_database) discusses creating a publication database definition for a single-master replication system. See [Adding the Primary definition node](../../06_mmr_operation/#adding_pdn) and [Creating Additional Primary nodes](../../06_mmr_operation/#creating_primary_nodes) for a multi-master replication system. + +## Publication + +Subordinate to a publication database definition in a single-master replication system, one or more publications can be defined. A publication contains a list of tables and views that are to be replicated to a subscription database. + +In a single-master replication system, the database user name specified in the publication database definition of the publication’s parent, as viewed in the replication tree, must have the `SELECT` object privilege on any table or view that is to be included in the publication. + +Subordinate to a publication database definition in a multi-master replication system, one and only one publication can be defined. The publication contains the list of tables that are to be replicated and kept synchronized in the primary nodes of the multi-master replication system. + +In a multi-master replication system, the database user name specified in the publication database definition of the publication’s parent, as viewed in the replication tree, must have superuser privileges and be the owner of all tables to be included in the publication. + +Section [Adding a Publication](../../05_smr_operation/02_creating_publication/#adding_publication) discusses creating a publication for a single-master replication system. See [Adding a Publication](../../06_mmr_operation/#add_pub_mmr) for a multi-master replication system. + +## Subscription Server + +
+ +
+ +Note + +
+ +The subscription server applies only to single-master replication systems. You do not register a subscription server when creating a multi-master replication system. + +
+ +The first step in creating a subscription is to identify the subscription server that is to be used to manage the subscription. This process is called registering the subscription server. + +Using the xDB Replication Console or the xDB Replication Server CLI, a subscription server is registered by giving the IP address and port number of the host on which the subscription server is running, along with the admin user name and password stored in the xDB Replication Configuration file located on the host running the subscription server. (This information is determined during the subscription server installation process.) + +When viewed in the xDB Replication Console, a registered subscription server appears under the top level Replication Servers node in the replication tree. All subscription related logical components are created subordinate to a registered subscription server and appear underneath it in the replication tree. Section [Registering a Subscription Server](../../05_smr_operation/03_creating_subscription/#registering_subscription_server) gives directions for registering a subscription server. + +## Subscription Database Definition + +
+ +
+ +Note + +
+ +The subscription database definition applies only to single-master replication systems. You do not create a subscription database definition when creating a multi-master replication system. + +
+ +Subordinate to a registered subscription server, one or more subscription database definitions can be created. + +A subscription database definition identifies a database to which a publication’s tables and views are to be replicated. The identify information consists of the database server IP address, port number, a database user name and password, and the database identifier. + +The subscription server uses this information to connect to the subscription database to create the table definitions. + +The publication server also uses this information to connect to the subscription database when it performs replications. + +Section [Adding a Subscription Database](../../05_smr_operation/03_creating_subscription/#adding_subscription_database) discusses creating a subscription database definition. + +## Subscription + +
+ +
+ +Note + +
+ +The subscription applies only to single-master replication systems. You do not create a subscription when creating a multi-master replication system. + +
+ +Subordinate to a subscription database definition, one or more subscriptions can be defined. A subscription associates a publication to a subscription database to which the publication’s tables and views are to be replicated. + +Each subscription can be associated with one and only one publication. + +Section [Adding a Subscription](../../05_smr_operation/03_creating_subscription/#adding_subscription) discusses creating a subscription. diff --git a/product_docs/docs/eprs/6.2/02_overview/03_replication_server_components_and_architecture/03_xdb_replication_system_examples.mdx b/product_docs/docs/eprs/6.2/02_overview/03_replication_server_components_and_architecture/03_xdb_replication_system_examples.mdx new file mode 100644 index 00000000000..a20fec4429a --- /dev/null +++ b/product_docs/docs/eprs/6.2/02_overview/03_replication_server_components_and_architecture/03_xdb_replication_system_examples.mdx @@ -0,0 +1,133 @@ +--- +title: "xDB Replication System Examples" +--- + + + + +This section contains examples of replication systems and how the logical components are used to define them. + +In the accompanying diagrams, the logical components, represented by nodes in the replication tree of the xDB Replication Console, are superimposed on physical component diagrams. The logical components are shaded in yellow to aid in identifying them in the diagrams. + +## Oracle to PostgreSQL or Advanced Server Replication + +The following is an illustration of a basic Oracle to PostgreSQL or Advanced Server single-master replication system. A single publication in Oracle contains tables from two schemas that are replicated to a database residing in either PostgreSQL or Advanced Server. + +![Oracle to PostgreSQL or Advanced Server replication](/../../images/image13.png) + +The following describes the logical components in the preceding diagram: \* The publication server to be used is identified by registering its network location, user name, and password. + +- A publication database definition is created subordinate to the SMR type node under the publication server. The Oracle database user name pubuser is specified in the definition along with the database network location and database identifier. When you create a user named `pubuser` in Oracle, a schema named `pubuser` is automatically created by Oracle at the same time. The publication server creates the control schema objects in the `pubuser` control schema for the replication system’s metadata when you create the publication database definition. +- A publication named pub is created subordinate to the publication database definition. The publication consists of table `A` in schema `S1` and tables `B` and `C` in schema `S2`. +- The subscription server to be used is identified by registering its network location, user name, and password. +- A subscription database definition is created subordinate to the subscription server. The Postgres database user name `subuser` is specified in the definition along with the database network location and database identifier. +- A subscription named `sub` is created subordinate to the subscription database definition. When the subscription is created, the subscription server creates schemas named `S1` and `S2` in the subscription database. The table definitions for tables `A, B`, and `C` are also created at this time. When replication occurs, the publication server populates these tables with rows from the publication. + +The following screen capture shows how the logical components of this replication system appear in the xDB Replication Console replication tree. + +![Oracle to Postgres replication tree](/../../images/image14.png) + +See Chapter [Introduction to the xDB Replication Console](../../#intro_xdb_console) for an introduction to the xDB Replication Console. + +## SQL Server to PostgreSQL or Advanced Server Replication + +The following is an illustration of a basic SQL Server to PostgreSQL or Advanced Server single-master replication system. A single publication in SQL Server contains tables from two schemas that are replicated to a database residing in either PostgreSQL or Advanced Server. + +![SQL Server to PostgreSQL or Advanced Server replication](/../../images/image15.png) + +The following describes the logical components in the preceding diagram: + +- The publication server to be used is identified by registering its network location, user name, and password. +- A publication database definition is created subordinate to the SMR type node under the publication server. The SQL Server login pubuser is specified in the definition along with the database network location and database identifier. The schema pubuser was created during the publication database preparation step as described in [SQL Server Publication Database](../../05_smr_operation/01_prerequisites/#sql_server_pub_db). The `pubuser` schema along with the control schema consisting of three physical schemas `_edb_replicator_pub`, `_edb_replicator_sub`, and `_edb_scheduler` are populated with the control schema objects for the replication system’s metadata when you create the publication database definition. +- A publication named pub is created subordinate to the publication database definition. The publication consists of table `A` in schema `S1` and tables `B` and `C` in schema `S2`. +- The subscription server to be used is identified by registering its network location, user name, and password. +- A subscription database definition is created subordinate to the subscription server. The Postgres database user name `subuser` is specified in the definition along with the database network location and database identifier. +- A subscription named sub is created subordinate to the subscription database definition. When the subscription is created, the subscription server creates schemas named `S1` and `S2` in the subscription database. The table definitions for tables `A, B`, and `C` are also created at this time. When replication occurs, the publication server populates these tables with rows from the publication. + +The following screen capture shows how the logical components of this replication system appear in the xDB Replication Console replication tree. + +![SQL Server to Postgres replication tree](/../../images/image16.png) + +See Chapter [Introduction to the xDB Replication Console](../../#intro_xdb_console) for an introduction to the xDB Replication Console. + +## Advanced Server to Oracle Replication + +The following is an illustration of a basic Advanced Server to Oracle single-master replication system. A single publication in an Advanced Server database contains tables from two schema that are replicated to an Oracle database. + +![Advanced Server to Oracle replication](/../../images/image17.png) + +The following describes the logical components in the preceding diagram: + +- The publication server to be used is identified by registering its network location, user name, and password. +- A publication database definition is created subordinate to the SMR type node under the publication server. The Postgres database user name `pubuser` is specified in the definition along with the database network location and database identifier. The publication server creates the control schema consisting of three physical schemas `_edb_replicator_pub`, `_edb_replicator_sub`, and `_edb_scheduler` and populates them with the control schema objects for the replication system’s metadata when you create the publication database definition. +- A publication named pub is created subordinate to the publication database definition. The publication consists of table `A` in schema `S1` and tables `B` and `C` in schema `S2`. +- The subscription server to be used is identified by registering its network location, user name, and password. +- A subscription database definition is created subordinate to the subscription server. The Oracle database user name `subuser` is specified in the definition along with the database network location and database identifier. +- A subscription named sub is created subordinate to the subscription database definition. When you create a user named `subuser` in Oracle, a schema named `subuser` is automatically created by Oracle at the same time. The table definitions for tables A, B, and C are created in schema `subuser` when you create subscription sub. When replication occurs, the publication server populates these tables with rows from the publication. + +The following screen capture shows how the logical components of this replication system appear in the xDB Replication Console replication tree. + +![Advanced Server to Oracle replication tree](/../../images/image18.png) + +See Chapter [Introduction to the xDB Replication Console](../../#intro_xdb_console) for an introduction to the xDB Replication Console. + +## PostgreSQL to Oracle Replication + +The following is an illustration of a basic PostgreSQL to Oracle single-master replication system. A single publication in a PostgreSQL database contains tables from two schemas that are replicated to an Oracle database. WAL based method as well as trigger-based method is supported in this type of replication. + +![PostgreSQL to Oracle replication](/../../images/PG_to_oracle.png) + +The following describes the logical components in the preceding diagram: + +- The publication server to be used is identified by registering its network location, user name, and password. +- A publication database definition is created subordinate to the SMR type node under the publication server. The Postgres database user name pubuser is specified in the definition along with the database network location and database identifier. The publication server creates the control schema consisting of three physical schemas \_edb\_replicator\_pub, \_edb\_replicator\_sub, and \_edb\_scheduler and populates them with the control schema objects for the replication system’s metadata when you create the publication database definition. +- A publication named pub is created subordinate to the publication database definition. The publication consists of table A in schema S1 and tables B and C in schema S2. +- The subscription server to be used is identified by registering its network location, user name, and password. +- A subscription database definition is created subordinate to the subscription server. The Oracle database user name subuser is specified in the definition along with the database network location and database identifier. +- A subscription named sub is created subordinate to the subscription database definition. When you create a user named subuser in Oracle, a schema named subuser is automatically created by Oracle at the same time. The table definitions for tables A, B, and C are created in schema subuser when you create subscription sub. When replication occurs, the publication server populates these tables with rows from the publication. + +The following screen capture shows how the logical components of this replication system appear in the xDB Replication Console replication tree. + +![PostgreSQL to Oracle replication tree](/../../images/PG_to_oracle_sc.png) + +## PostgreSQL or Advanced Server to SQL Server Replication + +The following is an illustration of a basic PostgreSQL or Advanced Server to SQL Server single-master replication system. A single publication in a PostgreSQL or Advanced Server database contains tables from two schemas that are replicated to a SQL Server database. + +![PostgreSQL or Advanced Server to SQL Server replication](/../../images/image19.png) + +The following describes the logical components in the preceding diagram: + +- The publication server to be used is identified by registering its network location, user name, and password. +- A publication database definition is created subordinate to the SMR type node under the publication server. The Postgres database user name `pubuser` is specified in the definition along with the database network location and database identifier. The publication server creates the control schema consisting of three physical schemas `_edb_replicator_pub`, `_edb_replicator_sub`, and `_edb_scheduler` and populates them with the control schema objects for the replication system’s metadata when you create the publication database definition. +- A publication named pub is created subordinate to the publication database definition. The publication consists of table `A` in schema `S1` and tables `B` and `C` in schema `S2`. +- The subscription server to be used is identified by registering its network location, user name, and password. +- A subscription database definition is created subordinate to the subscription server. The SQL Server login `subuser` is specified in the definition along with the database network location and database identifier. +- A subscription named sub is created subordinate to the subscription database definition. When the subscription is created, the subscription server creates schemas named `S1` and `S2` in the subscription database. The table definitions for tables `A, B`, and `C` are also created at this time. When replication occurs, the publication server populates these tables with rows from the publication. + +The following screen capture shows how the logical components of this replication system appear in the xDB Replication Console replication tree. + +![Postgres to SQL Server replication tree](/../../images/image20.png) + +See [Introduction to the xDB Replication Console](../../#intro_xdb_console) for an introduction to the xDB Replication Console. + +## Postgres Multi-Master Replication + +The following is an illustration of a basic Postgres multi-master replication system. A publication in a Postgres primary definition node contains tables from two schemas that are initially replicated to two other Postgres primary nodes. The tables in all three primary nodes can then be updated and synchronized with each other. + +![Postgres multi-master replication system](/../../images/image21.png) + +The following describes the logical components in the preceding diagram: + +- The publication server to be used is identified by registering its network location, user name, and password. +- A publication database definition is created subordinate to the MMR type node under the publication server. This first publication database definition identifies the primary definition node. The Postgres database user name `MMRuser_a` is specified in the definition along with the database network location and database identifier. The publication server creates the control schema consisting of three physical schemas `_edb_replicator_pub`, `_edb_replicator_sub`, and `_edb_scheduler` and populates them with the control schema objects for the replication system’s metadata when you create the publication database definition. +- A publication named pub is created subordinate to the publication database definition. The publication consists of table `A` in schema `S1` and tables `B` and `C` in schema `S2`. +- A second primary node is added by creating another publication database definition subordinate to the MMR type node of the publication server under which the primary definition node resides. The Postgres database user name `MMRuser_b` is specified in the definition along with the database network location and database identifier to create the second primary node. +- When you add the second primary node, you can choose to have the publication server create schemas S1 and S2 and the table definitions for `A, B`, and `C` for you, or you could have manually created the schemas and table definitions beforehand. The publication server creates the control schema consisting of three physical schemas `_edb_replicator_pub`, \_edb\_replicator\_sub, and \_edb\_scheduler under which it creates the control schema objects to store the primary node’s metadata. When defining the primary node, you can choose to have the publication server populate these tables with rows from the publication at this time, or you can defer table loading to a later point in time. +- A third primary node is added in a similar manner using the Postgres database user name `MMRuser_c`. + +The following screen capture shows how the logical components of this replication system appear in the xDB Replication Console replication tree. + +![Postgres multi-master replication tree](/../../images/image22.png) + +See Chapter [Introduction to the xDB Replication Console](../../#intro_xdb_console) for an introduction to the xDB Replication Console. diff --git a/product_docs/docs/eprs/6.2/02_overview/03_replication_server_components_and_architecture/index.mdx b/product_docs/docs/eprs/6.2/02_overview/03_replication_server_components_and_architecture/index.mdx new file mode 100644 index 00000000000..4564191ad7d --- /dev/null +++ b/product_docs/docs/eprs/6.2/02_overview/03_replication_server_components_and_architecture/index.mdx @@ -0,0 +1,14 @@ +--- +title: "xDB Replication Server Components and Architecture" +--- + + + + +This section describes the components and architecture of xDB Replication Server. Section [Physical Components](../02_overview/03_replication_server_components_and_architecture/#physical_components) describes the executable programs, files, and databases that comprise xDB Replication Server. Section [Logical Components](../02_overview/03_replication_server_components_and_architecture/#logical_components) defines the logical components of a replication system and how they correspond to the programs and databases. Section [xDB Replication System Examples](../02_overview/03_replication_server_components_and_architecture/#xdb_replication_system_examples) illustrates some examples of replication systems. + +
+ +physical\_components logical\_components xdb\_replication\_system\_examples + +
diff --git a/product_docs/docs/eprs/6.2/02_overview/04_design_replication_system/01_general_steps.mdx b/product_docs/docs/eprs/6.2/02_overview/04_design_replication_system/01_general_steps.mdx new file mode 100644 index 00000000000..6b5b143e578 --- /dev/null +++ b/product_docs/docs/eprs/6.2/02_overview/04_design_replication_system/01_general_steps.mdx @@ -0,0 +1,20 @@ +--- +title: "General Steps" +--- + + + + +The following steps provide a general guideline for implementing a replication system. + +**Step 1:** Determine if xDB Replication Server is the right solution for your requirements and you have chosen the best solution for your particular needs. xDB Replication Server can be used to implement single-master or multi-master replication systems. For single-master replication systems, the distinguishing characteristic of xDB Replication Server is its ability to replicate from an Oracle database to a PostgreSQL or Advanced Server database, from a SQL Server database to a PostgreSQL or Advanced Server database, from an Advanced Server database to an Oracle database, or from a PostgreSQL or Advanced Server database to a SQL Server database. + +**Step 2:** Plan the general strategy of how you will use xDB Replication Server. Will the single-master or multi-master model best suit your needs? (See Section 2.1 for use case examples of single-master and multi-master replication systems.) Will you be replicating from Oracle to Postgres, from SQL Server to Postgres, from Advanced Server to Oracle, or from Postgres to SQL Server? Will you be replicating between PostgreSQL and/or Advanced Server databases? How often will you need to replicate the data? Will replication be done on an ad hoc basis or does it need to occur regularly according to a schedule? + +**Step 3:** Plan the logistics of your replication system. How many tables do you expect to replicate and what are their sizes in total number of bytes and number of rows? What percentage of rows do you expect to have been changed on each table between each replication? Are your database servers required to run on dedicated machines? + +**Step 4:** Design your replication system. Determine whether your replication system will be distributed or will run on a single host. Determine the publications and subscriptions you will need and their tables and views. Make sure your publication tables meet the requirements for an xDB Replication Server publication. See [Design Considerations](../../02_overview/04_design_replication_system/#design_considerations) and [Restrictions on Replicated Database Objects](../../02_overview/04_design_replication_system/#restrictions_on_replicated_database_objects) for details. + +**Step 5:** Implement and test your replication system in a test environment. Try out your replication system on a subset of your publication data to ensure the replication process works as expected. Make sure the resulting replicated tables can be used as expected in your application. Establish preliminary metrics on how long the replication process will be expected to take in your full production environment. + +**Step 6:** Implement and test your replication system in your production environment. diff --git a/product_docs/docs/eprs/6.2/02_overview/04_design_replication_system/02_design_considerations.mdx b/product_docs/docs/eprs/6.2/02_overview/04_design_replication_system/02_design_considerations.mdx new file mode 100644 index 00000000000..8f2cc8518b8 --- /dev/null +++ b/product_docs/docs/eprs/6.2/02_overview/04_design_replication_system/02_design_considerations.mdx @@ -0,0 +1,25 @@ +--- +title: "Design Considerations" +--- + + + + +Keep the following points in mind when designing a replication system: + +- Multi-master replication is supported only on Postgres databases. In addition, Advanced Server databases must be running in the same compatibility mode – either all Oracle or all PostgreSQL. +- An Oracle table can be a member of at most one publication if all publications are subordinate to one publication database definition. However, an Oracle table can be a member of multiple publications if each publication is subordinate to a different publication database definition. +- A Postgres table can be a member of at most one publication. +- Each table used in a publication must have a primary key with the exception of tables in snapshot-only publications, which do not require a primary key. +- Make sure table definitions are well established before creating publications. Unless the DDL change replication feature is used as described in Section [Replicating DDL Changes](../../07_common_operations/08_replicating_ddl_changes/#replicating_ddl_changes), if a table definition is changed, any publication containing the table along with its associated subscription must be deleted and recreated, otherwise replication may fail. The same applies for the table definitions in a primary definition node and its associated primary nodes. Replication failures can be seen in the replication history. +- Views can be members of snapshot-only publications. In the subscription database, a view is replicated as a table. +- A publication may have multiple subscriptions. +- A subscription can be associated with at most one publication. +- A database can contain both publications and subscriptions. +- A given publication server can support only one multi-master replication system. All primary nodes created subordinate to a given publication server are assumed to be part of the same multi-master replication system. +- A table that is created as a result of a subscription can be used in another publication. Thus, a publication can replicate data to a subscription which in turn, can be used in a publication to replicate to another subscription, thus creating a cascaded replication architecture. +- There are restrictions on the combinations and configurations of database servers that can be used for a publication and its subscription. See [Advanced Server Compatibility Configuration Modes](../../10_appendix/02_upgrading_to_xdb6_2/#adv_server_compatibility_conf_modes) for details on these restrictions. +- All replication system components must be running in order for replication to occur, or before performing any configuration, operation, or modification in the replication system. (The xDB Replication Console is used for the configuration and modification of a replication system. The xDB Replication Console does not need to be running in order for replication to occur.) +- In general, the order of creation of a replication system is as follows: 1) Create the required physical databases, database user names, tables, and views to be used in the replication system. 2) Define the replication system logical components using the xDB Replication Console or xDB Replication Server CLI. 3) Perform replication. +- In general, the order of removal of a single-master replication system is as follows: 1) Remove the replication system logical components using the xDB Replication Console or xDB Replication Server CLI starting with the subscriptions (Subscription nodes) and then their parent components (Subscription Database nodes). 2) Unregister the subscription server if you no longer have any need for it. 3) Repeat the same process for the publications. 4) After all replication system logical components have been removed (except for possibly the publication server and subscription server) you can drop any of the physical database objects in Oracle, SQL Server, or Postgres. Do not drop the control schema objects manually, for example by using an SQL command line utility. Doing so may cause the xDB Replication Console and xDB Replication Server CLI to become inoperable. (See [Deleting the Control Schema and Control Schema Objects](#del_control_schema_and%20objects) if this problem occurs.) Deleting the replication system logical components using the xDB Replication Console or xDB Replication Server CLI automatically drops the control schema objects from the physical database. +- The order of removal of a multi-master replication system is as follows: 1) Remove the replication system logical components using the xDB Replication Console or xDB Replication Server CLI starting with the publication database definitions of the non-PDN nodes. 2) Remove the publication from under the primary definition node. 3) Remove the publication database definition of the primary definition node. 4) After all replication system logical components have been removed (except for possibly the publication server) you can drop any of the physical database objects in Postgres. Do not drop the control schema objects manually, for example by using an SQL command line utility. Doing so may cause the xDB Replication Console and xDB Replication Server CLI to become inoperable. diff --git a/product_docs/docs/eprs/6.2/02_overview/04_design_replication_system/03_restrictions_on_replicated_database_objects.mdx b/product_docs/docs/eprs/6.2/02_overview/04_design_replication_system/03_restrictions_on_replicated_database_objects.mdx new file mode 100644 index 00000000000..975072df33f --- /dev/null +++ b/product_docs/docs/eprs/6.2/02_overview/04_design_replication_system/03_restrictions_on_replicated_database_objects.mdx @@ -0,0 +1,140 @@ +--- +title: "Restrictions on Replicated Database Objects" +--- + + + + +When a subscription is created in a single-master replication system, the table definitions and most database objects and attributes associated with the publication tables are created in the subscription database by the subscription server. + +If you so choose, the same process can automatically occur when a primary node is added to a multi-master replication system. The table definitions and most database objects and attributes associated with the publication tables can be created in the newly added primary node by the publication server. + +The following is a list of database objects and table attributes that are replicated from the publication in either a single-master or multi-master replication system. + +- Tables +- Views (for snapshot-only publications) created as tables in the subscription database +- Primary keys +- Not null constraints +- Unique constraints +- Check constraints +- Indexes + +
+ +
+ +Note + +
+ +Foreign key constraints are not replicated by the publication or subscription server in a single-master replication system. However, in a multi-master replication system, foreign key constraints are replicated from the primary definition node to other primary nodes. + +
+ +
+ +
+ +Note + +
+ +Sequences (database objects created by the `CREATE SEQUENCE` statement) are not replicated from the publication database to the subscription databases in a single-master replication system. Sequences are also not replicated from the primary definition node to other primary nodes in a multi-master replication system. + +
+ +xDB Replication Server does have some restrictions on the types of tables it can replicate. + +## Restrictions on Oracle Database Objects + +Certain types of Oracle partitioned tables can be replicated. See [Replicating Oracle Partitioned Tables](../../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/#replicate_oracle_partitioned_tables) for details. + +Oracle global temporary tables cannot be replicated. + +Oracle tables that include the following data types cannot be replicated: + +- `BFILE` +- `BINARY_DOUBLE` +- `BINARY_FLOAT` +- `MLSLABEL` +- `XMLTYPE` + +Oracle tables with the following data types can be used in snapshot-only publications, but cannot be used in synchronization replications: + +- `BLOB` +- `CLOB` +- `LONG` +- `LONG RAW` +- `NCLOB` +- `RAW` + +## Restrictions on SQL Server Database Objects + +SQL Server tables that include the following data types cannot be replicated: + +- `GEOGRAPHY` +- `GEOMETRY` +- `SQL_VARIANT` + +
+ +
+ +Note + +
+ +See Replicating the SQL Server SQL\_VARIANT Data Type <replicating\_sql\_server\_sql\_variant\_data\_type> for a method to replicate tables containing the `SQL_VARIANT` data type under certain conditions. + +
+ +SQL Server tables with the following data types can be used in snapshot-only publications, but cannot be used in synchronization replications: + +- `BINARY` +- `IMAGE` +- `NTEXT` +- `NVARCHAR(max)` +- `TEXT` +- `TIMESTAMP` +- `VARBINARY` +- `VARBINARY(max)` + +## Restrictions on Postgres Database Objects + +For replicating Postgres partitioned tables see [Replicating Postgres Partitioned Tables](../../07_common_operations/#replicating_postgres_partitioned_tables) for details. Postgres tables with the following data types in a column that is part of the primary key cannot be replicated: + +- `BLOB` +- `BYTEA` +- `RAW` + +Postgres tables that include `OID` based large objects cannot be replicated. For information on `OID` based large objects see `pg_largeobject` in the PostgreSQL Core Documentation located at: + +> + +Postgres tables that include any geometric data types such as POINT, POLYGON, etc., cannot be replicated to an Oracle subscription database. + +Postgres tables that include the following data types cannot be replicated to a SQL Server subscription database: + +- `ABSTIME` +- `ACLITEM` +- `CHKPASS` +- `CIRCLE` +- `CUBE` +- `JSON` +- `ROWID` +- `SEG` +- `Any ARRAY` data type (that is, defined as `data_type[]`) +- Any user-defined data type (that is, defined as `CREATE TYPE` type\_name) + +**Restrictions on Range Data Types** + +Postgres data types called range types were first supported in PostgreSQL version 9.2 and Advanced Server version 9.2. Built-in range types refer to the following built-in data types: `int4range, int8range, numrange, tsrange, tstzrange`, and `daterange`. + +Postgres tables containing the built-in range types can be included in the publication of a single-master or multi-master replication system. + +However, this results in the following restrictions on the subscription databases of a single-master replication system or the additional primary nodes of a multi-master replication system: + +- If a publication table of a single-master replication system contains any built-in range types, then a database can be added as a subscription database only if the database server of the intended subscription database is Postgres version 9.2 or later. +- If a publication table of the primary definition node in a multi-master replication system contains any built-in range types, then a database can be added as an additional primary node only if the database server of this intended primary node is Postgres version 9.2 or later. + +Custom range types constructed with the `CREATE TYPE AS RANGE` command are not supported in xDB Replication Server. diff --git a/product_docs/docs/eprs/6.2/02_overview/04_design_replication_system/04_performance_considerations.mdx b/product_docs/docs/eprs/6.2/02_overview/04_design_replication_system/04_performance_considerations.mdx new file mode 100644 index 00000000000..52c20891a97 --- /dev/null +++ b/product_docs/docs/eprs/6.2/02_overview/04_design_replication_system/04_performance_considerations.mdx @@ -0,0 +1,60 @@ +--- +title: "Performance Considerations" +--- + + + + +This section discusses provides some general guidelines on performance considerations. + +## When to Use Snapshot or Synchronization + +Generally, synchronization would be the quickest replication method since it only applies changes to the target tables since the last replication occurred. + +However, if a large percentage of rows are changed between each replication, there may be a point where it would be faster to completely reload the target tables using a snapshot than to execute individual SQL statements on a large percentage of rows as would be done for synchronization replication. Experimentation may be necessary to determine if, and at what point a snapshot would be faster. + +Snapshot replication may be an option for tables with the following characteristics: + +- Tables are relatively small in size +- A large percentage of rows are changed between replications + +Synchronization replication is the better option for tables with the following characteristics: + +- Tables are large in size +- A small percentage of rows are changed between replications + +In a single-master replication system, if you find that one group of tables consistently replicates faster using snapshot replication, then these tables can be made part of a snapshot-only publication while the remaining tables can be members of a publication that uses synchronization replication. + +## When to Use On Demand Replication + +The xDB Replication Console and xDB Replication Server CLI both give you the capability to immediately start a replication. This is called an on demand replication. + +On demand replication can be performed at any time regardless of whether or not there is an existing schedule. An on demand replication does not change the date and time when the next replication is scheduled to occur according to an existing schedule. + +If a publication is a snapshot-only publication, then the only type of on demand replication that can be performed on this publication is a snapshot. + +If a publication is not a snapshot-only publication, you can perform an on demand replication using either the snapshot method or the synchronization method. + +When you are in the development and testing phases of your replication system, you would typically use on demand replication so that you can immediately force the replication to occur and analyze the results. + +When your replication system is ready for production, a schedule would typically be used so that replications can occur unattended at regular time intervals. See [Creating a Schedule](../../07_common_operations/#creating_schedule) for directions on creating a schedule. + +There may be other situations where you would want to force a replication to take place ahead of its normal schedule. Reasons for performing an on demand replication may include the following: + +- The number of changes to the source tables is growing at a faster rate than usual, and you do not want to wait for the regularly scheduled synchronization time to replicate all of the accumulated changes. +- You have set up your replication system to perform synchronizations, but on this occasion there have been an unusually large number of changes made to the source tables, and you would rather perform a snapshot of all source tables rather than execute a large number of SQL statements against the target tables. +- Changes have been made directly to the rows of the target tables so that they no longer have the same content as their source table counterparts. You can perform an on demand snapshot replication to reload all rows of the target tables from your current set of source tables. + +
+ +
+ +Note + +
+ +In a multi-master replication system, on demand snapshots can only be made from the primary definition node to another primary node. + +
+ +See [On Demand Replication](../../05_smr_operation/04_on_demand_replication/#on_demand_replication) for directions on performing an on demand replication for a single-master replication system. See [On Demand Replication](../../05_smr_operation/04_on_demand_replication/../../06_mmr_operation/#on_demand_replication_mmr) for a multi-master replication system. diff --git a/product_docs/docs/eprs/6.2/02_overview/04_design_replication_system/05_distributed_replication.mdx b/product_docs/docs/eprs/6.2/02_overview/04_design_replication_system/05_distributed_replication.mdx new file mode 100644 index 00000000000..5ce742def57 --- /dev/null +++ b/product_docs/docs/eprs/6.2/02_overview/04_design_replication_system/05_distributed_replication.mdx @@ -0,0 +1,59 @@ +--- +title: "Distributed Replication" +--- + + + + +xDB Replication Server provides the flexibility of allowing you to run the replication system’s components on separate machines on a network. + +In fact xDB Replication Server is designed so that it is possible to set up replication systems where each of the components (publication server, subscription server, publication database, subscription database, and primary nodes) may all run on the same host, each component may run on its own separate host, or any combination of components may run on any number of hosts. + +However, for practical purposes, there are two basic scenarios. The simplest case is where all components are on the same host. The other case is where you have the Oracle or SQL Server database server running on a host separate from the rest of the replication system components. + +This section discusses the advantages and disadvantages of each scenario. + +## Single Host + +The simplest implementation of a replication system is when all replication components run on a single host. This means that the PostgreSQL or Advanced Server installation, the complete xDB Replication Server installation (publication server and subscription server), and the Oracle or SQL Server database server reside on the same machine. + +The Postgres publication or subscription database as the case may be, can reside in the initial database cluster that is created when Postgres is installed on the host. + +![Single host replication system](/../../images/image23.png) + +The advantages of a single host replication system are the following: + +- There is a performance advantage since there is no network over which to push replication data, especially if large snapshots are involved. +- Configuration is much simpler. When creating the replication system logical components, the IP addresses of all components are the same. + +The disadvantages of a single host replication system are the following: + +- The replication system and the database servers all consume the resources of one machine, which can adversely affect database application performance. +- The publication and subscription databases may be in different geographic locations, thereby requiring multiple networked hosts. +- Your site may require the use of a dedicated host for the Oracle or SQL Server database server so xDB Replication Server could not reside on the same machine. + +## Single-Master Replication Distributed Hosts + +xDB Replication Server allows you to build a replication system with either or both of the publication database and the subscription database on separate hosts. This is illustrated in the following diagram: + +![Oracle database server on distributed host](/../../images/image24.png) + +The same remote distribution can be used for the subscription database instead of, or in addition to the publication database. + +The advantages of a distributed host replication system are the following: + +- The replication system and the database servers can each consume the resources of their own machines, which can be individually selected and tuned. +- The publication and subscription databases can be in different geographic locations. +- You can enforce stronger database security if only the database server is allowed to run on a host. + +The disadvantages of a distributed host replication system are the following: + +- There may be a performance disadvantage since there is a network over which to push replication data, especially if large snapshots are involved. +- Installation is more complex if the Postgres database must run on a different host than xDB Replication Server. This involves installing Postgres on two separate hosts. +- Configuration is more complex. The network and firewalls must be properly configured to allow the distributed components to communicate. When creating the replication system logical components, the correct IP addresses of all components must be used. In addition, the correct IP addresses must be kept up-to-date in the replication system control schema should they change in the networked environment. + +## Multi-Master Replication Distributed Hosts + +In a multi-master replication system, the Postgres database servers running the primary nodes can be running on a single or multiple hosts. The following example illustrates two primary nodes running on database servers on separate hosts as well as a primary node running on the same database server as the publication server. + +![Multi-master replication on distributed hosts](/../../images/image25.png) diff --git a/product_docs/docs/eprs/6.2/02_overview/04_design_replication_system/index.mdx b/product_docs/docs/eprs/6.2/02_overview/04_design_replication_system/index.mdx new file mode 100644 index 00000000000..f29aa712169 --- /dev/null +++ b/product_docs/docs/eprs/6.2/02_overview/04_design_replication_system/index.mdx @@ -0,0 +1,14 @@ +--- +title: "Designing a Replication System" +--- + + + + +This section presents the general steps, design considerations, and best practices for designing a replication system before you begin the actual implementation. + +
+ +general\_steps design\_considerations restrictions\_on\_replicated\_database\_objects performance\_considerations distributed\_replication + +
diff --git a/product_docs/docs/eprs/6.2/02_overview/index.mdx b/product_docs/docs/eprs/6.2/02_overview/index.mdx new file mode 100644 index 00000000000..96a4d0c6876 --- /dev/null +++ b/product_docs/docs/eprs/6.2/02_overview/index.mdx @@ -0,0 +1,14 @@ +--- +title: "Overview" +--- + + + + +This chapter defines basic replication terms and concepts, and presents an overview of the components and architecture of xDB Replication Server. The chapter concludes with design guidelines and directions for implementing a replication system using xDB Replication Server. + +
+ +why\_replication replication\_concepts\_and\_definitions replication\_server\_components\_and\_architecture design\_replication\_system + +
diff --git a/product_docs/docs/eprs/6.2/03_installation/01_installing_with_stackbuilder.mdx b/product_docs/docs/eprs/6.2/03_installation/01_installing_with_stackbuilder.mdx new file mode 100644 index 00000000000..9f64734d854 --- /dev/null +++ b/product_docs/docs/eprs/6.2/03_installation/01_installing_with_stackbuilder.mdx @@ -0,0 +1,199 @@ +--- +title: "Installing With Stack Builder or StackBuilder Plus" +--- + + + + +`Stack Builder` and `StackBuilder Plus` are programs used to download and install add-on products and updates to PostgreSQL and Advanced Server. Stack Builder is used for PostgreSQL. StackBuilder Plus is used for Advanced Server. + +Stack Builder and StackBuilder Plus are very similar in functionality and look-and-feel, differing primarily in the list of products offered. + +This section demonstrates the installation of xDB Replication Server using StackBuilder Plus for Advanced Server. Steps are noted where the installation process differs for installation on PostgreSQL using Stack Builder. + +**Step 1:** You must have Java Runtime Environment (JRE) version 1.7 or later installed on the hosts where you intend to install any xDB Replication Server component (xDB Replication Console, publication server, or subscription server). Any Java product such as Oracle Java or OpenJDK may be used. + +Follow the directions for your host operating system to install Java runtime. + +**For Windows only:** Be sure the system environment variable, `JAVA_HOME`, is set to the JRE installation directory of the JRE version and bitness (32-bit or 64-bit) you wish to use with the xDB Replication Server. The xDB Replication Server installer for a Windows platform contains both the 32-bit and 64-bit versions. The `JAVA_HOME` setting determines whether the 32-bit or the 64-bit version of xDB Replication Server is installed. (If `JAVA_HOME` is not set, then the first JRE version encountered in the Path system environment variable determines the xDB Replication Server version to be installed.) + +
+ +
+ +Note + +
+ +For Advanced Server versions prior to 9.3, a Java runtime is supplied and installed as part of the Advanced Server installation process, however, you must still have pre-installed a separate Java runtime system on your host. The xDB Replication Server installation process does not utilize the Java runtime supplied with Advanced Server. + +
+ +
+ +
+ +Note + +
+ +After installation of xDB Replication Server has completed, the path to your Java runtime program is stored in the xDB Startup Configuration file used by xDB Replication Server. Verify that the path to your Java runtime program set in the xDB Startup Configuration file is correct. See [Post-Installation Host Environment](../03_installation/#post_installation_host_environment) for the location of this file. + +
+ +**Step 2:** From the host’s application menu, open the Postgres menu and choose `Stack Builder` or `StackBuilder Plus`. + +![Postgres application menu](/../images/image26.png) + +**Step 3 (For Linux only):** Depending upon your Linux host, a dialog box or a prompt appears requesting the root account’s password. Enter the root password and click the `OK` button. + +![Enter root account password](/../images/image27.png) + +**Step 4:** The StackBuilder Plus welcome screen appears. Select your `Postgres` installation from the drop-down list and click the `Next` button. + +![StackBuilder Plus welcome screen](/../images/image28.png) + +**Step 5 (For Advanced Server):** Expand the EnterpriseDB Tools node and check the box for Replication Server. Click the Next button. + +
+ +
+ +Note + +
+ +Though the following ../images show Replication Server v6.0, use the same process for Replication Server v6.2. + +
+ +![StackBuilder Plus applications](/../images/image29.png) + +**Step 5 (For PostgreSQL):** Expand the Registration-Required and Trial Products node, and then expand the EnterpriseDB Tools node. Check the box for `Replication Server` under the `EnterpriseDB Tools` list and click the `Next` button. + +![Stack Builder applications](/../images/image30.png) + +![EnterpriseDB Tools for PostgreSQL](/../images/image31.png) + +**Step 6 (For Advanced Server only):** In the `Account Registration` screen, either enter your email address and password for your EnterpriseDB user account if you have one, or click the link in which case you will be directed to the registration page of the EnterpriseDB website where you can create an account. Click the `Next` button. + +
+ +
+ +Note + +
+ +(For PostgreSQL only): Proceed to Step 7. If you are using PostgreSQL, account registration occurs later in the process. + +
+ +![EnterpriseDB account registration](/../images/image32.png) + +**Step 7:** Verify that Replication Server appears in the list of selected packages. Click the `Next` button. + +![Selected packages](/../images/image33.png) + +An information box appears showing the download progress of the Replication Server package. This may take a few minutes. + +![Downloading progress](/../images/image34.png) + +**Step 8:** When downloading of the Replication Server package completes, the following screen appears that starts the installation of xDB Replication Server. Click the `Next` button. + +
+ +
+ +Note + +
+ +You can check the Skip Installation box if you wish to install xDB Replication Server some other time. + +
+ +![Start installation](/../images/image35.png) + +**Step 9:** Select the installation language and click the `OK` button. + +![Installation language](/../images/image36.png) + +**Step 10:** In the Setup xDB Replication Server screen, click the `Next` button. + +![Installation language](/../images/image37.png) + +**Step 11:** Read the license agreement. If you accept the agreement, select the accept radio button and click the `Next` button. + +![Installation language](/../images/image38.png) + +**Step 12:** Browse to a directory where you want the xDB Replication Server components installed, or allow it to install the components in the default location shown. Click the `Next` button. + +![Installation directory](/../images/image39.png) + +**Step 13:** If you do not want a particular xDB Replication Server component installed on this particular host, uncheck the box `Next` to the component name. Click the `Next` button. + +![Select components](/../images/image40.png) + +**Step 14:** In the Account Registration screen select the radio button that applies to you. Click the `Next` button. + +![Account registration](/../images/image41.png) + +If you do not have an EnterpriseDB user account, you will be directed to the registration page of the EnterpriseDB website. + +If you already have an EnterpriseDB user account, enter the email address and password for your EnterpriseDB user account as shown in the following screen. Click the `Next` button. + +![My EnterpriseDB account](/../images/image42.png) + +**Step 15:** Enter information for the xDB administrator. + +
+ +
+ +Note + +
+ +From this point on, it is suggested that you record the values you enter on these screens as they will be needed during the publication and subscription server registration process. + +
+ +Enter values for the following fields: + +- `Admin User.` The xDB administrator user name to authenticate certain usage of the xDB Replication Server such as registering a publication server or a subscription server running on this host. Any alphanumeric string may be entered for the admin user name. The default admin user name is admin. +- `Admin Password.` Password of your choice for the xDB administrator given in the Admin User field. + +![xDB admin user information](/../images/image43.png) + +The admin user and the admin password (in encrypted form) are saved to the xDB Replication Configuration file named `/etc/edb-repl.conf (XDB_HOME\etc\edb-repl.conf` on Windows hosts). Click the `Next` button. + +**Step 16 (Only if publication server is a selected component):** Enter an available port on which the publication server will run. Default port number is 9051. Click the `Next` button. + +![xDB admin user information](/../images/image44.png) + +**Step 17 (Only if subscription server is a selected component):** Enter an available port on which the subscription server will run. Default port number is 9052. Click the `Next` button. + +![Subscription server details](/../images/image45.png) + +**Step 18:** For the operating system account under which the publication server or subscription server is to run, enter `postgres` (`enterprisedb` if you are using Advanced Server installed in Oracle compatible configuration mode). + +![Publication/subscription server operating system account](/../images/image46.png) + +**Step 19:** On the Ready to Install screen, click the `Next` button. + +![Ready to install](/../images/image47.png) + +An information box appears showing the installation progress of the xDB Replication Server selected components. This may take a few minutes. + +![Installation progress](/../images/image48.png) + +**Step 20:** When installation has completed the following screen appears. Click the Finish button. + +![xDB Replication Server installation completion](/../images/image49.png) + +**Step 21:** On the `StackBuilder Plus Installation Complete` screen, click the `Finish` button. + +![StackBuilder Plus installation complete](/../images/image50.png) + +Successful installation of xDB Replication Server results in the creation of directory structures and files in your host environment as described in Section [Post-Installation Host Environment](../03_installation/#post_installation_host_environment). diff --git a/product_docs/docs/eprs/6.2/03_installation/02_installing_from_cli.mdx b/product_docs/docs/eprs/6.2/03_installation/02_installing_from_cli.mdx new file mode 100644 index 00000000000..1c3d8f28bb3 --- /dev/null +++ b/product_docs/docs/eprs/6.2/03_installation/02_installing_from_cli.mdx @@ -0,0 +1,186 @@ +--- +title: "Installing from the Command Line" +--- + + + + +The section provides directions for installing xDB Replication Server from the Linux or Windows command line console. + +There are basically three ways of performing command line installation. + +- **Text.** Include the `--mode text` parameter when invoking the installer to perform an installation from the command line during which you are prompted for user input. +- **Unattended.** Include the `--mode unattended` parameter when invoking the installer to perform an installation without user input. In this case, required parameters must be specified on the command line when invoking the installer or the `--optionfile` parameter must be used to specify a file containing the parameter settings. +- **Extract Only.** Invoke the installer with the `--extract-only` parameter to only extract the files when you do not hold the root privileges required to perform a complete installation. + +The xDB Replication Server installer program can either be downloaded directly from the EnterpriseDB website or by using Stack Builder or StackBuilder Plus. + +The installer program name may vary depending upon how you obtained it. The following are some examples illustrating command line installation. + +
+ +
+ +Note + +
+ +For additional detailed information on how to install EnterpriseDB products from the command line, see the *EDB Postgres Advanced Server Installation Guide* located at: + + + +
+ +
+ +
+ +Note + +
+ +You must have Java Runtime Environment (JRE) version 1.7 or later installed on the hosts where you intend to install any xDB Replication Server component (xDB Replication Console, publication server, or subscription server). Any Java product such as Oracle Java or OpenJDK may be used. + +
+ +Follow the directions for your host operating system to install Java runtime. + +
+ +
+ +Note + +
+ +For Advanced Server versions prior to 9.3, a Java runtime is supplied and installed as part of the Advanced Server installation process, however, you must still have pre-installed a separate Java runtime system on your host. The xDB Replication Server installation process does not utilize the Java runtime supplied with Advanced Server. + +
+ +The following example shows how to start the xDB Replication Server installation in text mode. + +``` text +$ ./xdbreplicationserver-6.1.0-alpha-1-linux-x64.run --mode text +Language Selection + +Please select the installation language +[1] English - English + . + . +Please choose an option [1] : +---------------------------------------------------------------------------- +Welcome to the Postgres Plus xDB Replication Server Setup Wizard. + . + . +``` + +The following example shows how to start the installation in unattended mode with an options file. + +``` text +$ su root +Password: +$ ./xdbreplicationserver-6.1.0-alpha-1-linux-x64.run --optionfile /home/user/xdb_config +``` + +The following is the content of the options file, `xdb_config`. + +``` text +mode=unattended +existing-user=user@xyz.com +existing-password=password +installer-language=en +prefix=/opt/PostgreSQL/EnterpriseDB-xDBReplicationServer +enable-components=repconsole,pubserver,subserver +admin_user=admin +admin_password=password +pubport=9051 +subport=9052 +serviceaccount=enterprisedb +servicepassword=password +``` + +The following is a list of the parameters that may be specified when running the installer program. Most parameters have a default value if the parameter is not specified. + +**Parameters** + +`--help` + +> Display the list of valid options. + +`--version` + +> Display the product version information. + +`--extract-only { yes | no }` + +> Specify `yes` or `1` to extract the xDB Replication Server components and files without performing installation. Specify `no` or `0` to perform the installation of xDB Replication Server as well. The default is `no` or `0`. + +`--unattendedmodeui { none | minimal | minimalWithDialogs }` + +> Specify the extent to which a user interface should be displayed during unattended installation. Specify none if no progress bars are to be displayed. Specify minimal if progress bars are to be displayed. Specify `minimalWithDialogs` if progress bars are to be displayed with dialog boxes if errors occur. The default is `minimal`. + +`--optionfile filename` + +> Use the specified file containing installation configuration parameters in `parameter=value` format. + +`--mode { qt | gtk | xwindow | text | unattended }` + +> Specify the installation mode. Specify qt to use the Qt graphical toolkit. Specify gtk to use the Gtk graphical toolkit (for Linux only). Specify `xwindow` to use the X Windows graphical toolkit (for Linux only). Specify text for installation in a command line console (for Linux only). Specify unattended to perform installation without requesting user input. The default is qt. + +`--debugtrace debug_logfile` + +> Specify this parameter to create a debug log file. + +`--debuglevel { 0 | 1 | 2 | 3 | 4 }` + +> Specify the amount of detail to be written to the debug log file. Higher values provide more detail. The default level is 2. + +`--existing-user edb_user_account` + +> Specify your EnterpriseDB user account. (This is the email address used as your identifier when you created an account on the registration page of the EnterpriseDB website.) + +`--existing-password edb_user_password` + +> Specify the password of your EnterpriseDB user account. + +`--installer-language { en | zh_CN | zh_TW | ja | ko }` + +> Specify the installation language. Specify en for English. Specify `zh_CN` for Chinese Simplified. Specify `zh_TW` for Traditional Chinese. Specify `ja` for Japanese. Specify `ko` for Korean. The default is `en`. + +`--prefix installation_directory` + +> The directory where the xDB Replication Server components are to be installed. The default is `/opt/PostgreSQL/EnterpriseDB-xDBReplicationServer` for Linux systems. The default is `C:\Program Files\PostgreSQL\EnterpriseDB-xDBReplicationServer` for Windows systems. + +`--enable-components {[ repconsole ] [,pubserver ] [,subserver ]}` + +> Specify the xDB Replication Server components to be installed. Specify repconsole for the xDB Replication Console and the xDB Replication Server Command Line Interface. Specify `pubserver` for the xDB publication server. Specify `subserver` for the xDB subscription server. At least one component must be included in this comma-separated list. The default is `repconsole,pubserver,subserver`. + +`--disable-components {[ repconsole ] [,pubserver ] [,subserver ]}` + +> Specify the xDB Replication Server components to exclude from installation. The default is an empty list. + +`--admin_user admin_user` + +> The xDB administrator user name to authenticate certain usage of the xDB Replication Server such as registering a publication server or a subscription server running on this host. Any alphanumeric string may be entered for the admin user name. The default admin user name is admin. + +`--admin_password admin_password` + +> Password of your choice for the xDB administrator. There is no default for this parameter. + +`--pubport port` + +> Port number for the publication server. The default is 9051. + +`--subport port` + +> Port number for the subscription server. The default is 9052. + +`--serviceaccount account_name` + +> The operating system account under which the publication server or subscription server is to run. The default is `postgres`. + +`--servicepassword account_password` + +> The password for the operating system account. There is no default for this parameter. + +Successful installation of xDB Replication Server results in the creation of directory structures and files in your host environment as described in Section [Post-Installation Host Environment](../03_installation/#post_installation_host_environment). diff --git a/product_docs/docs/eprs/6.2/03_installation/03_installing_rpm_package.mdx b/product_docs/docs/eprs/6.2/03_installation/03_installing_rpm_package.mdx new file mode 100644 index 00000000000..5b1c0f1a49a --- /dev/null +++ b/product_docs/docs/eprs/6.2/03_installation/03_installing_rpm_package.mdx @@ -0,0 +1,314 @@ +--- +title: "Installing the xDB RPM Package" +--- + + + + +xDB Replication Server is supplied as an RPM package available in the EDB Yum Repository. Use the Yum package manager to install xDB Replication Server from the RPM package. + +For information about using Yum, see the Yum project website located at: + +> + +To request credentials to the EDB Yum Repository, visit the following website: + +> + +For information about using the EDB Yum Repository see Chapter 3 of the EDB Postgres Advanced Server Installation Guide available from the EnterpriseDB website located at: + +> + +
+ +
+ +Note + +
+ +Although the following primarily describes the installation of xDB Replication Server version 6.2, access to the RPM packages for prior xDB Replication Server versions are also described in order to differentiate the installation of these different versions. + +
+ +Each xDB Replication Server component is available as an individual RPM package. Thus, you can install all xDB Replication Server components with a single yum install command, or you may choose to install selected, individual components by installing only those particular RPM packages. + +The following table lists the RPM packages and the xDB Replication Server component it contains. + +
xDB Replication Server Component RPM Packages
Package NamexDB Replication Server Component

ppas-xdb

All components

ppas-xdb-console

xDB Replication Console and the xDB Replication Server Command Line Interface

ppas-xdb-publisher

Publication server

ppas-xdb-subscriber

Subscription server

ppas-xdb-libs

Library files required by all components
+ +**xDB Replication Server Component RPM Packages** + +The Advanced Server server libs package must be available for access by Yum when installing any xDB RPM package component. The edb-asxx-server-libs package is a component of the Advanced Server repository package for version 9.6 or later. Step 3 shows how to enable access to the Advanced Server repository so Yum can access its server libs package. + +
+ +
+ +Note + +
+ +You might have to enable the \[extras\] repository definition in the `CentOS-Base.repo file (located in /etc/yum.repos.d)`. + +
+ +To install any of the packages, invoke the following command as the root account: + +> `yum install package_name` + +`package_name` is any of the packages listed under the Package Name column of the preceding table. + +For example to install all xDB components, invoke the following: + +`yum install ppas-xdb` + +To install only the xDB Replication Console and xDB Replication Server Command Line Interface, invoke the following: + +`yum install ppas-xdb-console` + +To install only the publication server, invoke the following: + +`yum install ppas-xdb-publisher` + +
+ +
+ +Note + +
+ +Though all xDB components are dependent upon and thus require installation of the server libs package, by using Yum, the dependency on the server libs is recognized when any xDB component is installed. Yum automatically installs the server libs package from the enabled Advanced Server repository along with your selected xDB RPM package. + +
+ +The following are the steps to perform a complete xDB Replication Server installation with all xDB components. + +**Step 1:** You must have Java Runtime Environment (JRE) version 1.7 or later installed on the hosts where you intend to install any xDB Replication Server component (xDB Replication Console, publication server, or subscription server). Any Java product such as Oracle Java or OpenJDK may be used. + +Follow the directions for your host operating system to install Java runtime. + +
+ +
+ +Note + +
+ +For Advanced Server versions prior to 9.3, a Java runtime is supplied and installed as part of the Advanced Server installation process, however, you must still have pre-installed a separate Java runtime system on your host. The xDB Replication Server installation process does not utilize the Java runtime supplied with Advanced Server. + +
+ +**Step 2:** From the EDB Yum Repository, click on the following link to download the repository RPM for all the EnterpriseDB RPMs.: + +> + +As the `root` account, run the following command to install this repository configuration package: + +**On RHEL or CentOS 7:** + +> `yum -y install https://yum.enterprisedb.com/edb-repo-rpms/edb-repo-latest.noarch.rpm` + +**On RHEL or CentOS 8:** + +> `dnf -y install https://yum.enterprisedb.com/edb-repo-rpms/edb-repo-latest.noarch.rpm` + +**Step 3:** In the directory `/etc/yum.repos.d`, the repository configuration file `edb.repo` is created, which a text file is containing a list of EnterpriseDB repositories, each denoted by an entry starting with the text `[repository_name]`. + +Access to the packages in any of these repositories is accomplished by enabling the repository by editing the following in the repository entry: + +- Using your requested credentials for the EDB Yum Repository, substitute the user name and password for the `:` placeholders of the baseurl parameter. +- Change the setting of the enabled parameter to `enabled=1`. + +For example, to access the server `libs` package from the repository for Advanced Server version 9.6, enable the following entry: + +``` text +[edbas96] +name=EnterpriseDB Advanced Server 9.6 $releasever - $basearch +baseurl=http://:@yum.enterprisedb.com/9.6/redhat/rhel-$releasever-$basearch +enabled=1 +gpgcheck=1 +gpgkey=file:///etc/pki/rpm-gpg/ENTERPRISEDB-GPG-KEY +``` + +To enable the appropriate repository for installing the desired version of xDB Replication Server, enable one of the following entries: + +- To install version 6.2, enable the entry for \[`enterprisedb-xdb60`\]. +- To install a prior version, enable the entry for \[`enterprisedb-tools`\]. + +Whichever version is chosen, be sure the other entries are disabled (that is, the parameter setting is enabled=0 for the non-selected entries). For example, to access xDB Replication Server version 6.2, enable the following entry: + +``` text +[enterprisedb-xdb60] +name=EnterpriseDB XDB 6.0 $releasever - $basearch +baseurl=http://:@yum.enterprisedb.com/xdb60/redhat/rhel-$releasever-$basearch +enabled=0 +gpgcheck=1 +gpgkey=file:///etc/pki/rpm-gpg/ENTERPRISEDB-GPG-KEY +``` + +**Step 4:** Install the xDB Replication Server RPM package. + +The following syntax installs the xDB RPM package: + +`yum install ppas-xdb` + +The following is an example: + +``` text +yum install ppas-xdb +Loaded plugins: fastestmirror, langpacks +Loading mirror speeds from cached hostfile +* base: centos.excellmedia.net +* extras: centos.excellmedia.net +* updates: centos.excellmedia.net +base | 3.6 kB 00:00:00 +edb | 2.5 kB 00:00:00 +extras | 2.9 kB 00:00:00 +updates | 2.9 kB 00:00:00 +edb/7/x86_64/primary_db | 452 kB 00:00:03 +Resolving Dependencies +--> Running transaction check +---> Package ppas-xdb.x86_64 0:6.2.12-1.rhel7 will be installed +--> Processing Dependency: ppas-xdb-subscriber for package: ppas-xdb-6.2.12-1.rhel7.x86_64 +--> Processing Dependency: ppas-xdb-publisher for package: ppas-xdb-6.2.12-1.rhel7.x86_64 +--> Processing Dependency: ppas-xdb-console for package: ppas-xdb-6.2.12-1.rhel7.x86_64 +--> Running transaction check +---> Package ppas-xdb-console.x86_64 0:6.2.12-1.rhel7 will be installed +--> Processing Dependency: ppas-xdb-libs for package: ppas-xdb-console-6.2.12-1.rhel7.x86_64 +---> Package ppas-xdb-publisher.x86_64 0:6.2.12-1.rhel7 will be installed +--> Processing Dependency: ppas-libs for package: ppas-xdb-publisher-6.2.12-1.rhel7.x86_64 +--> Processing Dependency: libpq.so.5()(64bit) for package: ppas-xdb-publisher-6.2.12-1.rhel7.x86_64 +---> Package ppas-xdb-subscriber.x86_64 0:6.2.12-1.rhel7 will be installed +--> Running transaction check +---> Package ppas-xdb-libs.x86_64 0:6.2.12-1.rhel7 will be installed +---> Package ppas95-server-libs.x86_64 0:9.5.24.30-1.rhel7 will be installed +--> Processing Dependency: libmemcached.so.11()(64bit) for package: ppas95-server-libs-9.5.24.30-1.rhel7.x86_64 +--> Running transaction check +---> Package libmemcached.x86_64 0:1.0.16-5.el7 will be installed +--> Finished Dependency Resolution + +Dependencies Resolved +============================================================================ +Package Arch Version Repository Size +============================================================================ +Installing: +ppas-xdb x86_64 6.2.12-1.rhel7 edb 7.2 k +Installing for dependencies: +libmemcached x86_64 1.0.16-5.el7 base 237 k +ppas-xdb-console x86_64 6.2.12-1.rhel7 edb 1.6 M +ppas-xdb-libs x86_64 6.2.12-1.rhel7 edb 14 M +ppas-xdb-publisher x86_64 6.2.12-1.rhel7 edb 40 k +ppas-xdb-subscriber x86_64 6.2.12-1.rhel7 edb 11 k +ppas95-server-libs x86_64 9.5.24.30-1.rhel7 edb 499 k + +Transaction Summary +============================================================================ +Install 1 Package (+6 Dependent packages) + +Total download size: 16 M +Installed size: 21 M +Is this ok [y/d/N]: y +Downloading packages: +warning: /var/cache/yum/x86_64/7/base/packages/libmemcached-1.0.16-5.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY ] 230 kB/s | 212 kB 00:01:11 ETA +Public key for libmemcached-1.0.16-5.el7.x86_64.rpm is not installed +(1/7): libmemcached-1.0.16-5.el7.x86_64.rpm | 237 kB 00:00:02 +warning: /var/cache/yum/x86_64/7/edb/packages/ppas-xdb-6.2.12-1.rhel7.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 7e30651c: NOKEY ] 215 kB/s | 237 kB 00:01:16 ETA +Public key for ppas-xdb-6.2.12-1.rhel7.x86_64.rpm is not installed +(2/7): ppas-xdb-6.2.12-1.rhel7.x86_64.rpm | 7.2 kB 00:00:02 +(3/7): ppas-xdb-console-6.2.12-1.rhel7.x86_64.rpm | 1.6 MB 00:00:08 +(4/7): ppas-xdb-publisher-6.2.12-1.rhel7.x86_64.rpm | 40 kB 00:00:00 +(5/7): ppas-xdb-subscriber-6.2.12-1.rhel7.x86_64.rpm | 11 kB 00:00:00 +(6/7): ppas95-server-libs-9.5.24.30-1.rhel7.x86_64.rpm | 499 kB 00:00:01 +(7/7): ppas-xdb-libs-6.2.12-1.rhel7.x86_64.rpm | 14 MB 00:00:22 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Total 663 kB/s | 16 MB 00:00:25 +Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 +Importing GPG key 0xF4A80EB5: +Userid : "CentOS-7 Key (CentOS 7 Official Signing Key) " +Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5 +Package : centos-release-7-5.1804.el7.centos.x86_64 (@anaconda) +From : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 +Is this ok [y/N]: y +Retrieving key from file:///etc/pki/rpm-gpg/ENTERPRISEDB-GPG-KEY +Importing GPG key 0x7E30651C: +Userid : "EnterpriseDB Inc. (EnterpriseDB Yum Repositories) " +Fingerprint: ca40 9f7c 635f 2ae5 6c9e 8b34 e5ed e919 7e30 651c +Package : edb-repo-20-2.noarch (installed) +From : /etc/pki/rpm-gpg/ENTERPRISEDB-GPG-KEY +Is this ok [y/N]: y +Running transaction check +Running transaction test +Transaction test succeeded +Running transaction +Installing : ppas-xdb-libs-6.2.12-1.rhel7.x86_64 1/7 +Installing : ppas-xdb-subscriber-6.2.12-1.rhel7.x86_64 2/7 +Installing : ppas-xdb-console-6.2.12-1.rhel7.x86_64 3/7 +Installing : libmemcached-1.0.16-5.el7.x86_64 4/7 +Installing : ppas95-server-libs-9.5.24.30-1.rhel7.x86_64 5/7 +Installing : ppas-xdb-publisher-6.2.12-1.rhel7.x86_64 6/7 +Installing : ppas-xdb-6.2.12-1.rhel7.x86_64 7/7 +Verifying : libmemcached-1.0.16-5.el7.x86_64 1/7 +Verifying : ppas-xdb-libs-6.2.12-1.rhel7.x86_64 2/7 +Verifying : ppas95-server-libs-9.5.24.30-1.rhel7.x86_64 3/7 +Verifying : ppas-xdb-publisher-6.2.12-1.rhel7.x86_64 4/7 +Verifying : ppas-xdb-subscriber-6.2.12-1.rhel7.x86_64 5/7 +Verifying : ppas-xdb-console-6.2.12-1.rhel7.x86_64 6/7 +Verifying : ppas-xdb-6.2.12-1.rhel7.x86_64 7/7 + +Installed: +ppas-xdb.x86_64 0:6.2.12-1.rhel7 + +Dependency Installed: +libmemcached.x86_64 0:1.0.16-5.el7 ppas-xdb-console.x86_64 0:6.2.12-1.rhel7 ppas-xdb-libs.x86_64 0:6.2.12-1.rhel7 ppas-xdb-publisher.x86_64 0:6.2.12-1.rhel7 +ppas-xdb-subscriber.x86_64 0:6.2.12-1.rhel7 ppas95-server-libs.x86_64 0:9.5.24.30-1.rhel7 + +Complete! +``` + +The xDB Replication Server is installed in directory location `/usr/ppas-xdb-x.x` where `x.x` is the xDB Replication Server version number as shown by the following: + +``` text +[root@localhost ppas-xdb-6.2]# pwd +/usr/ppas-xdb-6.2 +[root@localhost ppas-xdb-6.2]# ls -l +total 84 +drwxr-xr-x 2 root root 4096 Feb 23 16:05 bin +drwxr-xr-x 3 root root 4096 Feb 23 16:05 etc +drwxr-xr-x 4 root root 4096 Feb 23 16:05 lib +drwxr-xr-x 2 root root 4096 Feb 23 16:05 share +drwx------ 2 enterprisedb enterprisedb 4096 Feb 20 22:17 xdata +-r--r--r-- 1 enterprisedb enterprisedb 64035 Feb 20 20:40 xdb_3rd_party_licenses.txt +``` + +Successful installation of xDB Replication Server results in the creation of directory structures and files in your host environment as described in Section [Post-Installation Host Environment](../03_installation/#post_installation_host_environment). + +
+ +
+ +Note + +
+ +Neither the publication server nor the subscription server are running immediately following installation. If after reviewing the remaining steps, you wish to start the publication server, see [Registering a Publication Server](../05_smr_operation/02_creating_publication/#registering_publication_server). For starting the subscription server see see [Registering a Subscription Server](../05_smr_operation/03_creating_subscription/#registering_subscription_server). + +
+ +**Step 5 (For xDB Replication Server 6.2 or 6.1):** In the xDB Replication Configuration file `/etc/edb-repl.conf`, you can either use the default password (`edb`) as the admin user password, or you can substitute a password of your choice. If you want to use your own password, see [Encrypting the Password in the xDB Replication Configuration File](#encrypt_password_in%20conf_file) on how to generate the encrypted form of the password. Place the encrypted password in the admin\_password parameter of the xDB Replication Configuration file. The default admin user name is set to admin and can be changed as well. See [xDB Replication Configuration File](../02_overview/03_replication_server_components_and_architecture/#xdb_replication_conf_file) for information on the xDB Replication Configuration file. + +**Step 5 (For xDB Replication Server 5.1):** In the xDB Replication Configuration file `/etc/edb-repl.conf`, verify that parameters `host, port, database, user`, and `password` are set to allow access to a Postgres database that you wish to use as the xDB Control database. If you wish to use a database other than the one identified by the current default settings, create the desired database and change the parameters to permit connection and authentication to this database to be used as the xDB Control database. + +**Step 6:** The `JAVA_EXECUTABLE_PATH` parameter in the xDB Startup Configuration file should be set so that the Java runtime program can be accessed upon startup of the publication server and subscription server. If the publication server or subscription server startup fails due to inaccessibility to the Java program, be sure to set the path to your Java runtime program in the xDB Startup Configuration file. See [xDB Startup Configuration File](../02_overview/03_replication_server_components_and_architecture/#xdb_startup_conf_file) for information on the xDB Startup Configuration file. See [Post-Installation Host Environment](../03_installation/#post_installation_host_environment) for the location of this file. + +## Updating an RPM Installation + +If you have an existing xDB RPM installation, you can use yum to upgrade your repository configuration file and update to a more recent product version. To update the `edb.repo` file, assume superuser privileges and enter: + +> `yum upgrade edb-repo` + +`yum` will update the `edb.repo` file to enable access to the current EDB repository, configured to connect with the credentials specified in your `edb.repo` file. Then, you can use yum to upgrade any installed packages: + +> `yum upgrade ppas-xdb`. diff --git a/product_docs/docs/eprs/6.2/03_installation/04_installing_xDB_sles_12_host.mdx b/product_docs/docs/eprs/6.2/03_installation/04_installing_xDB_sles_12_host.mdx new file mode 100644 index 00000000000..a3318aacf79 --- /dev/null +++ b/product_docs/docs/eprs/6.2/03_installation/04_installing_xDB_sles_12_host.mdx @@ -0,0 +1,85 @@ +--- +title: "Installing xDB on an SLES 12 Host" +--- + + + + +You can use the `zypper` package manager to install the xDB Replication Server on an SLES 12 host. zypper will attempt to satisfy package dependencies as it installs a package, but requires access to specific repositories that are not hosted at EnterpriseDB. + +Before installing xDB, use the following commands to add EnterpriseDB repository configuration files to your SLES host: + +``` text +zypper addrepo https://zypp.enterprisedb.com/suse/epas96-sles.repo +zypper addrepo https://zypp.enterprisedb.com/suse/epas-sles-tools.repo +zypper addrepo https://zypp.enterprisedb.com/suse/epas-sles-dependencies.repo +``` + +Each command creates a repository configuration file in the /etc/zypp/repos.d directory. The files are named: + +- `edbas96suse.repo` +- `edbasdependencies.repo` +- `edbastools.repo` + +After creating the repository configuration files, use the `zypper refresh command` to refresh the metadata on your SLES host to include the EnterpriseDB repositories: + +``` text +/etc/zypp/repos.d # zypper refresh +Repository 'SLES12-12-0' is up to date. +Repository 'SLES12-Pool' is up to date. +Repository 'SLES12-Updates' is up to date. +Retrieving repository 'EDB Postgres Advanced Server 9.6 12 - x86_64' metadata -----------------------[\] +Authentication required for 'https://zypp.enterprisedb.com/9.6/suse/suse-12-x86_64' +User Name: +Password: +Retrieving repository 'EDB Postgres Advanced Server 9.6 12 - x86_64' metadata...................................[done] +Building repository 'EDB Postgres Advanced Server 9.6 12 - x86_64' cache..........................[done] +All repositories have been refreshed. +... +``` + +When prompted for a User Name and Password, provide your connection credentials for the EnterpriseDB repository. If you need credentials, visit the following website: + +> + +Before installing EDB Postgres Advanced Server or supporting components, you must also add SUSEConnect and the SUSE Package Hub extension to the SLES host, and register the host with SUSE, allowing access to SUSE repositories. Use the commands: + +``` text +zypper install SUSEConnect +SUSEConnect -p PackageHub/12/x86_64 +SUSEConnect -p sle-sdk/12/x86_64 +``` + +For detailed information about registering a SUSE host, visit: + +> + +Then add the Java repository and update the repository metadata: Please note that only OpenJDK (version 1.8) is supported on SLES hosts of Java components. Before using an RPM installer to add Advanced Server or a supporting component that requires Java, use zypper to add supporting repository locations to your system. + +Use the commands: + +``` text +zypper addrepo "http://download.opensuse.org/repositories/Java:/Factory/SLE_12_SP2/Java:Factory.repo" +zypper addrepo "http://download.opensuse.org/repositories/server:/Kolab:/3.3/SLE_12/server:Kolab:3.3.repo" +zypper refresh +``` + +Then, you can use the zypper utility to install the xDB Replication Server components: + +`zypper install ppas-xdb*` + +
+ +
+ +Note + +
+ +Before starting the publication server and subscription server, the `/etc/hosts` file must contain an entry for the host name that associates it to the host IP address as shown by the following example where 192.168.187.133 is the IP address and `linux-dm8s` is the host name: + +
+ +``` text +192.168.187.133 linux-dm8s +``` diff --git a/product_docs/docs/eprs/6.2/03_installation/05_post_installation_host_environment.mdx b/product_docs/docs/eprs/6.2/03_installation/05_post_installation_host_environment.mdx new file mode 100644 index 00000000000..5b67b231c40 --- /dev/null +++ b/product_docs/docs/eprs/6.2/03_installation/05_post_installation_host_environment.mdx @@ -0,0 +1,118 @@ +--- +title: "Post-Installation Host Environment" +--- + +
+ + +On Linux hosts where you installed xDB Replication Server with the graphical user interface or from the command line, you should now have a publication server daemon and a subscription server daemon running on your computer assuming you chose to install the publication server and subscription server components. If you installed the xDB RPM package, you must start the publication server and the subscription server based upon the instructions in Section [Registering a Publication Server](../05_smr_operation/02_creating_publication/#registering_publication_server) for the publication server and [Registering a Subscription Server](../05_smr_operation/03_creating_subscription/#registering_subscription_server) for the subscription server. On Windows systems, the publication server and subscription server run as services named `Publication Service` and `Subscription Service`. + +The Postgres application menu contains a new item for the xDB Replication Console. + +
+ +
+ +Note + +
+ +On some Linux systems, you may have to restart the server before you can see the xDB Replication Console choice in the application menu. If the xDB Replication Console choice is still unavailable in the application menu, it can be started by invoking the script `XDB_HOME/bin/runRepConsole.sh`. + +
+ +
+ +
+ +Note + +
+ +For xDB Replication Server installed from an xDB RPM package, the xDB Replication Console is started by invoking the script `XDB_HOME/bin/runRepConsole.sh`. + +
+ +The following files are created that you may need during the configuration process. + +| | | | +|------------------------------------|---------------------------------------|--------------------------------------------------------------------------------------| +| File Name | Location | Description | +| `edb-repl.conf` (Linux) | `/etc` | xDB Replication Configuration file | +| `edb-repl.conf` (Windows) | `XDB_HOME\etc` | xDB Replication Configuration file | +| `edb-xdbpubserver` (Linux) | `/etc/init.d` | Start, stop, or restart the publication server | +| `edb-xdbpubserver.service` (Linux) | `/usr/lib/systemd/system` | Start, stop, or restart the publication server (CentOS 7, RHEL 7, CentOS 8, RHEL 8) | +| `edb-xdbsubserver` (Linux) | `/etc/init.d` | Start, stop, or restart the subscription server | +| `edb-xdbsubserver.service` (Linux) | `/usr/lib/systemd/system` | Start, stop, or restart the subscription server (CentOS 7, RHEL 7, CentOS 8, RHEL 8) | +| `xdb_pubserver.conf` | `XDB_HOME/etc` | Publication server configuration file | +| `xdb_subserver.conf` | `XDB_HOME/etc` | Subscription server configuration file | +| `xdbReplicationServer-xx.config` | `XDB_HOME/etc/sysconfig` | xDB Startup Configuration file | +| `pubserver.log` (Linux) | `/var/log/xdb-x.x` | Publication server log file | +| `pubserver.log` (Windows) | `POSTGRES_HOME\.enterprisedb\xdb\x.x` | Publication server log file | +| `subserver.log` (Linux) | `/var/log/xdb-x.x` | Subscription server log file | +| `subserver.log` (Windows) | `POSTGRES_HOME\.enterprisedb\xdb\x.x` | Subscription server log file | +| `edb-xdbpubserver.log` (Linux) | `/var/log/edb/xdbpubserver` | Publication services startup log file | +| `edb-xdbsubserver.log` (Linux) | `/var/log/edb/xdbsubserver` | Subscription services startup log file | +| `servers.xml` | `USER_HOME/.enterprisedb/xdb/x.x` | Server login file | + +**Post-Installation Files** + +
+ +
+ +Note + +
+ +`XDB_HOME` is the directory where xDB Replication Server is installed. + +
+ +
+ +
+ +Note + +
+ +`POSTGRES_HOME` is the home directory of the postgres operating system account (enterprisedb for Advanced Server installed in Oracle compatible configuration mode). + +
+ +
+ +
+ +Note + +
+ +The publication and subscription services startup log files (`edb-xdbpubserver.log` and `edb-xdbsubserver.log`) are not generated for Windows and Mac OS X operating systems. + +
+ +
+ +
+ +Note + +
+ +`USER_HOME` is the home directory of the operating system account in use. + +
+ +
+ +
+ +Note + +
+ +The xDB Replication Server version number is represented by `x.x` or by `xx` (for example `6.2` or `62`). + +
diff --git a/product_docs/docs/eprs/6.2/03_installation/06_uninstalling_xdb_replication_server.mdx b/product_docs/docs/eprs/6.2/03_installation/06_uninstalling_xdb_replication_server.mdx new file mode 100644 index 00000000000..c6c7ecd46dc --- /dev/null +++ b/product_docs/docs/eprs/6.2/03_installation/06_uninstalling_xdb_replication_server.mdx @@ -0,0 +1,84 @@ +--- +title: "Uninstalling xDB Replication Server" +--- + + + + +Uninstalling xDB Replication Server results in the removal of the publication server, the subscription server, the xDB Replication Console, the xDB Replication Server Command Line Interface, the xDB Replication Configuration file, the xDB Startup Configuration file, the publication server configuration file, and the subscription server configuration file. + +Uninstalling xDB Replication Server does not remove any databases used as primary nodes, publication databases, or subscription databases. + +Use the xDB Replication Console or the xDB Replication Server Command Line Interface to delete any existing single-master or multi-master replication systems before you uninstall xDB Replication Server, otherwise the control schema objects created in the publication databases or primary nodes will remain in those databases. These control schema objects must then be deleted manually such as by using an SQL command line utility. + +If you installed xDB Replication Server using the xDB Replication Server installer program invoked from Stack Builder or StackBuilder Plus as described in Section [Installing With Stack Builder or StackBuilder Plus](../03_installation/#installing_with_stackbuilder) or you invoked the xDB Replication Server installer program from the command line as described in Section [Installing from the Command Line](../03_installation/#installing_from_cli), uninstall xDB Replication Server by invoking the `uninstall-xdbreplicationserver` script as described in this section. + +If you installed xDB Replication Server from the RPM package, uninstall it using the Yum package manager. See Section [Uninstalling the xDB RPM Package](../03_installation/#uninstalling_xdb_rpm_package) for information. + +**For Linux only:** The following steps are for uninstalling xDB Replication Server from a Linux host. + +**Step 1:** As the root account, run the `XDB_HOME/uninstall-xdbreplicationserver` script from the directory where you installed xDB Replication Server. + +``` text +$ su root +Password: +$ cd /opt/PostgreSQL/EnterpriseDB-xDBReplicationServer +$ ./uninstall-xdbreplicationserver +``` + +**Step 2:** Click the `Yes` button to confirm uninstallation of xDB Replication Server. + +![Confirm xDB Replication Server uninstallation](/../images/image51.png) + +**Step 3:** The `Uninstallation Completed` dialog box appears when the process has completed. Click the `OK` button. + +![Uninstallation completed](/../images/image52.png) + +**For Windows only:** The following steps are for uninstalling xDB Replication Server from a Windows host. + +**Step 1:** From the `Windows Control Panel`, select `Uninstall a Program`. + +![Uninstall a program](/../images/image53.png) + +**Step 2:** Select the xDB Replication Server product in the list of programs to uninstall or change. Click the `Uninstall/Change` button. + +![Uninstall or change a program](/../images/image54.png) + +**Step 3:** Click the `Yes` button to confirm uninstallation of xDB Replication Server. + +![Confirm xDB Replication Server uninstallation](/../images/image55.png) + +**Step 4:** The `Uninstallation Completed` dialog box appears when the process has completed. Click the `OK` button. + +![Uninstallation completed](/../images/image56.png) + +**Uninstalling in Text or Unattended Mode** + +Uninstallation of xDB Replication Server can also be done without the use of the graphical user interface. This is illustrated by the following examples. + +The following shows how to uninstall xDB Replication Server in text mode. + +``` text +$ su root +Password: +$ ./uninstall-xdbreplicationserver --mode text +Do you want to uninstall xDB Replication Server and all of its modules? [Y/n]: y + +---------------------------------------------------------------------------- +Uninstall Status + + Uninstalling xDB Replication Server + 0% ______________ 50% ______________ 100% + ######################################### + +Info: Uninstallation completed +Press [Enter] to continue : +``` + +The following shows how to uninstall xDB Replication Server in unattended mode. + +``` text +$ su root +Password: +$ ./uninstall-xdbreplicationserver --mode unattended +``` diff --git a/product_docs/docs/eprs/6.2/03_installation/07_uninstalling_xdb_rpm_package.mdx b/product_docs/docs/eprs/6.2/03_installation/07_uninstalling_xdb_rpm_package.mdx new file mode 100644 index 00000000000..f93086c5827 --- /dev/null +++ b/product_docs/docs/eprs/6.2/03_installation/07_uninstalling_xdb_rpm_package.mdx @@ -0,0 +1,79 @@ +--- +title: "Uninstalling the xDB RPM Package" +--- + + + + +If you installed xDB Replication Server from the RPM package, you can uninstall any xDB component by invoking the yum remove package\_name command as the root account where package\_name is any xDB Replication Server component RPM package as listed in the table in Section [Installing the xDB RPM Package](../03_installation/#installing_rpm_package). + +All xDB Replication Server components can be removed by the following command: + +`yum remove ppas-xdb*` + +An example is shown by the following: + +``` text +yum update ppas-xdb +Loaded plugins: fastestmirror, langpacks +Loading mirror speeds from cached hostfile +* base: centos.excellmedia.net +* extras: centos.excellmedia.net +* updates: centos.excellmedia.net +No packages marked for update +[root@localhost yum.repos.d]# pwd +/etc/yum.repos.d +[root@localhost yum.repos.d]# ls +CentOS-Base.repo CentOS-CR.repo CentOS-Debuginfo.repo CentOS-fasttrack.repo CentOS-Media.repo CentOS-Sources.repo CentOS-Vault.repo edb.repo +[root@localhost yum.repos.d]# vi edb.repo +[root@localhost yum.repos.d]# yum remove ppas-xdb* +Loaded plugins: fastestmirror, langpacks +Resolving Dependencies +--> Running transaction check +---> Package ppas-xdb.x86_64 0:6.2.12-1.rhel7 will be erased +---> Package ppas-xdb-console.x86_64 0:6.2.12-1.rhel7 will be erased +---> Package ppas-xdb-libs.x86_64 0:6.2.12-1.rhel7 will be erased +---> Package ppas-xdb-publisher.x86_64 0:6.2.12-1.rhel7 will be erased +---> Package ppas-xdb-subscriber.x86_64 0:6.2.12-1.rhel7 will be erased +--> Finished Dependency Resolution + +Dependencies Resolved + +========================================================================================================================================================================================= +Package Arch Version Repository Size +========================================================================================================================================================================================= +Removing: +ppas-xdb x86_64 6.2.12-1.rhel7 @edb 0.0 +ppas-xdb-console x86_64 6.2.12-1.rhel7 @edb 3.4 M +ppas-xdb-libs x86_64 6.2.12-1.rhel7 @edb 16 M +ppas-xdb-publisher x86_64 6.2.12-1.rhel7 @edb 130 k +ppas-xdb-subscriber x86_64 6.2.12-1.rhel7 @edb 4.9 k + +Transaction Summary +========================================================================================================================================================================================= +Remove 5 Packages + +Installed size: 19 M +Is this ok [y/N]: y +Downloading packages: +Running transaction check +Running transaction test +Transaction test succeeded +Running transaction +Erasing : ppas-xdb-6.2.12-1.rhel7.x86_64 1/5 +Erasing : ppas-xdb-subscriber-6.2.12-1.rhel7.x86_64 2/5 +Erasing : ppas-xdb-console-6.2.12-1.rhel7.x86_64 3/5 +Erasing : ppas-xdb-publisher-6.2.12-1.rhel7.x86_64 4/5 +Erasing : ppas-xdb-libs-6.2.12-1.rhel7.x86_64 5/5 +Verifying : ppas-xdb-subscriber-6.2.12-1.rhel7.x86_64 1/5 +Verifying : ppas-xdb-console-6.2.12-1.rhel7.x86_64 2/5 +Verifying : ppas-xdb-6.2.12-1.rhel7.x86_64 3/5 +Verifying : ppas-xdb-publisher-6.2.12-1.rhel7.x86_64 4/5 +Verifying : ppas-xdb-libs-6.2.12-1.rhel7.x86_64 5/5 + +Removed: +ppas-xdb.x86_64 0:6.2.12-1.rhel7 ppas-xdb-console.x86_64 0:6.2.12-1.rhel7 ppas-xdb-libs.x86_64 0:6.2.12-1.rhel7 ppas-xdb-publisher.x86_64 0:6.2.12-1.rhel7 +ppas-xdb-subscriber.x86_64 0:6.2.12-1.rhel7 + +Complete! +``` diff --git a/product_docs/docs/eprs/6.2/03_installation/index.mdx b/product_docs/docs/eprs/6.2/03_installation/index.mdx new file mode 100644 index 00000000000..839353a7e9e --- /dev/null +++ b/product_docs/docs/eprs/6.2/03_installation/index.mdx @@ -0,0 +1,45 @@ +--- +title: "Installation and Uninstallation" +--- + + + + +This chapter describes how to install and uninstall xDB Replication Server. + +Installation of xDB Replication Server can be accomplished a number of different ways: + +- Using a graphical user interface +- Running the xDB Replication Server installer program from the command line console in text or unattended mode +- Installing the xDB RPM package using the Yum package manager + +The most common installation of xDB Replication Server is done with the graphical user interface invoked by Stack Builder or StackBuilder Plus depending upon whether you are using PostgreSQL or Advanced Server. + +- `For PostgreSQL.` Install xDB Replication Server using Stack Builder after you have installed PostgreSQL. +- `For Advanced Server.` Install xDB Replication Server using StackBuilder Plus after you have installed Advanced Server. + +For circumstances in which you do not wish to use the graphical user interface, the xDB Replication Server installer program can be downloaded from the EnterpriseDB website, and then invoked in text or unattended mode as well as the graphical user interface mode. See [Installing from the Command Line](03_installation/#installing_from_cli) for instructions on installing xDB Replication Server from the command line. + +The xDB Replication Server product is also available as an RPM package in which case the Yum package manager is used for installation. See [Installing the xDB RPM Package](03_installation/#installing_rpm_package) for instructions on installing xDB Replication Server from the RPM package. + +Section [Installing With Stack Builder or StackBuilder Plus](03_installation/#installing_with_stackbuilder) describes the installation of xDB Replication Server through the graphical user interface of Stack Builder or StackBuilder Plus. + +
+ +
+ +Note + +
+ +If you have an older version of xDB Replication Server and existing replication systems, review Section [Upgrading to xDB Replication Server 6.2](10_appendix/02_upgrading_to_xdb6_2/#upgrading_to_xdb6_2) before installing xDB Replication Server. + +
+ +If you later decide you wish to remove xDB Replication Server from your system see Section [Uninstalling xDB Replication Server](03_installation/#uninstalling_xdb_replication_server) for directions on uninstalling xDB Replication Server if you initially installed it with the graphical user interface or by invoking the installer program from the command line. See [Uninstalling the xDB RPM Package](03_installation/#uninstalling_xdb_rpm_package) for directions on uninstalling xDB Replication Server that was installed from the RPM package. + +
+ +installing\_with\_stackbuilder installing\_from\_cli installing\_rpm\_package installing\_xDB\_sles\_12\_host post\_installation\_host\_environment uninstalling\_xdb\_replication\_server uninstalling\_xdb\_rpm\_package + +
diff --git a/product_docs/docs/eprs/6.2/04_intro_xdb_console.mdx b/product_docs/docs/eprs/6.2/04_intro_xdb_console.mdx new file mode 100644 index 00000000000..160530c4f86 --- /dev/null +++ b/product_docs/docs/eprs/6.2/04_intro_xdb_console.mdx @@ -0,0 +1,133 @@ +--- +title: "Introduction to the xDB Replication Console" +--- + + + + +The xDB Replication Console is the graphical user interface that you use to configure and manage the replication system. The equivalent functionality can also be done using the xDB Replication Server CLI utility. See Chapter [xDB Replication Server Command Line Interface](08_xdb_cli/#xdb_cli) for information on the xDB Replication Server CLI. + +The xDB Replication Console window consists of the following main areas: + +- `Menu Bar.` Menus for the replication system components +- `Tool Bar.` Icons for quick access to dialog boxes +- `Replication Tree.` Replication system components represented as nodes in an inverted tree +- `Information Window.` Tabbed window with information about a highlighted node in the replication tree + +![xDB Replication Console window](/images/image57.png) + +The options that are available on the menu bar and tool bar are dependent upon the node highlighted in the replication tree. Only those options relevant to the highlighted node are available in the menu bar and tool bar. + +The content of the information window applies to the highlighted node as well. + +## xDB Replication Console Tool Bar + +This section describes when the various tool bar icons are activated. The operations associated with the tool bar are described in [Creating a Publication](05_smr_operation/02_creating_publication/#creating_publication) and [Creating a Subscription](05_smr_operation/03_creating_subscription/#creating_subscription) for single-master replication. For multi-master replication see [Creating a Publication](05_smr_operation/02_creating_publication/06_mmr_operation/#creating_publication_mmr). + +
+ +
+ +Note + +
+ +The publication server must be running in order to use tools relevant to publications. Similarly, the subscription server must be running in order to use tools relevant to subscriptions. + +
+ +### Refresh + +The `Refresh` icon is always activated. Click the `Refresh` icon if the replication tree or information window does not appear to display the latest information after performing an operation. Clicking the `Refresh` icon ensures that the latest information is shown in the replication tree and in the information window. + +![Refresh icon](/images/image58.png) + +### Create Publication + +The `Create Publication` icon is activated when a Publication Database node is highlighted in the replication tree. + +![Create Publication icon](/images/image59.png) + +### Publication Management + +The `Remove Publication` icon, `Add Publication Tables` icon, and `Remove Publication Tables` icon are activated when a Publication node is highlighted in the replication tree. + +![Remove Publication, Add Publication Tables, and Remove Publication Tables icons](/images/image60.png) + +### Create Subscription + +The `Create Subscription` icon is activated when a Subscription Database node is highlighted in the replication tree. + +![Create Subscription icon](/images/image61.png) + +### Subscription Management + +The `Remove Subscription` icon, `Snapshot` icon, `Synchronize` icon, `Configure Schedule` icon, and `Remove Schedule` icon are activated when a Subscription node is highlighted in the replication tree. + +![Remove Subscription, Snapshot, Synchronize, Configure Schedule, and Remove Schedule icons](/images/image62.png) + + + +## Saving Server Login Information + +When you use the xDB Replication Console to create a replication system, you will need to register a publication server and a subscription server. During this process you are given the option to save the server’s login information. This section describes what happens if you select this option. + +The following discussion applies to both publication servers and subscription servers. These are generically referred to as `servers` in this discussion. + +### Server Login File + +If you choose to save the login information, the server’s network location (IP address and port number), admin user name, and password are stored in a server login file in a hidden location under the home directory of the operating system account with which you have opened the xDB Replication Console. See [Post-Installation Host Environment](03_installation/#post_installation_host_environment) for the location of this file. + +The following shows the Register Publication Server dialog box where the option to save login information is presented as a check box. In this example `192.168.2.22` entered in the Host field, 9051 entered in the Port field, admin entered in the `User Name` field, and an encrypted form of the password entered in the `Password` field are saved in the server login file for this publication server if the admin user name and password validation are successful. + +The values for User Name and Password that you enter are validated against the admin user name and password in the xDB Replication Configuration file residing on host `192.168.2.22`, in this case. The admin user name and password must successfully authenticate before registration of the publication server and saving of the publication server’s login information in the server login file occur. See [xDB Replication Configuration File](02_overview/03_replication_server_components_and_architecture/#xdb_replication_conf_file) for information on the xDB Replication Configuration file. + +![Save login information option for a publication server](/images/image63.png) + +See [Registering a Publication Server](05_smr_operation/02_creating_publication/#registering_publication_server) for more information on the purpose of these fields and the process of registering a publication server. + +The following shows the Register Subscription Server dialog box. In this example `192.168.2.22` entered in the Host field, `9052` entered in the Port field, admin entered in the User Name field, and an encrypted form of the password entered in the Password field are saved in the server login file for this subscription server if the admin user name and password validation are successful. + +![Save login information option for a subscription server](/images/image64.png) + +See [Registering a Subscription Server](05_smr_operation/03_creating_subscription/#registering_subscription_server) for more information on the purpose of these fields and the process of registering a subscription server. + +Saving server login information gives you the convenience of immediate access to the publication server and any of its subordinate publications, or access to the subscription server and any of its subordinate subscriptions. That is, when you open the xDB Replication Console, the Publication Server nodes of saved publication servers immediately appear in the replication tree allowing you to perform administrative tasks on its subordinate publications. + +Similarly, the Subscription Server nodes of saved subscription servers immediately appear in the replication tree allowing you to perform administrative tasks on its subordinate subscriptions. + +If you did not save server login information, the server nodes would not be visible in the replication tree. You would have to re-enter the server’s network location, admin user name, and password. In other words, you would have to register the server each time you open the xDB Replication Console. + +
+ +
+ +Note + +
+ +Each operating system account on a given host has its own server login file. Thus, the servers that are saved and appear in the xDB Replication Console when opened is independently determined for each operating system account. + +
+ +### Security Risks of Saved Server Login Information + +The preceding section discussed the benefits of saving server login information. The security risk associated with it is if unauthorized persons gain access to your operating system account, they could then potentially open the xDB Replication Console on your host using your operating system account. + +If the login information of publication servers or subscription servers is saved, the corresponding Publication Server nodes or Subscription Server nodes immediately appear in the xDB Replication Console with no request for authentication information. + +This allows an unauthorized person to perform any operation on the exposed publications and subscriptions including the potential to completely delete the replication system. + +
+ +
+ +Note + +
+ +The publication database and subscription database cannot be deleted, but unauthorized replications could be forced to occur. + +
+ +Thus, it is important that operating system accounts are secure on hosts that have access to an xDB Replication Console and a replication system. diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/01_setting_heap_size_for_pub_and_sub.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/01_setting_heap_size_for_pub_and_sub.mdx new file mode 100644 index 00000000000..253bd7bb125 --- /dev/null +++ b/product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/01_setting_heap_size_for_pub_and_sub.mdx @@ -0,0 +1,40 @@ +--- +title: "Setting Heap Memory Size for the Publication and Subscription Servers" +--- + + + + +The publication server and the subscription server are configured to run with a default set of heap size parameters. Either the default settings for 32-bit platforms or the default settings for 64-bit platforms are set by parameter `JAVA_HEAP_SIZE` when xDB Replication Server is installed. + +This parameter is configured in the xDB Startup Configuration file. See [xDB Startup Configuration File](../../02_overview/03_replication_server_components_and_architecture/#xdb_startup_conf_file) for information on the xDB Startup Configuration file. The following is an example of the xDB Startup Configuration file. + +``` text +#!/bin/sh + +JAVA_EXECUTABLE_PATH="/usr/bin/java" +JAVA_MINIMUM_VERSION=1.7 +JAVA_BITNESS_REQUIRED=64 +JAVA_HEAP_SIZE="-Xms256m -Xmx1536m" +PUBPORT=9051 +SUBPORT=9052 +``` + +On a 32-bit system, the initial heap size is set to 128 megabytes (-Xms128m) and the maximum limit is set to 512 megabytes (-Xmx512m). On a 64-bit system the initial heap size is 256 megabytes (-Xms256m) and the maximum limit is 1536 megabytes (-Xmx1536m). + +Typically, these values can handle the average workloads. However, depending upon the average row size and pending backlog of replication updates, it may be beneficial to increase the default heap size settings. + +The default values can be modified by changing the `JAVA_HEAP_SIZE` parameter setting in the xDB Startup Configuration file. Be sure to restart the publication server and the subscription server (see [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server) and [Registering a Subscription Server](../../05_smr_operation/03_creating_subscription/#registering_subscription_server) ) after making such changes. + +The heap size value should conform to the available RAM on the host running the publication server or subscription server. The basic guideline is that the maximum heap size should not exceed 25% of the total RAM size. + +The following factors should also be considered. + +If both the publication server and subscription server are running on the same host, then the minimum and recommended RAM capacity are shown by the following. + +- **Minimum RAM Size**. For a 32-bit system, use 4 gigabytes; for a 64-bit system use 8 gigabytes. +- **Recommended RAM Size**. For a 32-bit system, use 8 gigabytes; for a 64-bit system use 16 gigabytes. + +By default, both the publication server and subscription server are started and both are required for single-master replication systems. However if only multi-master replication systems are to be configured and used, then the subscription server is not needed. In such cases, the subscription server should be stopped to avoid redundant use of memory. + +If both the publication server and the subscription server are running on the same host, then each server reserves its own heap buffer. Thus, the total heap size for both the publication and subscription servers, obtained by adding the maximum heap size for both servers, should comply with the available RAM on the host. diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/02_enable_sync_replication_with_log-based_method.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/02_enable_sync_replication_with_log-based_method.mdx new file mode 100644 index 00000000000..9a8a51ffeba --- /dev/null +++ b/product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/02_enable_sync_replication_with_log-based_method.mdx @@ -0,0 +1,18 @@ +--- +title: "Enabling Synchronization Replication with the Log-Based Method" +--- + + + + +This section applies only to Postgres database servers of version 9.4 and later. If you plan to use the log-based method of synchronization replication with any publication database running under the Postgres database server, the following configuration parameter settings are required in the configuration file, postgresql.conf, of the Postgres database server: + +- `wal_level`. Set to `logical`. +- `max_wal_senders`. Specifies the maximum number of concurrent connections (that is, the maximum number of simultaneously running WAL sender processes). Set at minimum, to the number of SMR publication databases on this database server that will use the log-based method. In addition, if MMR primary nodes are to run on this database server, also add the number of MMR primary nodes that will use the log-based method. +- `max_replication_slots`. Specifies the maximum number of replication slots. Set at minimum, to the number of SMR publication databases on this database server that will use the log-based method. In addition, if MMR primary nodes are to run on this database server with the log-based method, see [Replication Origin](../../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#replication_origin) for information on the additional number of replication slots required. + +See [Synchronization Replication with the Log-Based Method](../../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#sync_replication_log_based) for information on the log-based method of synchronization replication. + +The Postgres database server must be restarted after altering any of these configuration parameters. + +In addition, the `pg_hba.conf` file requires an entry for each publication database user of publication databases that are to use the log-based method. Such database users must be included as a replication database user in the `pg_hba.conf` file. See [Postgres Server Authentication](../../05_smr_operation/01_prerequisites/#postgres_server_auth) for additional information. diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/03_enable_access_to_database.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/03_enable_access_to_database.mdx new file mode 100644 index 00000000000..30ac3853e51 --- /dev/null +++ b/product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/03_enable_access_to_database.mdx @@ -0,0 +1,88 @@ +--- +title: "Enabling Access to the Database Servers" +--- + + + + +The following sections describe configuration steps required to use xDB Replication Server on various types of database servers. + +The following section describes the steps to enable access to Oracle. See Section [Enabling Access to SQL Server](../../05_smr_operation/01_prerequisites/#enable_access_to_sql_server) for enabling access to SQL Server. + +No special steps are required to enable access to a Postgres database server. + + + +## Enabling Access to Oracle + +
+ +
+ +Note + +
+ +The directions in this section apply only if Oracle will be used as the publication or subscription database. + +
+ +An Oracle JDBC driver jar file such as, `ojdbc5.jar`, must be accessible to the Java virtual machine (JVM) on the host running the publication server and the subscription server. If the publication server and subscription server are running on separate hosts, the Oracle JDBC driver must be accessible to the JVM on each host. Oracle JDBC driver version ojdbc5 or later must be used. + +**Step 1:** Download the Oracle JDBC driver, for example, ojdbc5.jar, from the Oracle download site to the host that will be running the publication server. + +**Step 2:** Copy file ojdbc5.jar to the directory `XDB_HOME/lib/jdbc.` + +``` text +$ su root +Password: +$ cd /opt/PostgreSQL/EnterpriseDB-xDBReplicationServer/lib/jdbc +$ cp /home/user/Downloads/ojdbc5.jar . +$ ls -l +total 4032 +-rw-rw-r-- 1 root root 355655 Jan 25 02:38 edb-jdbc14.jar +-rw-rw-r-- 1 root root 716209 Jan 25 02:38 edb-jdbc17.jar +-rw-rw-r-- 1 root root 317816 Jan 25 02:38 jtds-1.3.1.jar +-rw-r--r-- 1 root root 2091137 Jan 28 16:45 ojdbc5.jar +-rw-rw-r-- 1 root root 642809 Jan 25 02:38 postgresql-9.4-1201.jdbc4.jar +``` + +Note: You may also copy the ojdbc5.jar file to the jre/lib/ext subdirectory of the location where you installed your Java runtime environment. + +**Step 3:** If the subscription server is running on a different host than the publication server, repeat steps 1 and 2 for the subscription server host. + + + +## Enabling Access to SQL Server + +
+ +
+ +Note + +
+ +The directions in this section apply only if SQL Server will be used as the publication or subscription database. + +
+ +The jTDS JDBC driver jar file `jtds-1.3.1.jar` must be accessible to the Java virtual machine (JVM) on the host running the publication server and the subscription server. If the publication server and subscription server are running on separate hosts, the `jTDS JDBC` driver must be accessible to the JVM on each host. + +When you install xDB Replication Server, the `jtds-1.3.1.jar` file is placed in the directory `XDB_HOME/lib/jdbc` so there is no manual configuration needed for this requirement. + +**Step 1:** Be sure SQL Server Authentication mode is enabled on your SQL Server database engine. SQL Server Authentication mode allows the use of SQL Server logins such as the built-in system administrator login, sa. + +Using the default settings for SQL Server installation, only Windows Authentication mode is enabled, which utilizes the accounts of the Windows operating system for authentication. + +In order to permit SQL Server Authentication mode, you must change the authentication mode to Mixed Mode Authentication, which permits both Windows Authentication and SQL Server Authentication. + +This can be done using SQL Server Management Studio. Refer to the appropriate SQL Server documentation for using SQL Server Management Studio. + +**Step 2:** Be sure SQL Server is accepting TCP/IP connections. In the SQL Server Configuration Manager, under SQL Server Network Configuration, be sure the TCP/IP protocol for the SQL Server instance is set to Enabled. The typical, default SQL Server instance names are `MSSQLSERVER` or `SQLEXPRESS`. + +**Step 3 (Required only for a SQL Server publication database):** Be sure SQL Server Agent is enabled and running. SQL Server Agent is a Windows service that controls job scheduling and execution with SQL Server. + +xDB Replication Server uses SQL Server Agent for certain operations such as for scheduled shadow table history cleanup (see Section [Scheduling Shadow Table History Cleanup](../../07_common_operations/#schedule_shadow_table_history_cleanup)). + +SQL Server Agent can be started by using SQL Server Configuration Manager. Refer to the appropriate SQL Server documentation for using SQL Server Configuration Manager. diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/04_preparing_pub_database.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/04_preparing_pub_database.mdx new file mode 100644 index 00000000000..708c16a0e85 --- /dev/null +++ b/product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/04_preparing_pub_database.mdx @@ -0,0 +1,544 @@ +--- +title: "Preparing the Publication Database" +--- + + + + +This section discusses the preparation of a database that contains tables and views that will become members of publications. + +The tables and views to be used for any given publication must all reside in the same database. This database becomes the publication database of that publication. A publication database user name must be created or already exist with the following characteristics: + +- The publication database user can connect to the publication database. +- The publication database user has the privileges to create control schema objects to store metadata used for controlling and tracking the replication process. +- The publication database user can read the tables and views that are to become members of publications. +- For publications that will use synchronization replication with the trigger-based method, the publication database user can create triggers on the publication tables. (For Oracle, the publication database user must have trigger creation privilege even for snapshot-only publications, though triggers will only be created for publications using synchronization replication.) + +The examples used throughout the rest of this user’s guide are based on the following: + +- The publication database user name is `pubuser`. +- The tables and view used in publications reside in a schema named edb. +- Three tables named `dept, emp`, and `jobhist` are members of schema `edb`. +- One view named `salesemp` is a member of schema `edb`. This view is a SELECT statement over the `emp` table. +- The Oracle system identifier (SID) of the publication database is `xe`. The SQL Server publication database name is edb. The Postgres publication database name is `edb`. (The cases of Oracle as the publication database, SQL Server as the publication database, and Postgres as the publication database are presented with examples in this section.) + +For preparing an Oracle publication database, see the next section. For preparing a SQL Server publication database, see [SQL Server Publication Database](../../05_smr_operation/01_prerequisites/#sql_server_pub_db). For preparing a Postgres publication database, see [Postgres Publication Database](../../05_smr_operation/01_prerequisites/#postgres_pub_db). + + + +## Oracle Publication Database + +
+ +
+ +Note + +
+ +(For Oracle 12c): The Oracle 12c multitenant architecture introduces the concept of the container database (CDB), which can contain multiple pluggable databases (PDBs). A pluggable database can be used as a publication database or a subscription database in a single-master replication system. + +
+ +Oracle 12c still supports the usage of a single database referred to as a non-container database (non-CDB) that is compatible with Oracle versions prior to 12c. An Oracle 12c non-container database can also be used as a publication database or a subscription database in a single-master replication system. + +The setup instructions for using an Oracle 12c publication database or subscription database are the same as for previous Oracle versions. Any special distinctions are indicated by a note within the instructions. + +**Step 1:** Create a database user name for the publication database user. The publication database user name must have a password, and it must have the ability to create a database session. The publication database user becomes the owner of the control schema objects that will be created in the publication database to track, control, and record the replication process and history. + +
+ +
+ +Note + +
+ +(For Oracle 12c Pluggable Database): The publication database user can be an Oracle local user or a common user. The local user exists within and has access to only a single, user-created pluggable database (PDB), which is to be used as the publication database. Common user names typically begin with `C##` or `c##` and can access multiple pluggable databases. + +
+ +
+ +
+ +Note + +
+ +(For Oracle 12c Pluggable Database): Creation and granting of privileges for a local user must be done while connected to the pluggable database to be used as the publication database. Creation of a common user must be done within the Oracle 12c root container `CDB$ROOT`. Granting of privileges to the common user must be done while connected to the pluggable database to be used as the publication database. + +
+ +
+ +
+ +Note + +
+ +(For Oracle 12c Non-Container Database): Creation and granting of privileges to the publication database user are performed in the same manner as for Oracle versions prior to 12c. + +
+ +When creating the publication database definition, the publication database user name is entered in the Publication Service – Add Database dialog box (see [Adding a Publication Database](../../05_smr_operation/02_creating_publication/#adding_pub_database)). + +``` text +CREATE USER pubuser IDENTIFIED BY password; +GRANT CONNECT TO pubuser; +``` + +**Step 2:** Grant the privileges needed to create the control schema objects. The control schema objects are created in the schema owned by, and with the same name as the publication database user. That is, the publication database user’s schema is the control schema for an Oracle publication database. + +``` text +GRANT RESOURCE TO pubuser; +``` + +**Step 3:** Grant the privileges required to create triggers on the publication tables. The `CREATE ANY TRIGGER` privilege must be granted to the publication database user. + +``` text +GRANT CREATE ANY TRIGGER TO pubuser; +``` + +**Step 4:** Grant the privileges required to lock publication tables when creating triggers. The `LOCK ANY TABLE` privilege must be granted to the publication database user. + +``` text +GRANT LOCK ANY TABLE TO pubuser; +``` + +**Step 5 (For Oracle 12c only):** Grant the privileges required to access tablespaces. The `GRANT UNLIMITED TABLESPACE` privilege must be granted to the publication database user. This requirement applies to both a pluggable database and a non-container database. + +``` text +GRANT UNLIMITED TABLESPACE TO pubuser; +``` + +**Step 6:** The publication database user must be able to read the tables and views that are to be included in publications. + +``` text +GRANT SELECT ON edb.dept TO pubuser; +GRANT SELECT ON edb.emp TO pubuser; +GRANT SELECT ON edb.jobhist TO pubuser; +GRANT SELECT ON edb.salesemp TO pubuser; +``` + +**Step 7 (Optional):** Create one or more `group` roles containing the required privileges to access the tables and views of the publications that will be needed by application users. + +Using roles is convenient if you wish to add new application users who need privileges to `select, insert, update`, or `delete` from any of the publication tables. A role containing the required privileges can then be granted to the new users instead of granting each privilege individually to each user. + +The following example shows the creation of the role and the granting of the privileges on the publication tables to the role: + +``` text +CREATE ROLE appgroup; +GRANT SELECT, INSERT, UPDATE, DELETE ON edb.dept TO appgroup; +GRANT SELECT, INSERT, UPDATE, DELETE ON edb.emp TO appgroup; +GRANT SELECT, INSERT, UPDATE, DELETE ON edb.jobhist TO appgroup; +GRANT SELECT, INSERT, UPDATE, DELETE ON edb.salesemp TO appgroup; +``` + +The following example shows the creation of a new user and the granting of the new role to the user: + +``` text +CREATE USER appuser IDENTIFIED BY password; +GRANT CREATE SESSION TO appuser; +GRANT appgroup TO appuser; +``` + + + +## SQL Server Publication Database + +In SQL Server, an application gains access to the database server by supplying a SQL Server login and its associated password. + +When an application connects to a particular database, the application assumes the identity and privileges of a database user that has been defined in that database. The database users in any given database are independent of database users in other databases with respect to their properties such as their role memberships and privileges. In fact, the same database user name can be defined in more than one database, each with its own distinct properties. + +In each database, a database user can be mapped to a SQL Server login. When an application connects to a database using a SQL Server login to which a database user has been mapped, the application assumes the identity and privileges of that database user. + +When using a SQL Server database as the publication database, a number of database users must be defined and mapped to a SQL Server login according to the following rules: + +- A SQL Server login must exist that is to be used by the publication server to connect to SQL Server. The SQL Server login and password are specified when creating the publication database definition. +- In the publication database, a database user must exist that is to be the creator and owner of the control schema objects. This database user must be mapped to the SQL Server login used by the publication server. +- A schema must exist to contain certain control schema objects. The database user, described in the preceding bullet point, must either own this schema or have certain privileges on this schema so that the database user can create and update the control schema objects in this schema. This schema is one physical schema component of the overall control schema and must also be defined as the default schema of that database user. The other physical schemas comprising the overall control schema are always created by the publication server as `_edb_replicator_pub`, `_edb_replicator_sub`, and `_edb_scheduler`. +- The SQL Server database users that update the data in the application tables that are to be replicated must have certain privileges on the control schema objects. When an update on a replicated table occurs, a trigger fires that accesses and updates certain control schema objects. The appropriate privileges must be granted to SQL Server database users who require update access to the application tables. +- A database user must exist in the msdb database that is mapped to the SQL Server login used by the publication server. This database user must have certain privileges to execute jobs in the dbo schema of the msdb database. (The msdb database is used by SQL Server Agent to schedule alerts and jobs. SQL Server Agent runs as a Windows service.) + +This example uses the following SQL Server login, database users, and mappings to comply with the aforementioned rules: + +- The publication tables reside in database `edb`. +- The database user owning the schema containing the publication tables and the publication tables, themselves, is `edb`. +- The SQL Server login used by the publication server to connect to SQL Server is `pubuser`. +- The database user owning the control schema objects and mapped to SQL Server login `pubuser` in database `edb` is `pubuser`. +- The control schema used to contain certain control schema objects created by the publication server is pubuser. Other control schema objects are always created in `_edb_replicator_pub`, `_edb_replicator_sub`, and `_edb_scheduler`. +- The database user mapped to SQL Server login `pubuser` in database `msdb` is `pubuser_msdb`. + +
+ +
+ +Note + +
+ +The sqlcmd utility program is used to execute the SQL statements in these examples. The USE command establishes the database to which the subsequent statements are to apply. The GO command executes the preceding SQL statements as a batch. Placement of the GO command within a stream of SQL statements sometimes has significance depending upon the particular SQL statements. + +
+ +**Step 1:** Create a SQL Server login for the xDB Replication Server publication database user. The login must have a password. When creating the publication database definition, the SQL Server login is entered in the Publication Service – Add Database dialog box (see Section [Adding a Publication Database](../../05_smr_operation/02_creating_publication/#adding_pub_database)). + +``` text +USE primary; +GO +CREATE LOGIN pubuser WITH PASSWORD = 'password'; +GO +``` + +**Step 2:** Create the database user and its required privileges for job scheduling in database `msdb`: + +``` text +USE msdb; +GO +CREATE USER pubuser_msdb FOR LOGIN pubuser; +GO +GRANT EXECUTE ON SCHEMA :: dbo TO pubuser_msdb; +GRANT SELECT ON SCHEMA :: dbo TO pubuser_msdb; +GO +``` + +**Step 3:** Create the database user for the control schema object creation and ownership. The control schema objects are created in the publication database to track, control, and record the replication process and history. This example assumes some of the control schema objects are to be created in the schema named `pubuser`. + +
+ +
+ +Note + +
+ +The schema name you specify in the `WITH DEFAULT_SCHEMA` clause must be the schema you choose in Step 5. This schema does not have to exist before using it in the `CREATE USER FOR LOGIN WITH DEFAULT_SCHEMA` statement. + +
+ +``` text +USE edb; +GO +CREATE USER pubuser FOR LOGIN pubuser WITH DEFAULT_SCHEMA = pubuser; +GO +``` + +
+ +
+ +Note + +
+ +The remaining steps assume that the commands are given in the publication database (that is, the `USE` edb command has been previously given to establish the publication database `edb` as the current database.) + +
+ +**Step 4:** Grant the database level privileges needed by the publication database user to create the control schema objects. + +``` text +GRANT CREATE TABLE TO pubuser; +GRANT CREATE PROCEDURE TO pubuser; +GRANT CREATE FUNCTION TO pubuser; +GRANT CREATE SCHEMA TO pubuser; +GO +``` + +**Step 5:** Choose the control schema where some of the control schema objects are to reside. + +To create the control schema objects in a new schema owned by the publication database user and created exclusively for this purpose (recommended approach) issue the following command: + +``` text +CREATE SCHEMA pubuser AUTHORIZATION pubuser; +GO +``` + +Alternatively, to create the control schema objects in an existing schema such as in the same schema containing the publication tables (that is, schema `edb` in this example) use the following commands: + +``` text +GRANT ALTER ON SCHEMA :: edb TO pubuser; +GRANT EXECUTE ON SCHEMA :: edb TO pubuser; +GRANT SELECT ON SCHEMA :: edb TO pubuser; +GRANT INSERT ON SCHEMA :: edb TO pubuser; +GRANT UPDATE ON SCHEMA :: edb TO pubuser; +GRANT DELETE ON SCHEMA :: edb TO pubuser; +GO +``` + +**Step 6:** Grant the privileges required to create triggers on the publication tables. The publication database user must have the `ALTER` privilege on the publication tables. + +``` text +GRANT ALTER ON edb.dept TO pubuser; +GRANT ALTER ON edb.emp TO pubuser; +GRANT ALTER ON edb.jobhist TO pubuser; +GO +``` + +**Step 7:** The publication database user must be able to read the tables and views that are to be included in publications. + +``` text +GRANT SELECT ON edb.dept TO pubuser; +GRANT SELECT ON edb.emp TO pubuser; +GRANT SELECT ON edb.jobhist TO pubuser; +GRANT SELECT ON edb.salesemp TO pubuser; +GO +``` + +**Step 8 (Optional):** Create one or more `group` roles containing the required privileges to access the tables and views of the publications that will be needed by application users. + +
+ +
+ +Note + +
+ +Creation of these roles can only be done after the SQL Server publication database definition has been created using the xDB Replication Console or xDB Replication Server CLI. (For example, see [Adding a Publication Database](../../05_smr_operation/02_creating_publication/#adding_publication) for the xDB Replication Console usage.) + +
+ +Using roles is convenient if you wish to add new application users who need privileges to select, insert, update, or delete from any of the publication tables. A role containing the required privileges can then be granted to the new users instead of granting each privilege individually to each user. + +In addition to privileges on the publication tables, any user performing an insert, update, or delete operation on any of the publication tables requires privileges to certain control schema objects of the publication. + +The following example shows the creation of the role `appgroup` and the granting of privileges on the publication tables to the role. The example assumes that in Step 5, schema pubuser was chosen as the control schema to store some of the control schema objects. + +``` text +CREATE ROLE appgroup AUTHORIZATION edb; +GRANT SELECT, INSERT, UPDATE, DELETE ON edb.dept TO appgroup; +GRANT SELECT, INSERT, UPDATE, DELETE ON edb.emp TO appgroup; +GRANT SELECT, INSERT, UPDATE, DELETE ON edb.jobhist TO appgroup; +GRANT SELECT, INSERT, UPDATE, DELETE ON edb.salesemp TO appgroup; +GRANT EXECUTE ON SCHEMA :: _edb_replicator_pub TO appgroup; +GRANT SELECT ON SCHEMA :: _edb_replicator_pub TO appgroup; +GRANT INSERT ON SCHEMA :: _edb_replicator_pub TO appgroup; +GRANT UPDATE ON SCHEMA :: _edb_replicator_pub TO appgroup; +GRANT INSERT ON SCHEMA :: pubuser TO appgroup; +GO +``` + +The following example shows the creation of a new login and database user, and the addition of the database user as a member of the role in order to inherit its privileges: + +``` text +CREATE LOGIN applogin WITH PASSWORD = 'password', DEFAULT_DATABASE = edb; +CREATE USER appuser FOR LOGIN applogin WITH DEFAULT_SCHEMA = edb; +EXEC sp_addrolemember @rolename = 'appgroup', @membername = 'appuser'; +GO +``` + +
+ +
+ +Note + +
+ +(Granting privileges to individual users): As previously described, each application database user that is to modify the data in any of the publication tables must be granted certain privileges on the publication tables and the control schema objects. Using a group role for this purpose as described earlier in this step helps simplify this process. + +
+ +Individual database users can be granted the privileges to access the publication tables and the controls schema objects in a similar fashion. + +The following example shows the creation of a new login and database user, and the granting of the privileges on the publication tables and the control schema objects to the user: + +``` text +CREATE LOGIN newlogin WITH PASSWORD = 'password', DEFAULT_DATABASE = edb; +CREATE USER newuser FOR LOGIN newlogin WITH DEFAULT_SCHEMA = edb; +GRANT SELECT, INSERT, UPDATE, DELETE ON edb.dept TO newuser; +GRANT SELECT, INSERT, UPDATE, DELETE ON edb.emp TO newuser; +GRANT SELECT, INSERT, UPDATE, DELETE ON edb.jobhist TO newuser; +GRANT SELECT, INSERT, UPDATE, DELETE ON edb.salesemp TO newuser; +GRANT EXECUTE ON SCHEMA :: _edb_replicator_pub TO newuser; +GRANT SELECT ON SCHEMA :: _edb_replicator_pub TO newuser; +GRANT INSERT ON SCHEMA :: _edb_replicator_pub TO newuser; +GRANT UPDATE ON SCHEMA :: _edb_replicator_pub TO newuser; +GRANT INSERT ON SCHEMA :: pubuser TO newuser; +GO +``` + +
+ +
+ +Note + +
+ +Instead of using the preceding statements, which grant privileges at the schema level, a more granular level of privileges can be issued at the database object level using the following statements: + +
+ +``` text +CREATE LOGIN newlogin WITH PASSWORD = 'password', DEFAULT_DATABASE = edb; +CREATE USER newuser FOR LOGIN newlogin WITH DEFAULT_SCHEMA = edb; +GRANT SELECT, INSERT, UPDATE, DELETE ON edb.dept TO newuser; +GRANT SELECT, INSERT, UPDATE, DELETE ON edb.emp TO newuser; +GRANT SELECT, INSERT, UPDATE, DELETE ON edb.jobhist TO newuser; +GRANT SELECT, INSERT, UPDATE, DELETE ON edb.salesemp TO newuser; +GRANT INSERT ON pubuser.rrst_edb_dept TO newuser; +GRANT INSERT ON pubuser.rrst_edb_emp TO newuser; +GRANT INSERT ON pubuser.rrst_edb_jobhist TO newuser; +GO +``` + +In addition, depending upon the version of SQL Server, grant the following additional privileges. + +**For SQL Server 2008:** Grant the following privileges: + +``` text +GRANT EXECUTE ON _edb_replicator_pub.nextval TO newuser; +GRANT SELECT ON _edb_replicator_pub.rrep_tx_seq TO newuser; +GRANT INSERT ON _edb_replicator_pub.rrep_tx_seq TO newuser; +GO +``` + +**For SQL Server 2012, 2014:** Grant the following privileges: + +``` text +GRANT UPDATE ON _edb_replicator_pub.rrep_tx_seq TO newuser; +GRANT UPDATE ON _edb_replicator_pub.rrep_txset_seq TO newuser; +GRANT UPDATE ON _edb_replicator_pub.rrep_common_seq TO newuser; +GO +``` + +Using this approach, however, requires you to issue additional privileges for each application table that is later added to the publication. + + + +## Postgres Publication Database + +When creating the publication database definition, a database user name must be specified that has the following characteristics: + +- The database user can connect to the publication database. +- The database user has superuser privileges. Superuser privileges are required because the database configuration parameter session\_replication\_role is altered by the database user to replica for snapshot operations involving replication of the control schema from one publication database to another. +- The database user must have the ability to modify the system catalog tables in order to disable foreign key constraints on the control schema tables for snapshot operations involving replication of the control schema from one publication database to another. See [Disabling Foreign Key Constraints for Snapshot Replications](../../10_appendix/04_miscellaneous_xdb_processing_topics/#disable_foreign_key_constraints_for_snapshot_replication) for more information on this requirement. + +**Step 1:** Create a database superuser for the publication database user. The publication database user name must have a password, and it must have the ability to create a database session. The publication database user becomes the owner of the control schema objects that will be created in the publication database to track, control, and record the replication process and history. + +When creating the publication database definition, the publication database user name is entered in the Publication Service – Add Database dialog box. + +See [Adding a Publication Database](../../05_smr_operation/02_creating_publication/#adding_pub_database) + +``` text +CREATE ROLE pubuser WITH LOGIN SUPERUSER PASSWORD 'password'; +``` + +**Step 2 (Optional):** Create one or more `group` roles containing the required privileges to access the tables and views of the publications that will be needed by application users. + +
+ +
+ +Note + +
+ +The process described in this step is applicable to Postgres publications in both single-master and multi-master replication systems. + +
+ +Using roles is convenient if you wish to add new application users who need privileges to select, insert, update, or delete from any of the publication tables. A role containing the required privileges can then be granted to the new users instead of granting each privilege individually to each user. + +Any user performing an `insert, update`, or `delete` operation on any of the publication tables requires privileges on the publication tables and its schema as well as to certain control schema objects of the publication. These control schema objects reside under schema `_edb_replicator_pub`. + +The following example shows the creation of the role `appgroup` and the granting of privileges on the publication tables to the role. + +``` text +CREATE ROLE appgroup; +GRANT USAGE ON SCHEMA edb TO appgroup; +GRANT SELECT, INSERT, UPDATE, DELETE ON edb.dept TO appgroup; +GRANT SELECT, INSERT, UPDATE, DELETE ON edb.emp TO appgroup; +GRANT SELECT, INSERT, UPDATE, DELETE ON edb.jobhist TO appgroup; +GRANT SELECT, INSERT, UPDATE, DELETE ON edb.salesemp TO appgroup; +``` + +In addition, for the log-based method of synchronization replication, if the `TRUNCATE` command is to be permitted on the publication tables, grant the following additional privileges: + +``` text +GRANT TRUNCATE ON edb.dept TO appgroup; +GRANT TRUNCATE ON edb.emp TO appgroup; +GRANT TRUNCATE ON edb.jobhist TO appgroup; +``` + +Also for the log-based method of synchronization replication for usage of the `TRUNCATE` command, grant the following privileges after creation of the publication database definition. See [Adding a Publication Database](../../05_smr_operation/02_creating_publication/#adding_publication) for information on creating the publication database definition for a single-master replication system. For a multi-master replication system, [Adding the Primary definition node](../../06_mmr_operation/#adding_pdn). + +``` text +GRANT USAGE ON SCHEMA _edb_replicator_pub TO appgroup; +GRANT INSERT ON _edb_replicator_pub.rrep_wal_events_queue TO appgroup; +``` + +Finally, grant the group role to the desired database users. The following example shows the creation of a new user and the granting of the role to the user: + +``` text +CREATE ROLE appuser WITH LOGIN PASSWORD 'password'; +GRANT appgroup TO appuser; +``` + +
+ +
+ +Note + +
+ +(Granting privileges to roles after publication creation): Roles for containing publication table privileges should be created before you create the publication. (See [Adding a Publication](../../05_smr_operation/02_creating_publication/#adding_publication) for information on creating a publication for a single-master replication system. For a multi-master replication system, see [Adding a Publication](../../06_mmr_operation/#add_pub_mmr).) + +
+ +When you create the publication, the privileges that have been granted on the publication tables to roles that exist at the time, are applied to the control schema objects for those roles. So for the preceding example, the privileges required on the control schema objects for any publication created using `edb.dept`, `edb.emp`, `edb.jobhist`, or `edb.salesemp` are granted to role `appgroup` when you create that publication. + +If, however, you create a role after the publication is created, you must explicitly grant the necessary privileges on the publication tables and control schema objects to the new role. + +When using the trigger-based method of synchronization replication, a role must be granted the following privileges on the control schema objects: + +- `USAGE` privilege on schema `_edb_replicator_pub`. +- `USAGE` privilege on sequence `rrep_tx_seq`. +- `INSERT` privileges on the shadow tables corresponding to publication tables in which the role will be inserting, updating, or deleting rows. Shadow tables follow the naming convention `rrst_schema_table`. Note that shadow tables exist only if the trigger-based method of synchronization is to be used. + +The following example shows the creation of a new role and the granting of the privileges on the publication tables and the control schema objects to the role for the trigger-based method of synchronization replication: + +``` text +CREATE ROLE newuser WITH LOGIN PASSWORD 'password'; +GRANT USAGE ON SCHEMA edb TO newuser; +GRANT SELECT, INSERT, UPDATE, DELETE ON edb.dept TO newuser; +GRANT SELECT, INSERT, UPDATE, DELETE ON edb.emp TO newuser; +GRANT SELECT, INSERT, UPDATE, DELETE ON edb.jobhist TO newuser; +GRANT USAGE ON SCHEMA _edb_replicator_pub TO newuser; +GRANT USAGE ON SEQUENCE _edb_replicator_pub.rrep_tx_seq TO newuser; +GRANT INSERT ON _edb_replicator_pub.rrst_edb_dept TO newuser; +GRANT INSERT ON _edb_replicator_pub.rrst_edb_emp TO newuser; +GRANT INSERT ON _edb_replicator_pub.rrst_edb_jobhist TO newuser; +``` + +When using the log-based method a role needs access to the publication tables and to certain control schema objects as well under certain circumstances. + +When using the log-based method of synchronization replication, a role must be granted the following privileges on the control schema objects if the role is to be permitted to use the TRUNCATE command on the publication tables: + +- `USAGE privilege on schema _edb_replicator_pub`. +- `INSERT` privilege on table `_edb_replicator_pub.rrep_wal_events_queue`. + +The following example shows the creation of a new role and the granting of the privileges on the publication tables to the role for the log-based method of synchronization replication: + +``` text +CREATE ROLE newuser WITH LOGIN PASSWORD 'password'; +GRANT USAGE ON SCHEMA edb TO newuser; +GRANT SELECT, INSERT, UPDATE, DELETE ON edb.dept TO newuser; +GRANT SELECT, INSERT, UPDATE, DELETE ON edb.emp TO newuser; +GRANT SELECT, INSERT, UPDATE, DELETE ON edb.jobhist TO newuser; +``` + +In addition, if the TRUNCATE command is to be permitted on the publication tables, grant the following additional privileges: + +``` text +GRANT TRUNCATE ON edb.dept TO newuser; +GRANT TRUNCATE ON edb.emp TO newuser; +GRANT TRUNCATE ON edb.jobhist TO newuser; +GRANT USAGE ON SCHEMA _edb_replicator_pub TO newuser; +GRANT INSERT ON _edb_replicator_pub.rrep_wal_events_queue TO newuser; +``` diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/05_preparing_sub_database.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/05_preparing_sub_database.mdx new file mode 100644 index 00000000000..9cd7a11ee2a --- /dev/null +++ b/product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/05_preparing_sub_database.mdx @@ -0,0 +1,176 @@ +--- +title: "Preparing the Subscription Database" +--- + + + + +This section discusses the preparation of a database that will be used as a subscription database. + +The tables and views in a given publication must all be replicated to the same database. This database is called the subscription database. A subscription database user name must be created with the following characteristics: + +- The subscription database user can connect to the subscription database. +- The subscription database user has the privileges to create database objects for the replicated tables and views from publications. +- The subscription database user has the privileges necessary to execute the TRUNCATE command on the replicated tables. + +See [Postgres Subscription Database](../../05_smr_operation/01_prerequisites/#postgres_sub_database) for preparation of a Postgres subscription database. See [Oracle Subscription Database](../../05_smr_operation/01_prerequisites/#oracle_sub_database) for preparation of an Oracle subscription database. See [SQL Server Subscription Database](../../05_smr_operation/01_prerequisites/#sql_sub_database) for preparation of a SQL Server subscription database. + + + +## Postgres Subscription Database + +A database user name must be chosen or created to serve as the subscription database user. The user name must have a password. The subscription database user becomes the owner of the replicated database objects. + +When creating the subscription database definition, the subscription database user name is entered in the Subscription Service – Add Database dialog box (see [Adding a Subscription Database](../../05_smr_operation/03_creating_subscription/#adding_subscription_database)). + +The subscription database user must also have the ability to run the `TRUNCATE` command on the subscription tables. This requires the following: + +- The subscription database user must have superuser privileges. +- The subscription database user must have the ability to modify the system catalog tables in order to disable foreign key constraints on subscription tables. (See appendix [Disabling Foreign Key Constraints for Snapshot Replications](../../10_appendix/04_miscellaneous_xdb_processing_topics/#disable_foreign_key_constraints_for_snapshot_replication) for more information on this requirement.) + +You have the following two choices for choosing the subscription database user name: + +- Use the Postgres user name postgres created upon installation of PostgreSQL (enterprisedb for Advanced Server installed in Oracle compatible configuration mode) for the subscription database user name. If you choose this option, skip Step 1 and proceed to Step 2. +- Create a new subscription database user name. For this option, proceed to Step 1. + +**Step 1:** Create a superuser as the subscription database user. + +``` text +CREATE ROLE subuser WITH LOGIN SUPERUSER PASSWORD 'password'; +``` + +**Step 2:** Create or choose the subscription database. + +The names of the schemas containing the publication tables and views become the names of the Postgres schemas for the subscription tables. The subscription server creates these schemas in the subscription database when the subscription is created. If schemas with these names already exist in the subscription database, the existing schemas will be used to store the subscription tables. + +**For a SQL Server publication database:** If the schema containing the publication tables and views in SQL Server is named `dbo`, then the subscription server creates a schema named `dbo_sql` in the Postgres subscription database for the subscription tables. (Schema `dbo` is a special reserved schema in Postgres.) + +The existing schemas must not contain any tables or views with the same names as the publication tables and views. The subscription server returns an error if there are already identically named tables or views. You must delete or rename these tables and views before the subscription can be created. + +A new subscription database owned by the subscription database user `subuser` can be created with the following: + +``` text +CREATE DATABASE subdb OWNER subuser; +``` + + + +## Oracle Subscription Database + +**Step 1 (Optional):** If you do not have an existing database that you want to use as your subscription database, create a new database. This step can be fairly complicated. Refer to the appropriate Oracle documentation for performing this task. + +**Step 2:** Create a database user name for the subscription database user. The subscription database user name must have a password, and it must have the ability to create a database session. The subscription database user becomes the owner of the replicated database objects. + +
+ +
+ +Note + +
+ +(For Oracle 12c Pluggable Database): The subscription database user can be an Oracle local user or a common user. The local user exists within and has access to only a single, user-created pluggable database (PDB), which is to be used as the subscription database. Common user names typically begin with C\#\# or c\#\# and can access multiple pluggable databases. + +
+ +
+ +
+ +Note + +
+ +(For Oracle 12c Pluggable Database): Creation and granting of privileges for a local user must be done while connected to the pluggable database to be used as the subscription database. Creation of a common user must be done within the Oracle 12c root container `CDB$ROOT`. Granting of privileges to the common user must be done while connected to the pluggable database to be used as the subscription database. + +
+ +
+ +
+ +Note + +
+ +(For Oracle 12c Non-Container Database): Creation and granting of privileges to the subscription database user are performed in the same manner as for Oracle versions prior to 12c. + +
+ +When creating the subscription database definition, the subscription database user name is entered in the Subscription Service – Add Database dialog box (see [Adding a Subscription Database](../../05_smr_operation/03_creating_subscription/#adding_subscription_database)). + +``` text +CREATE USER subuser IDENTIFIED BY password; +GRANT CONNECT TO subuser; +``` + +**Step 3:** Grant the privileges needed to create the replicated database objects. + +The replicated database objects are created in the schema owned by, and with the same name as the subscription database user. + +``` text +GRANT RESOURCE TO subuser; +``` + +**Step 4 (For Oracle 12c only):** Grant the privileges required to access tablespaces. The `GRANT UNLIMITED TABLESPACE` privilege must be granted to the subscription database user. This requirement applies to both a pluggable database and a non-container database. + +``` text +GRANT UNLIMITED TABLESPACE TO subuser; +``` + + + +## SQL Server Subscription Database + +**Step 1:** Create or choose the subscription database. The names of the schemas containing the publication tables and views become the names of the SQL Server schemas for the subscription tables. The subscription server creates these schemas in the subscription database when the subscription is created. If schemas with these names already exist in the subscription database, the existing schemas will be used to store the subscription tables. + +
+ +
+ +Note + +
+ +If the schema containing the publication tables and views is named public, then the subscription server creates a schema named `public_sql` in the SQL Server subscription database for the subscription tables. + +
+ +The existing schemas must not contain any tables or views with the same names as the publication tables and views. The subscription server returns an error if there are already identically named tables or views. You must delete or rename these tables and views before the subscription can be created. + +A new subscription database can be created as shown by the following: + +``` text +USE primary; +GO +CREATE DATABASE subdb; +GO +``` + +**Step 2:** Create a SQL Server login for the subscription database user. The login must have a password. + +When creating the subscription database definition, the SQL Server login is entered in the Subscription Service – Add Database dialog box (see [Adding a Subscription Database](../../05_smr_operation/03_creating_subscription/#adding_subscription_database)). + +``` text +CREATE LOGIN subuser WITH PASSWORD = 'password'; +GO +``` + +**Step 3:** In the subscription database, a database user must exist that is to be the creator and owner of the subscription tables. This database user must be mapped to the SQL Server login created in Step 2. + +In this example, the database user is given the same name as the SQL Server login `subuser`. + +``` text +USE subdb; +GO +CREATE USER subuser FOR LOGIN subuser; +GO +``` + +**Step 4:** Grant the database level privileges needed by the subscription database user to create the schema and tables for the subscription. + +``` text +GRANT CREATE SCHEMA TO subuser; +GRANT CREATE TABLE TO subuser; +GO +``` diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/06_verifying_host_accessibility.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/06_verifying_host_accessibility.mdx new file mode 100644 index 00000000000..cfd00b30e77 --- /dev/null +++ b/product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/06_verifying_host_accessibility.mdx @@ -0,0 +1,304 @@ +--- +title: "Verifying Host Accessibility" +--- + + + + +If more than one computer is used to host the components of the replication system, each computer must be able to communicate with the others on a network. There are a number of different aspects of this topic as discussed in the following sections. + + + +## Firewalls and Access to Ports + +Verify that the firewalls on the hosts allow access from the other hosts running replication system components. Refer to the directions for your host’s operating system to enable accessibility. + +In addition if you are running the xDB Replication Console or the xDB Replication Server CLI on a different host than where the publication server or subscription server are running, be sure the firewall on the host running these servers allows access to the ports used by the publication server and subscription server. + +The xDB Replication Console and xDB Replication Server CLI access the publication server and the subscription server using Java Remote Method Invocation (RMI) through the designated ports. + +The publication server uses the port number you specified on the Publication Server Details screen in Step 16 of [Installing With Stack Builder or StackBuilder Plus](../../03_installation/#installing_with_stackbuilder) as well the port offset by a value of 2 greater than this specified port number. So for a default publication server installation, access is required for port numbers `9051` and `9053`. + +The subscription server uses the port number you specified on the Subscription Server Details screen in Step 17 of [Installing With Stack Builder or StackBuilder Plus](../../03_installation/#installing_with_stackbuilder) as well as the port offset by a value of 2 greater than this specified port number. So for a default subscription server installation, access is required for port numbers `9052` and `9054`. + +When you install xDB Replication Server, the port numbers you specify for the publication server and the subscription server are stored in the xDB Startup Configuration file as shown by the following example. See [xDB Startup Configuration File](../../02_overview/03_replication_server_components_and_architecture/#xdb_startup_conf_file) for information on the xDB Startup Configuration file. + +``` text +#!/bin/sh + +JAVA_EXECUTABLE_PATH="/usr/bin/java" +JAVA_MINIMUM_VERSION=1.7 +JAVA_BITNESS_REQUIRED=64 +JAVA_HEAP_SIZE="-Xms256m -Xmx1536m" +PUBPORT=9051 +SUBPORT=9052 +``` + +If you want to use different port numbers, modify the PUBPORT and SUBPORT entries in the xDB Startup Configuration file and restart the publication server and subscription server. + +
+ +
+ +Note + +
+ +If you change the port numbers for the publication server or subscription server for which there are existing replication systems, there are additional updates you must perform upon these existing replication systems.See [Subscription Server Network Location](../../07_common_operations/06_managing_publication/#sub_server_network_loc) for changes that must be made for the publication server metadata in the control schema if the port number used by the subscription server has been changed. See [Updating a Subscription](../../05_smr_operation/05_managing_subscription/#updating_subscription) for changes that must be made for the subscription metadata in the control schema if the port number used by the publication server has been changed. + +
+ + + +## Network IP Addresses + +When configuring a replication system, you must supply the network location of various components such as the publication server, subscription server, publication database server, and subscription database server. This information, consisting of the component’s IP address and port number, is stored in the control schema. + +When one component needs to access another, it refers to the network location stored in the control schema. + +During replication system configuration it is strongly suggested that you supply the actual network IP address of each component and avoid the usage of the `loopback` address, `localhost` or `127.x.x.x`, even if all components are running on the same host. + +You can obtain the network IP address using the following command: + +**For Linux only:** Use the `/sbin/ifconfig` command. + +**For Windows only:** Open a Command Prompt window and use the `ipconfig` command. + +The loopback address works as long as the communicating components are on the same host, but if at some future point, you decide to move a component to a different host on the network, the loopback address stored as the component’s network address in the control schema will no longer work for the component trying to make the connection. + +**For Linux only:** You may need to modify the `/etc/hosts` file so that a host’s network IP address is associated with the host’s name. + +
+ +
+ +Note + +
+ +For an alternative to modifying the /etc/hosts file see [Assigning an IP Address for Remote Method Invocation](../../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/#assign_ip_adress_for_rmi). + +
+ +The default configuration on Linux systems associates the host name with the loopback address in the `/etc/hosts` file as shown by the following example: + +``` text +127.0.0.1 localhost.localdomain localhost +``` + +This is also verified by using the hostname -i command, which returns the IP address associated with the host name: + +``` text +$ hostname -i +127.0.0.1 +``` + +In these circumstances, certain xDB Replication Server components will have trouble locating its other components on the network as in the following cases: + +- When the user interface attempts to connect to the publication server or subscription server +- When the subscription server attempts to connect to the publication server + +If the loopback address `127.x.x.x` is returned such as in the preceding example, edit the `/etc/hosts` file so that the network IP address is associated with the host name instead. + +The following example shows the modified /etc/hosts file so that the host name localhost is now associated with the network IP address `192.168.2.22` instead of the loopback address `127.0.0.1`: + +``` text +#127.0.0.1 localhost.localdomain localhost +192.168.2.22 localhost.localdomain localhost +::1 localhost6.localdomain6 localhost6 +``` + +On some Linux systems, you may need to restart the network service after you have modified the `/etc/hosts` file. This may be done a number of different ways depending upon the Linux system you are using as shown by the following variations: + +``` text +service network restart +/etc/init.d/networking restart +sudo /etc/init.d/networking restart +``` + +The following example illustrates the service network command: + +``` text +$ su root +Password: +$ service network restart +Shutting down loopback interface: [ OK ] +Bringing up loopback interface: [ OK ] +``` + +Use the following command for CentOS 7 or RHEL 7 and CentOS 8 or RHEL 8: + +`systemctl restart network` + +The hostname -i command now returns the network IP address of the host: + +``` text +$ hostname -i +192.168.2.22 +``` + + + +## Postgres Server Authentication + +A Postgres database server uses the host-based authentication file, `pg_hba.conf`, to control access to the databases in the database server. You need to modify the `pg_hba.conf` file in the following locations: + +- On each Postgres database server that contains a Postgres publication database +- On each Postgres database server that contains a Postgres subscription database + +In a default Postgres installation, this file is located in the directory `POSTGRES_INSTALL_HOME/data`. + +The modifications needed to the `pg_hba.conf` file for each of the aforementioned cases are discussed in the following sections. + +**Postgres Publication Database** + +For a Postgres publication database, the following is needed to allow access to the publication database: + +``` text +host pub_dbname pub_dbuser pub_ipaddr/32 md5 +host pub_dbname pub_dbuser sub_ipaddr/32 md5 +``` + +The value you substitute for `pub_dbname` is the name of the Postgres publication database you intend to use. The value you substitute for `pub_dbuser` is the publication database user name you created in Step 1 of [Postgres Publication Database](../../05_smr_operation/01_prerequisites/#postgres_pub_db). + +For a Postgres publication database named `edb`, the resulting `pg_hba.conf` file appears as follows: + +``` text +# TYPE DATABASE USER ADDRESS METHOD + +# "local" is for Unix domain socket connections only +local all all md5 +# IPv4 local connections: +host edb pubuser 192.168.2.22/32 md5 +host all all 127.0.0.1/32 md5 +# IPv6 local connections: +host all all ::1/128 md5 +# Allow replication connections from localhost, by a user with the +# replication privilege. +#local replication enterprisedb md5 +#host replication enterprisedb 127.0.0.1/32 md5 +#host replication enterprisedb ::1/128 md5 +``` + +
+ +
+ +Note + +
+ +The preceding example assumes the publication server and the subscription server are running on the same host, hence the single entry for database `edb`. If the publication server and subscription server are running on separate hosts, then the `pg_hba.conf` file on the publication database server would look like the following: + +
+ +``` text +# TYPE DATABASE USER ADDRESS METHOD + +# "local" is for Unix domain socket connections only +local all all md5 +# IPv4 local connections: +host edb pubuser 192.168.2.22/32 md5 +host edb pubuser 192.168.2.24/32 md5 +host all all 127.0.0.1/32 md5 +# IPv6 local connections: +host all all ::1/128 md5 +# Allow replication connections from localhost, by a user with the +# replication privilege. +#local replication enterprisedb md5 +#host replication enterprisedb 127.0.0.1/32 md5 +#host replication enterprisedb ::1/128 md5 +``` + +In addition, the preceding examples assume publication database edb is using the trigger-based method of synchronization replication. If the log-based method is used, the `pg_hba.conf` file must contain an additional entry with the DATABASE field set to replication for `pub_dbname`, `pub_dbuser`, and `pub_ipaddr` to allow replication connections from the publication server on the host on which it is running. + +The following shows a modification of the preceding example with this additional entry as the last line in the file: + +``` text +# TYPE DATABASE USER ADDRESS METHOD + +# "local" is for Unix domain socket connections only +local all all md5 +# IPv4 local connections: +host edb pubuser 192.168.2.22/32 md5 +host edb pubuser 192.168.2.24/32 md5 +host all all 127.0.0.1/32 md5 +# IPv6 local connections: +host all all ::1/128 md5 +# Allow replication connections from localhost, by a user with the +# replication privilege. +#local replication enterprisedb md5 +#host replication enterprisedb 127.0.0.1/32 md5 +#host replication enterprisedb ::1/128 md5 +host replication pubuser 192.168.2.22/32 md5 +``` + +See [Synchronization Replication with the Log-Based Method](../../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#sync_replication_log_based) and [Enabling Synchronization Replication with the Log-Based Method](../../05_smr_operation/01_prerequisites/#enable_sync_replication_with_log-based_method) for additional information on synchronization replication with the log-based method. + +Reload the configuration file after making the modifications. + +Choose Reload Configuration (Expert Configuration, then Reload Configuration on Advanced Server) from the Postgres application menu. This will put the modified `pg_hba.conf` file into effect. + +**Postgres Subscription Database** + +For a Postgres subscription database, the following entries are needed to allow access to the subscription database: + +``` text +host sub_dbname sub_dbuser pub_ipaddr/32 md5 +host sub_dbname sub_dbuser sub_ipaddr/32 md5 +``` + +The values you substitute for sub\_dbuser and sub\_dbname are the subscription database user name and the subscription database name you created in steps 1 and 2 of [Postgres Subscription Database](../../05_smr_operation/01_prerequisites/#postgres_sub_database). + +For a Postgres subscription database named `subdb`, the resulting `pg_hba.conf` file appears as follows: + +``` text +# TYPE DATABASE USER ADDRESS METHOD + +# "local" is for Unix domain socket connections only +local all all md5 +# IPv4 local connections: +host subdb subuser 192.168.2.22/32 md5 +host all all 127.0.0.1/32 md5 +# IPv6 local connections: +host all all ::1/128 md5 +# Allow replication connections from localhost, by a user with the +# replication privilege. +#local replication enterprisedb md5 +#host replication enterprisedb 127.0.0.1/32 md5 +#host replication enterprisedb ::1/128 md5 +``` + +
+ +
+ +Note + +
+ +The preceding example assumes that the publication server and the subscription server are running on the same host hence, only one entry is needed for database `subdb`. If the publication server and subscription server are running on separate hosts, then the `pg_hba.conf` file on the subscription database server looks like the following: + +
+ +``` text +# TYPE DATABASE USER ADDRESS METHOD + +# "local" is for Unix domain socket connections only +local all all md5 +# IPv4 local connections: +host subdb subuser 192.168.2.22/32 md5 +host subdb subuser 192.168.2.24/32 md5 +host all all 127.0.0.1/32 md5 +# IPv6 local connections: +host all all ::1/128 md5 +# Allow replication connections from localhost, by a user with the +# replication privilege. +#local replication enterprisedb md5 +#host replication enterprisedb 127.0.0.1/32 md5 +#host replication enterprisedb ::1/128 md5 +``` + +Reload the configuration file after making the modifications. + +Choose Reload Configuration (Expert Configuration, then Reload Configuration on Advanced Server) from the Postgres application menu. This will put the modified `pg_hba.conf` file into effect. diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/index.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/index.mdx new file mode 100644 index 00000000000..bffaa40a735 --- /dev/null +++ b/product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/index.mdx @@ -0,0 +1,14 @@ +--- +title: "Prerequisite Steps" +--- + + + + +Certain steps must be taken to prepare the host environments as well as the publication and subscription database servers before beginning the process of building a single-master replication system. This section describes these steps. + +
+ +setting\_heap\_size\_for\_pub\_and\_sub enable\_sync\_replication\_with\_log-based\_method enable\_access\_to\_database preparing\_pub\_database preparing\_sub\_database verifying\_host\_accessibility + +
diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/02_creating_publication/01_registering_publication_server.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/02_creating_publication/01_registering_publication_server.mdx new file mode 100644 index 00000000000..fce1a168b07 --- /dev/null +++ b/product_docs/docs/eprs/6.2/05_smr_operation/02_creating_publication/01_registering_publication_server.mdx @@ -0,0 +1,112 @@ +--- +title: "Registering a Publication Server" +--- + + + + +When you register a publication server, you are identifying the network location, admin user name, and password of a specific, running, publication server instance that you want to use to manage all aspects of the publications you will be creating subordinate to it. + +It is important that you record the login information for the publication server as you must always use this same publication server instance to manage all publications created subordinate to it as represented in the xDB Replication Console replication tree. + +**Step 1:** Start the publication server if it is not already running. + +
+ +
+ +Note + +
+ +If you are using Oracle publication or subscription databases, and the publication server has not been restarted since copying the Oracle JDBC driver to the `lib/jdbc` subdirectory of your xDB Replication Server installation, you must restart the publication server. + +
+ +**For Linux only:** You can verify the publication server is running by using the `systemctl` command for CentOS 7 or RHEL 7 and CentOS or RHEL 8, and the service command for previous Linux versions. + +Use the following command for CentOS 7 or RHEL 7 and CentOS 8 or RHEL 8: + +``` text +systemctl status edb-xdbpubserver +``` + +Use the following command for previous Linux versions: + +``` text +service edb-xdbpubserver status +``` + +If the publication server is running and you wish to restart it, use the restart option. + +For CentOS 7 or RHEL 7 and CentOS 8 or RHEL 8: + +``` text +systemctl restart edb-xdbpubserver +``` + +**For previous Linux versions:** + +``` text +service edb-xdbpubserver restart +``` + +If the publication server is not running, use the start option. + +For CentOS 7 or RHEL 7 and CentOS 8 or RHEL 8: + +``` text +systemctl start edb-xdbpubserver +``` + +**For previous Linux versions:** + +``` text +service edb-xdbpubserver start +``` + +Similarly, use the stop option to stop the publication server. + +**For Windows only:** Open Control Panel, System and Security, Administrative Tools, and then Services. The publication server runs as a service named Publication Service for xDB Replication Server. + +![Windows publication service](/../../images/image65.png) + +Use the Start or Restart link for the service. + +If the publication server fails to start, see [Publication and Subscription Server Startup Failures](../../10_appendix/03_resolving_problems/#pub_and_sub_startup_failures) for information. + +Step 2: Register the publication server. Open the xDB Replication Console from the system’s application menu. For xDB Replication Server installed from an xDB RPM package, the xDB Replication Console is started by invoking the script `XDB_HOME/bin/runRepConsole.sh`. + +![xDB Replication Console menu option](/../../images/image66.png) + +![xDB Replication Console](/../../images/image67.png) + +**Step 3:** Select the top level Replication Servers node. From the `File` menu, choose `Publication Server`, and then choose `Register Server`. Alternatively, click the secondary mouse button on the Replication Servers node and choose Register Publication Server. The Register Publication Server dialog box appears. + +Enter the values you supplied during the installation of xDB Replication Server unless otherwise specified. + +- `Host`. Network IP address of the host running the publication server. This is the network IP address used for `pub_ipaddr` in the `pg_hba.conf` file in [Postgres Server Authentication](../../05_smr_operation/01_prerequisites/#postgres_server_auth). (Do not use `localhost` for this field.) +- `Port`. Port number the publication server is using. This is the port number you specified on the Publication Server Details screen in Step 16 of [Postgres Server Authentication](../../03_installation/#installing_with_stackbuilder). +- `User Name`. Admin user name that is used to authenticate your usage of this publication server. This is the user name you specified on the xDB Admin User Details screen in Step 15 of [Installing With Stack Builder or StackBuilder Plus](../../03_installation/#installing_with_stackbuilder). +- `Password`. Password of the admin user given in the User Name field. +- `Save login information`. Check this box if you do not want to re-register the publication server each time you open the xDB Replication Console. See [Saving Server Login Information](../../#saving_server_login_info) for additional information on the advantages and disadvantages of saving server login information. + +
+ +
+ +Note + +
+ +The user name and password combination you enter is authenticated against the admin user name and password in the xDB Replication Configuration file residing on the host with the IP address you enter in the Host field. + +
+ +![Register Publication Server dialog box](/../../images/image63.png) + +Click the `Register` button after you have filled in the fields. A Publication Server node appears in the replication tree of the xDB Replication Console. Expand the Publication Server node to expose the SMR and MMR type nodes. + +![Replication tree after registering a publication server](/../../images/image68.png) + +Continue to build the single-master replication system under the SMR type node. diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/02_creating_publication/02_adding_pub_database.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/02_creating_publication/02_adding_pub_database.mdx new file mode 100644 index 00000000000..ba98e2e13db --- /dev/null +++ b/product_docs/docs/eprs/6.2/05_smr_operation/02_creating_publication/02_adding_pub_database.mdx @@ -0,0 +1,60 @@ +--- +title: "Adding a Publication Database" +--- + + + + +The database in which publications are to reside must be identified to xDB Replication Server. This is done by creating a publication database definition. + +After the publication database definition is created, a Publication Database node representing that publication database definition appears in the replication tree of the xDB Replication Console. Publications that are to contain tables and views residing within this database can then be created under the Publication Database node. + +You must enter database connection information such as the database server network address, database identifier, and database login user name and password when you create the publication database definition. The connection information is used by the publication server to access the publication tables and views when it performs replication. + +**Step 1:** Make sure the database server in which the publication database resides is running and accepting client connections. + +**Step 2:** Select the SMR type node under the Publication Server node. From the Publication menu, choose Publication Database, and then choose Add Database. Alternatively, click the secondary mouse button on the SMR type node and choose Add Database. The Publication Service – Add Database dialog box appears. + +**Step 3:** Fill in the following fields: + +- `Database Type.` Select Oracle, SQL Server, PostgreSQL, or Postgres Plus Advanced Server for the type of publication database. For an Advanced Server Oracle compatible installation, select the Postgres Plus Advanced Server option. For PostgreSQL or an Advanced Server PostgreSQL compatible installation, select the PostgreSQL option. +- `Host.` IP address of the host on which the publication database server is running. +- `Port.` Port on which the publication database server is listening for connections. +- `User.` The publication database user name created in Step 1 of [Preparing the Publication Database](../../05_smr_operation/01_prerequisites/#preparing_pub_database). +- `Password.` Password of the database user. +- `Service ID (For Oracle).` Enter the Oracle System Identifier (SID) of the Oracle instance running the publication database if the SID radio button is selected. Enter the net service name of a connect descriptor as defined in the `TNSNAMES.ORA` file if the Service Name radio button is selected. Note (For Oracle 12c Pluggable Database): Use the service name. +- Database (For Postgres or SQL Server). Enter the Postgres or SQL Server database name. +- `URL Options (For SSL connectivity).` Enter the URL options to establish SSL connectivity to the publication database. See Using Secure Sockets Layer (SSL) Connections <using\_ssl\_connections> for information on using SSL connections. +- `Changeset Logging (For Postgres).` Select Table Triggers to use the trigger-based method of synchronization replication. Select WAL Stream to use the log-based method of synchronization replication. See [Synchronization Replication with the Trigger-Based Method](../../02_overview/02_replication_concepts_and_definitions/#sync_replication_trigger_based) for information on the trigger-based method. See [Synchronization Replication with the Log-Based Method](../../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#sync_replication_log_based) for information on the log-based method. + +![Publication Service - Add Database dialog box](/../../images/image69.png) + +
+ +
+ +Note + +
+ +If the controller database is an Oracle or a SQL Server publication database, then a second Oracle or SQL Server publication database cannot be added to create a second single-master replication system. In order for xDB Replication Server to run more than one single-master replication systems consisting of Oracle or SQL Server publication databases, a Postgres publication database must be designated as the controller database. See [Controller Database](../../02_overview/03_replication_server_components_and_architecture/#controller_database) for information on the controller database. + +
+ +The following is the Publication Service – Add Database dialog box for a Postgres database that shows the `Changeset Logging` option for selecting either the trigger-based method or the log-based method of synchronization replication. + +![Publication Service - Add Database dialog box for Postgres](/../../images/image70.png) + +**Step 4:** Click the `Test` button. If Test Result: Success appears, click the `OK` button, then click the `Save` button. + +![Successful publication database test](/../../images/image71.png) + +If an error message appears investigate the cause of the error, correct the problem, and repeat steps 1 through 4. + +When the publication database definition is successfully saved, a Publication Database node is added to the replication tree under the Publication Server node. + +![Replication tree after adding a publication database](/../../images/image72.png) + +**For Oracle only:** Multiple Oracle databases can be added as publication databases by completing the Add Database dialog box for each database. It is also permissible to add the same Oracle database as two or more distinct publication database definitions if you use different publication database user names for each publication database definition. + +**For Postgres or SQL Server:** Multiple Postgres or SQL Server databases can be added as publication databases by completing the Add Database dialog box for each database. However, unlike Oracle, a given Postgres or SQL Server database can only be added once as a publication database definition. diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/02_creating_publication/03_adding_publication.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/02_creating_publication/03_adding_publication.mdx new file mode 100644 index 00000000000..fc89cd87661 --- /dev/null +++ b/product_docs/docs/eprs/6.2/05_smr_operation/02_creating_publication/03_adding_publication.mdx @@ -0,0 +1,79 @@ +--- +title: "Adding a Publication" +--- + + + + +Subordinate to a publication database definition, you create publications that contain tables and views of the database identified in the publication database definition. + +**Step 1:** Select the Publication Database node. From the Publication menu, choose Create Publication. Alternatively, click the secondary mouse button on the Publication Database node and choose Create Publication. The Create Publication dialog box appears. + +**Step 2:** Fill in the following fields under the Create Publication tab: + +- `Publication Name.` Enter a name that is unique amongst all publications. +- `Snapshot-only replication.` Check the box if replication is to be done by snapshot only. Tables included in a snapshot-only publication do not require a primary key. Tables included in publications on which synchronization replication is to be used must have primary keys. +- `Publish.` Check the boxes next to the tables that are to be included in the publication. If the Snapshot-Only Replication box is checked, then views appear in the Publish list as well. Alternatively or in addition, click the Use Wildcard Selection button to use wildcard pattern matching for selecting publication tables. +- `Select All.` Check this box if you want to include all tables and views in the Available Tables list in the publication. +- `Use Wildcard Selection.` Click this button to use the wildcard selector to choose tables for the publication. See [Selecting Tables with the Wildcard Selector](../../07_common_operations/#select_tables_wildcard_selector) for information on the wildcard selector. + +![Create Publication dialog box](/../../images/image73.png) + +If you wish to use table filters during replications from this publication, follow the directions in the next step to define the initial set of available table filters, otherwise go on to Step 4. + +**Step 3 (Optional):** Table filters consist of a set of filter rules that control the selection criteria for rows replicated to the subscription tables during a snapshot or a synchronization replication. + +
+ +
+ +Note + +
+ +See [Table Settings and Restrictions for Table Filters](../../07_common_operations/#wildcard_selector_patterns) for table setup requirements for a log-based replication system as well as general restrictions on the use of table filters. + +
+ +A filter rule consists of a filter name and a `SQL WHERE` clause (omitting the WHERE keyword) called the filter clause, which you specify for a table or view that defines the selection criteria for rows that are to be included during a replication. + +Multiple filter rules may be defined for each table or view in the publication. If no filter rule is defined for a given table or view, then no filtering can be later enabled on a corresponding subscription table associated with that publication table. + +After filter rules have been defined for a publication table or view, you can later choose whether or not to enable those filter rules on any subscription that you associate with that publication in accordance with the following rules. + +- At most one filter rule can be enabled on a given table in a given subscription. +- The same filter rule may be enabled on the same given table in several, different subscriptions. +- Different filter rules may be enabled on the same given table but in different subscriptions. + +If you want to define table filters on the publication tables or views, click the Table Filters tab. Select the table or view from the Table/View drop-down list for which you wish to add a filter rule. Click the Add Filter button. + +In the `Filter` dialog box, enter a descriptive filter name and the filter clause to select the rows you want to replicate. The filter name and filter clause must meet the following conditions: + +- For any given table or view, each filter rule must be assigned a unique filter name. +- For any given table or view, the filter clauses must have different syntaxes (that is, the filtering criteria must be different). + +In the following example a filter rule is defined on the `DEPT` table so only rows where the `deptno` column contains 10, 20, or 30 are included in replications. All other rows are excluded from replication. + +![Adding a filter rule for the DEPT table](/../../images/image74.png) + +The following shows a rule added to the `EMP` table by choosing `EDB.EMP` from the Table/View drop-down list and then entering the selection criteria for only rows with deptno containing 10 in the Filter dialog box. + +![Adding a filter rule for the EMP table](/../../images/image75.png) + +Repeating this process, additional filter rules can be added for the EMP table. The following shows the complete set of available filter rules defined for the `DEPT` and `EMP` tables. + +![Set of all available filter rules](/../../images/image76.png) + +To remove a filter rule, click the primary mouse button on the filter rule you wish to remove so the entry is highlighted and then click the Remove Filter button. + +You may also modify the filter name or filter clause of a filter rule listed in the Table Filters tab by double-clicking on the cell of the filter name or filter clause you wish to change. When the cursor appears in the cell, enter the text for the desired change. + +When creating a subscription, you may selectively enable these table filters on the corresponding subscription tables. See [Adding a Subscription](../../05_smr_operation/03_creating_subscription/#adding_subscription) for information on creating a subscription. + +**Step 4:** Click the `Create` button. If Publication Created Successfully appears, click the `OK` button, otherwise investigate the error and make the necessary corrections. + +![Publication created successfully](/../../images/image77.png) + +Upon successful publication creation, a Publication node is added to the replication tree. + +![Replication tree after adding a publication](/../../images/image78.png) diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/02_creating_publication/04_control_schema_objects_created_for_publication.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/02_creating_publication/04_control_schema_objects_created_for_publication.mdx new file mode 100644 index 00000000000..2d43d1d9e53 --- /dev/null +++ b/product_docs/docs/eprs/6.2/05_smr_operation/02_creating_publication/04_control_schema_objects_created_for_publication.mdx @@ -0,0 +1,779 @@ +--- +title: "Control Schema Objects Created for a Publication" +--- + + + + +After you have added a publication database definition and publications you will find the following control schema objects have been created in addition to your original publication tables and views: + +- In the publication database, control schema objects are created to control and manage the xDB replication systems. How the control schema objects are organized under the actual, physical database schemas depends upon the publication database server type (that is, whether it is Oracle, SQL Server, or Postgres). +- If the publication is not a snapshot-only publication, that is synchronization replication is permitted, and synchronization replication is implemented using the trigger-based method, then three triggers and one shadow table are created for each publication table as part of the control schema. +- If the publication is using synchronization replication with the log-based method, then a single trigger is created for each publication table as part of the control schema. + +The following sections list the control schema objects found in an Oracle, SQL Server, and Postgres publication database. + +Do not manually delete any of these database objects as the replication system control schema will become corrupted. + +When you remove publications and publication database definitions using the xDB Replication Console or xDB Replication Server CLI, the control schema objects are deleted during the removal process. + + + +## Oracle Control Schema Objects + +The control schema objects created in the publication database user’s schema (that is, the control schema) are shown in the following output: + +``` text +SQL> CONNECT pubuser/password +Connected. +SQL> SET PAGESIZE 9999 +SQL> SELECT table_name FROM user_tables ORDER BY table_name; + +TABLE_NAME +------------------------------ +RREP_LOCK +RREP_MMR_PUB_GROUP +RREP_MMR_TXSET +RREP_PROPERTIES +RREP_PUBLICATION_SUBSCRIPTIONS +RREP_PUBLICATION_TABLES +RREP_TABLES +RREP_TXSET +RREP_TXSET_HEALTH +RREP_TXSET_LOG +RREP_TX_MONITOR +RREP_TX_MONITOR_TEMP +RRST_EDB_DEPT +RRST_EDB_EMP +SCH_PUB_BLOB_TRIGGERS +SCH_PUB_CALENDARS +SCH_PUB_CRON_TRIGGERS +SCH_PUB_FIRED_TRIGGERS +SCH_PUB_JOB_DETAILS +SCH_PUB_JOB_LISTENERS +SCH_PUB_LOCKS +SCH_PUB_PAUSED_TRIGGER_GRPS +SCH_PUB_SCHEDULER_STATE +SCH_PUB_SIMPLE_TRIGGERS +SCH_PUB_TRIGGERS +SCH_PUB_TRIGGER_LISTENERS +SCH_SUB_BLOB_TRIGGERS +SCH_SUB_CALENDARS +SCH_SUB_CRON_TRIGGERS +SCH_SUB_FIRED_TRIGGERS +SCH_SUB_JOB_DETAILS +SCH_SUB_JOB_LISTENERS +SCH_SUB_LOCKS +SCH_SUB_PAUSED_TRIGGER_GRPS +SCH_SUB_SCHEDULER_STATE +SCH_SUB_SIMPLE_TRIGGERS +SCH_SUB_TRIGGERS +SCH_SUB_TRIGGER_LISTENERS +XDB_CLEANUP_CONF +XDB_CONFLICTS +XDB_CONFLICTS_OPTIONS +XDB_EVENTS +XDB_EVENTS_STATUS +XDB_MMR_PUB_GROUP +XDB_PUBLICATIONS +XDB_PUBLICATION_FILTER +XDB_PUBLICATION_FILTER_RULE +XDB_PUBLICATION_SUBSCRIPTIONS +XDB_PUBTABLES_IGNOREDCOLS +XDB_PUB_DATABASE +XDB_PUB_REPLOG +XDB_PUB_TABLE_REPLOG +XDB_SUBSCRIPTIONS +XDB_SUBSCRIPTION_TABLES +XDB_SUB_DATABASE +XDB_SUB_SERVERS +XDB_TABLES + +57 rows selected. + +SQL> SELECT sequence_name FROM user_sequences ORDER BY sequence_name; + +SEQUENCE_NAME +------------------------------ +RREP_COMMON_SEQ +RREP_TXSET_SEQ +RREP_TX_SEQ + +SQL> SELECT DISTINCT name FROM user_source WHERE type = 'PACKAGE'; + +NAME +------------------------------ +RREP_PKG + +SQL> SELECT trigger_name FROM user_triggers ORDER BY trigger_name; + +TRIGGER_NAME +------------------------------ +RRPD_EDB_DEPT +RRPD_EDB_EMP +RRPI_EDB_DEPT +RRPI_EDB_EMP +RRPU_EDB_DEPT +RRPU_EDB_EMP +SCH_PUB_BLOB_TRIGGERS_TRIGGER +SCH_PUB_CALENDARS_TRIGGER +SCH_PUB_CRON_TRIGGERS_TRIGGER +SCH_PUB_JOB_DETAILS_TRIGGER +SCH_PUB_JOB_LISTENERS_TRIGGER +SCH_PUB_SIMPLE_TRIGGERS_TRIG +SCH_PUB_TRIGGERS_TRIG +SCH_PUB_TRIGGER_LISTENERS_TRIG +SCH_SUB_BLOB_TRIGGERS_TRIGGER +SCH_SUB_CALENDARS_TRIGGER +SCH_SUB_CRON_TRIGGERS_TRIGGER +SCH_SUB_JOB_DETAILS_TRIGGER +SCH_SUB_JOB_LISTENERS_TRIGGER +SCH_SUB_SIMPLE_TRIGGERS_TRIG +SCH_SUB_TRIGGERS_TRIG +SCH_SUB_TRIGGER_LISTENERS_TRIG +XDB_CLEANUP_CONF_TRIGGER +XDB_CONFLICTS_OPTIONS_TRIGGER +XDB_CONFLICTS_TRIGGER +XDB_MMR_PUB_GROUP_TRIGGER +XDB_PUBLICATIONS_TRIGGER +XDB_PUBLICATION_FILTER_TRIGGER +XDB_PUBLICATION_SUBSCRIPT_TRIG +XDB_PUBLIC_FILTER_RULE_TRIGGER +XDB_PUBTABLES_IGNOREDCOLS_TRIG +XDB_PUB_DATABASE_TRIGGER +XDB_PUB_REPLOG_TRIGGER +XDB_PUB_TABLE_REPLOG_TRIGGER +XDB_SUBSCRIPTIONS_TRIGGER +XDB_SUBSCRIPTION_TABLES_TRIG +XDB_SUB_DATABASE_TRIGGER +XDB_SUB_SERVERS_TRIGGER +XDB_TABLES_TRIGGER + +39 rows selected. + +SQL> SELECT type_name, typecode FROM user_types; + +TYPE_NAME TYPECODE +------------------------------ ------------------------------ +RREP_SYNCID_ARRAY COLLECTION +``` + +Note the following in the preceding output. + +- The tables named according to the convention `RRST_schema_table` from the SELECT statement on user\_tables are found only for synchronization publications. In this example, these tables are `RRST_EDB_DEPT` and `RRST_EDB_EMP`. +- The triggers named according to the convention RRPD\_schema\_table, `RRPI_schema_table`, and `RRPU_schema_table` from the SELECT statement on `user_triggers` are found only for synchronization publications. In this example, these triggers are `RRPU_EDB_DEPT`, `RRPI_EDB_DEPT`, `RRPD_EDB_DEPT`, `RRPI_EDB_EMP`, `RRPU_EDB_EMP`, and `RRPD_EDB_EMP`. + +The following example shows what the same set of queries would look like if the publication was a snapshot-only publication: + +``` text +SQL> CONNECT pubuser/password +Connected. +SQL> SET PAGESIZE 9999 +SQL> SELECT table_name FROM user_tables ORDER BY table_name; + +TABLE_NAME +------------------------------ +RREP_LOCK +RREP_MMR_PUB_GROUP +RREP_MMR_TXSET +RREP_PROPERTIES +RREP_PUBLICATION_SUBSCRIPTIONS +RREP_PUBLICATION_TABLES +RREP_TABLES +RREP_TXSET +RREP_TXSET_HEALTH +RREP_TXSET_LOG +RREP_TX_MONITOR +RREP_TX_MONITOR_TEMP +SCH_PUB_BLOB_TRIGGERS +SCH_PUB_CALENDARS +SCH_PUB_CRON_TRIGGERS +SCH_PUB_FIRED_TRIGGERS +SCH_PUB_JOB_DETAILS +SCH_PUB_JOB_LISTENERS +SCH_PUB_LOCKS +SCH_PUB_PAUSED_TRIGGER_GRPS +SCH_PUB_SCHEDULER_STATE +SCH_PUB_SIMPLE_TRIGGERS +SCH_PUB_TRIGGERS +SCH_PUB_TRIGGER_LISTENERS +SCH_SUB_BLOB_TRIGGERS +SCH_SUB_CALENDARS +SCH_SUB_CRON_TRIGGERS +SCH_SUB_FIRED_TRIGGERS +SCH_SUB_JOB_DETAILS +SCH_SUB_JOB_LISTENERS +SCH_SUB_LOCKS +SCH_SUB_PAUSED_TRIGGER_GRPS +SCH_SUB_SCHEDULER_STATE +SCH_SUB_SIMPLE_TRIGGERS +SCH_SUB_TRIGGERS +SCH_SUB_TRIGGER_LISTENERS +XDB_CLEANUP_CONF +XDB_CONFLICTS +XDB_CONFLICTS_OPTIONS +XDB_EVENTS +XDB_EVENTS_STATUS +XDB_MMR_PUB_GROUP +XDB_PUBLICATIONS +XDB_PUBLICATION_FILTER +XDB_PUBLICATION_FILTER_RULE +XDB_PUBLICATION_SUBSCRIPTIONS +XDB_PUBTABLES_IGNOREDCOLS +XDB_PUB_DATABASE +XDB_PUB_REPLOG +XDB_PUB_TABLE_REPLOG +XDB_SUBSCRIPTIONS +XDB_SUBSCRIPTION_TABLES +XDB_SUB_DATABASE +XDB_SUB_SERVERS +XDB_TABLES + +55 rows selected. + +SQL> SELECT sequence_name FROM user_sequences ORDER BY sequence_name; + +SEQUENCE_NAME +------------------------------ +RREP_COMMON_SEQ +RREP_TXSET_SEQ +RREP_TX_SEQ + +SQL> SELECT DISTINCT name FROM user_source WHERE type = 'PACKAGE'; + +NAME +------------------------------ +RREP_PKG + +SQL> SELECT trigger_name FROM user_triggers ORDER BY trigger_name; + +TRIGGER_NAME +------------------------------ +SCH_PUB_BLOB_TRIGGERS_TRIGGER +SCH_PUB_CALENDARS_TRIGGER +SCH_PUB_CRON_TRIGGERS_TRIGGER +SCH_PUB_JOB_DETAILS_TRIGGER +SCH_PUB_JOB_LISTENERS_TRIGGER +SCH_PUB_SIMPLE_TRIGGERS_TRIG +SCH_PUB_TRIGGERS_TRIG +SCH_PUB_TRIGGER_LISTENERS_TRIG +SCH_SUB_BLOB_TRIGGERS_TRIGGER +SCH_SUB_CALENDARS_TRIGGER +SCH_SUB_CRON_TRIGGERS_TRIGGER +SCH_SUB_JOB_DETAILS_TRIGGER +SCH_SUB_JOB_LISTENERS_TRIGGER +SCH_SUB_SIMPLE_TRIGGERS_TRIG +SCH_SUB_TRIGGERS_TRIG +SCH_SUB_TRIGGER_LISTENERS_TRIG +XDB_CLEANUP_CONF_TRIGGER +XDB_CONFLICTS_OPTIONS_TRIGGER +XDB_CONFLICTS_TRIGGER +XDB_MMR_PUB_GROUP_TRIGGER +XDB_PUBLICATIONS_TRIGGER +XDB_PUBLICATION_FILTER_TRIGGER +XDB_PUBLICATION_SUBSCRIPT_TRIG +XDB_PUBLIC_FILTER_RULE_TRIGGER +XDB_PUBTABLES_IGNOREDCOLS_TRIG +XDB_PUB_DATABASE_TRIGGER +XDB_PUB_REPLOG_TRIGGER +XDB_PUB_TABLE_REPLOG_TRIGGER +XDB_SUBSCRIPTIONS_TRIGGER +XDB_SUBSCRIPTION_TABLES_TRIG +XDB_SUB_DATABASE_TRIGGER +XDB_SUB_SERVERS_TRIGGER +XDB_TABLES_TRIGGER + +33 rows selected. + +SQL> SELECT type_name, typecode FROM user_types; + +TYPE_NAME TYPECODE +------------------------------ ------------------------------ +RREP_SYNCID_ARRAY COLLECTION +``` + +
+ +
+ +Note + +
+ +The RREP\_SYNCID\_ARRAY collection type is found only in an Oracle publication database. + +
+ + + +## SQL Server Control Schema Objects + +Most of the control schema objects are created in `schemas _edb_replicator_pub`, `_edb_replicator_sub`, and `_edb_scheduler`. Additional control schema objects are created in the schema you chose in Step 5 of [SQL Server Publication Database](../../05_smr_operation/01_prerequisites/#sql_server_pub_db). The following examples assume the schema of your choosing is `pubuser`. The publication tables are dept and emp located in the edb schema. + +The following query lists the control schema objects located in the aforementioned schemas: + +``` text +1> USE edb; +2> GO +Changed database context to 'edb'. +1> SELECT s.name + '.' + o.name "Object Name", o.type_desc "Object Type" +2> FROM sys.objects o, +3> sys.schemas s +4> WHERE s.name IN ('_edb_replicator_pub', '_edb_replicator_sub', +5> '_edb_scheduler', 'pubuser') +6> AND o.type IN ('U','P','FN') +7> AND o.schema_id = s.schema_id +8> ORDER BY 1, 2; +9> GO +Object Name Object Type +-------------------------------------------------- --------------------- +_edb_replicator_pub.nextval SQL_STORED_PROCEDURE +_edb_replicator_pub.rrep_common_seq USER_TABLE +_edb_replicator_pub.rrep_lock USER_TABLE +_edb_replicator_pub.rrep_MMR_pub_group USER_TABLE +_edb_replicator_pub.rrep_MMR_txset USER_TABLE +_edb_replicator_pub.rrep_properties USER_TABLE +_edb_replicator_pub.rrep_publication_subscriptions USER_TABLE +_edb_replicator_pub.rrep_publication_tables USER_TABLE +_edb_replicator_pub.rrep_tables USER_TABLE +_edb_replicator_pub.rrep_tx_monitor USER_TABLE +_edb_replicator_pub.rrep_tx_seq USER_TABLE +_edb_replicator_pub.rrep_txset USER_TABLE +_edb_replicator_pub.rrep_txset_health USER_TABLE +_edb_replicator_pub.rrep_txset_log USER_TABLE +_edb_replicator_pub.rrep_txset_seq USER_TABLE +_edb_replicator_pub.sp_createsequence SQL_STORED_PROCEDURE +_edb_replicator_pub.sp_dropsequence SQL_STORED_PROCEDURE +_edb_replicator_pub.xdb_cleanup_conf USER_TABLE +_edb_replicator_pub.xdb_conflicts USER_TABLE +_edb_replicator_pub.xdb_conflicts_options USER_TABLE +_edb_replicator_pub.xdb_events USER_TABLE +_edb_replicator_pub.xdb_events_status USER_TABLE +_edb_replicator_pub.xdb_MMR_pub_group USER_TABLE +_edb_replicator_pub.xdb_pub_database USER_TABLE +_edb_replicator_pub.xdb_pub_replog USER_TABLE +_edb_replicator_pub.xdb_pub_table_replog USER_TABLE +_edb_replicator_pub.xdb_publication_filter USER_TABLE +_edb_replicator_pub.xdb_publication_filter_rule USER_TABLE +_edb_replicator_pub.xdb_publication_subscriptions USER_TABLE +_edb_replicator_pub.xdb_publications USER_TABLE +_edb_replicator_pub.xdb_pubtables_ignoredcols USER_TABLE +_edb_replicator_pub.xdb_sub_servers USER_TABLE +_edb_replicator_sub.rrep_common_seq USER_TABLE +_edb_replicator_sub.xdb_sub_database USER_TABLE +_edb_replicator_sub.xdb_subscription_tables USER_TABLE +_edb_replicator_sub.xdb_subscriptions USER_TABLE +_edb_replicator_sub.xdb_tables USER_TABLE +_edb_scheduler.sch_pub_BLOB_TRIGGERS USER_TABLE +_edb_scheduler.sch_pub_CALENDARS USER_TABLE +_edb_scheduler.sch_pub_CRON_TRIGGERS USER_TABLE +_edb_scheduler.sch_pub_FIRED_TRIGGERS USER_TABLE +_edb_scheduler.sch_pub_JOB_DETAILS USER_TABLE +_edb_scheduler.sch_pub_JOB_LISTENERS USER_TABLE +_edb_scheduler.sch_pub_LOCKS USER_TABLE +_edb_scheduler.sch_pub_PAUSED_TRIGGER_GRPS USER_TABLE +_edb_scheduler.sch_pub_SCHEDULER_STATE USER_TABLE +_edb_scheduler.sch_pub_SIMPLE_TRIGGERS USER_TABLE +_edb_scheduler.sch_pub_TRIGGER_LISTENERS USER_TABLE +_edb_scheduler.sch_pub_TRIGGERS USER_TABLE +_edb_scheduler.sch_sub_BLOB_TRIGGERS USER_TABLE +_edb_scheduler.sch_sub_CALENDARS USER_TABLE +_edb_scheduler.sch_sub_CRON_TRIGGERS USER_TABLE +_edb_scheduler.sch_sub_FIRED_TRIGGERS USER_TABLE +_edb_scheduler.sch_sub_JOB_DETAILS USER_TABLE +_edb_scheduler.sch_sub_JOB_LISTENERS USER_TABLE +_edb_scheduler.sch_sub_LOCKS USER_TABLE +_edb_scheduler.sch_sub_PAUSED_TRIGGER_GRPS USER_TABLE +_edb_scheduler.sch_sub_SCHEDULER_STATE USER_TABLE +_edb_scheduler.sch_sub_SIMPLE_TRIGGERS USER_TABLE +_edb_scheduler.sch_sub_TRIGGER_LISTENERS USER_TABLE +_edb_scheduler.sch_sub_TRIGGERS USER_TABLE +pubuser.CleanupShadowTables SQL_STORED_PROCEDURE +pubuser.ConfigureCleanUpJob SQL_STORED_PROCEDURE +pubuser.ConfigureCreateTxSetJob SQL_STORED_PROCEDURE +pubuser.CreateMultiTxSet SQL_STORED_PROCEDURE +pubuser.CreateTableLogTrigger SQL_STORED_PROCEDURE +pubuser.CreateTxSet SQL_STORED_PROCEDURE +pubuser.CreateTxSet_old SQL_STORED_PROCEDURE +pubuser.CreateUniTxSet SQL_STORED_PROCEDURE +pubuser.GetNewTxsCount SQL_STORED_PROCEDURE +pubuser.getPackageVersionNumber SQL_SCALAR_FUNCTION +pubuser.JobCleanup SQL_STORED_PROCEDURE +pubuser.JobCreateTxSet SQL_STORED_PROCEDURE +pubuser.LoadPubTableList SQL_STORED_PROCEDURE +pubuser.RemoveCleanupJob SQL_STORED_PROCEDURE +pubuser.RemoveCreateTxSetJob SQL_STORED_PROCEDURE +pubuser.rrst_edb_dept USER_TABLE +pubuser.rrst_edb_emp USER_TABLE + +(78 rows affected) +``` + +**Note (For SQL Server 2012, 2014):** The following database objects from the preceding list are no longer created as part of the control schema when the publication database is SQL Server 2012 or 2014: + +``` text +Object Name Object Type +-------------------------------------------------- --------------------- +_edb_replicator_pub.nextval SQL_STORED_PROCEDURE +_edb_replicator_pub.rrep_common_seq USER_TABLE +_edb_replicator_pub.rrep_tx_seq USER_TABLE +_edb_replicator_pub.rrep_txset_seq USER_TABLE +_edb_replicator_pub.sp_createsequence SQL_STORED_PROCEDURE +_edb_replicator_pub.sp_dropsequence SQL_STORED_PROCEDURE +_edb_replicator_sub.rrep_common_seq USER_TABLE +``` + +SQL Server versions 2012 and 2014 support creation of sequence objects that can now perform the functionality previously provided by the preceding list of objects. The following are the sequence objects that are now used when the publication database is SQL Server 2012 or 2014: + +``` text +1> USE edb; +2> GO +Changed database context to 'edb'. +1> SELECT s.name + '.' + o.name "Object Name", o.type_desc "Object Type" +2> FROM sys.objects o, +3> sys.schemas s +4> WHERE s.name IN ('_edb_replicator_pub', '_edb_replicator_sub', +5> '_edb_scheduler', 'pubuser') +6> AND o.type IN ('SO') +7> AND o.schema_id = s.schema_id +8> ORDER BY 1, 2; +9> GO +Object Name Object Type +-------------------------------------------------- --------------------- +_edb_replicator_pub.rrep_common_seq SEQUENCE_OBJECT +_edb_replicator_pub.rrep_tx_seq SEQUENCE_OBJECT +_edb_replicator_pub.rrep_txset_seq SEQUENCE_OBJECT + +(3 rows affected) +``` + +The following is a continuation of the list of control schema objects for all SQL Server versions: + +``` text +1> USE edb; +2> GO +Changed database context to 'edb'. +1> SELECT s.name + '.' + o.name "Trigger Name", o.type_desc "Object Type" +2> FROM sys.objects o, +3> sys.schemas s +4> WHERE s.name IN ('_edb_replicator_pub', '_edb_replicator_sub', +5> '_edb_scheduler', 'pubuser') +6> AND o.type = 'TR' +7> AND o.schema_id = s.schema_id +8> ORDER BY 1; +9> GO +Trigger Name Object Type +---------------------------------------------------------- -------------- +_edb_replicator_pub.xdb_cleanup_conf_trigger SQL_TRIGGER +_edb_replicator_pub.xdb_conflicts_options_trigger SQL_TRIGGER +_edb_replicator_pub.xdb_conflicts_trigger SQL_TRIGGER +_edb_replicator_pub.xdb_MMR_pub_group_trigger SQL_TRIGGER +_edb_replicator_pub.xdb_pub_database_trigger SQL_TRIGGER +_edb_replicator_pub.xdb_pub_replog_trigger SQL_TRIGGER +_edb_replicator_pub.xdb_pub_table_replog_trigger SQL_TRIGGER +_edb_replicator_pub.xdb_public_filter_rule_trigger SQL_TRIGGER +_edb_replicator_pub.xdb_publication_filter_trigger SQL_TRIGGER +_edb_replicator_pub.xdb_publication_subscription_triggers SQL_TRIGGER +_edb_replicator_pub.xdb_publications_trigger SQL_TRIGGER +_edb_replicator_pub.xdb_pubtables_ignoredcols_trig SQL_TRIGGER +_edb_replicator_pub.xdb_sub_servers_trigger SQL_TRIGGER +_edb_replicator_sub.xdb_sub_database_trigger SQL_TRIGGER +_edb_replicator_sub.xdb_subscription_tables_trig SQL_TRIGGER +_edb_replicator_sub.xdb_subscriptions_trigger SQL_TRIGGER +_edb_replicator_sub.xdb_tables_trigger SQL_TRIGGER +_edb_scheduler.sch_pub_blob_triggers_trigger SQL_TRIGGER +_edb_scheduler.sch_pub_calendars_trigger SQL_TRIGGER +_edb_scheduler.sch_pub_cron_triggers_trigger SQL_TRIGGER +_edb_scheduler.sch_pub_job_details_trigger SQL_TRIGGER +_edb_scheduler.sch_pub_job_listeners_trigger SQL_TRIGGER +_edb_scheduler.sch_pub_simple_triggers_trigger SQL_TRIGGER +_edb_scheduler.sch_pub_trigger_listeners_trigger SQL_TRIGGER +_edb_scheduler.sch_pub_triggers_trigger SQL_TRIGGER +_edb_scheduler.sch_sub_blob_triggers_trigger SQL_TRIGGER +_edb_scheduler.sch_sub_calendars_trigger SQL_TRIGGER +_edb_scheduler.sch_sub_cron_triggers_trigger SQL_TRIGGER +_edb_scheduler.sch_sub_job_details_trigger SQL_TRIGGER +_edb_scheduler.sch_sub_job_listeners_trigger SQL_TRIGGER +_edb_scheduler.sch_sub_simple_triggers_trigger SQL_TRIGGER +_edb_scheduler.sch_sub_trigger_listeners_trigger SQL_TRIGGER +_edb_scheduler.sch_sub_triggers_trigger SQL_TRIGGER + +(33 rows affected) +``` + +For non-snapshot only publication tables, triggers are created that reside in the schema containing the publication tables as shown by the following: + +``` text +1> USE edb; +2> GO +Changed database context to 'edb'. +1> SELECT s.name + '.' + o.name "Trigger Name" +2> FROM sys.objects o, +3> sys.schemas s +4> WHERE s.name = 'edb' +5> AND o.type = 'TR' +6> AND o.name LIKE 'rr%' +7> AND o.schema_id = s.schema_id +8> ORDER BY 1; +9> GO +Trigger Name +-------------------------------------- +edb.rrpd_edb_dept +edb.rrpd_edb_emp +edb.rrpi_edb_dept +edb.rrpi_edb_emp +edb.rrpu_edb_dept +edb.rrpu_edb_emp + +(6 rows affected) +``` + +Finally, some jobs are created in the msdb database after the subscription is created as shown by the following: + +``` text +1> USE msdb; +2> GO +Changed database context to 'msdb'. +1> SELECT j.name "Job Name" +2> FROM msdb.dbo.sysjobs j, +3> primary.dbo.syslogins l +4> WHERE l.name = 'pubuser' +5> AND j.name LIKE 'rrep%' +6> AND j.owner_sid = l.sid +7> ORDER BY 1; +8> GO +Job Name +-------------------------------------- +rrep_cleanup_job_edb +rrep_txset_job_edb + +(2 rows affected) +``` + + + +## Postgres Control Schema Objects + +The control schema objects are created in three schemas named `_edb_replicator_pub`, `_edb_replicator_sub`, and `_edb_scheduler`. + +The control schema objects contained in \_edb\_replicator\_pub are shown by the following: + +``` text +edb=# SET search_path TO _edb_replicator_pub; +SET +edb=# \dt + List of relations + Schema | Name | Type | Owner +---------------------+--------------------------------+-------+--------- + _edb_replicator_pub | rrep_lock | table | pubuser + _edb_replicator_pub | rrep_MMR_pub_group | table | pubuser + _edb_replicator_pub | rrep_MMR_txset | table | pubuser + _edb_replicator_pub | rrep_properties | table | pubuser + _edb_replicator_pub | rrep_publication_subscriptions | table | pubuser + _edb_replicator_pub | rrep_publication_tables | table | pubuser + _edb_replicator_pub | rrep_tables | table | pubuser + _edb_replicator_pub | rrep_tx_monitor | table | pubuser + _edb_replicator_pub | rrep_txset | table | pubuser + _edb_replicator_pub | rrep_txset_health | table | pubuser + _edb_replicator_pub | rrep_txset_log | table | pubuser + _edb_replicator_pub | rrep_wal_events_queue | table | pubuser + _edb_replicator_pub | rrst_edb_dept | table | pubuser + _edb_replicator_pub | rrst_edb_emp | table | pubuser + _edb_replicator_pub | xdb_cleanup_conf | table | pubuser + _edb_replicator_pub | xdb_conflicts | table | pubuser + _edb_replicator_pub | xdb_conflicts_options | table | pubuser + _edb_replicator_pub | xdb_events | table | pubuser + _edb_replicator_pub | xdb_events_status | table | pubuser + _edb_replicator_pub | xdb_MMR_pub_group | table | pubuser + _edb_replicator_pub | xdb_pub_database | table | pubuser + _edb_replicator_pub | xdb_pub_replog | table | pubuser + _edb_replicator_pub | xdb_pub_table_replog | table | pubuser + _edb_replicator_pub | xdb_publication_filter | table | pubuser + _edb_replicator_pub | xdb_publication_filter_rule | table | pubuser + _edb_replicator_pub | xdb_publication_subscriptions | table | pubuser + _edb_replicator_pub | xdb_publications | table | pubuser + _edb_replicator_pub | xdb_pubtables_ignoredcols | table | pubuser + _edb_replicator_pub | xdb_sub_servers | table | pubuser +(29 rows) + +edb=# \ds + List of relations + Schema | Name | Type | Owner +---------------------+-----------------+----------+--------- + _edb_replicator_pub | rrep_common_seq | sequence | pubuser + _edb_replicator_pub | rrep_tx_seq | sequence | pubuser + _edb_replicator_pub | rrep_txset_seq | sequence | pubuser +(3 rows) + +edb=# SELECT nspname, pkgname FROM edb_package pk, pg_namespace ns +edb-# WHERE nspname IN ('_edb_replicator_pub', '_edb_replicator_sub') +edb-# AND pk.pkgnamespace = ns.oid; + nspname | pkgname +---------------------+---------- + _edb_replicator_pub | rrep_pkg +(1 row) + +edb=# SELECT nspname, funname, typname FROM pg_function fn, pg_namespace ns, +edb-# pg_type ty +edb-# WHERE nspname = '_edb_replicator_pub' +edb-# AND ns.oid = fn.funnamespace +edb-# AND ty.oid = fn.funrettype +edb-# ORDER BY typname, funname; + nspname | funname | typname +---------------------+----------------------------------------------+--------- + _edb_replicator_pub | capturetruncateevent | trigger + _edb_replicator_pub | erep_filter_rule_delete_trigger_tgfunc | trigger + _edb_replicator_pub | erep_pub_database_trigger_tgfunc | trigger + _edb_replicator_pub | erep_publication_delete_trigger_tgfunc | trigger + _edb_replicator_pub | xdb_cleanup_conf_trigger_tgfunc | trigger + _edb_replicator_pub | xdb_conflicts_options_trigger_tgfunc | trigger + _edb_replicator_pub | xdb_conflicts_trigger_tgfunc | trigger + _edb_replicator_pub | xdb_MMR_pub_group_trigger_tgfunc | trigger + _edb_replicator_pub | xdb_pub_database_trigger_tgfunc | trigger + _edb_replicator_pub | xdb_pub_replog_trigger_tgfunc | trigger + _edb_replicator_pub | xdb_pub_table_replog_trigger_tgfunc | trigger + _edb_replicator_pub | xdb_publication_filter_rule_trigger_tgfunc | trigger + _edb_replicator_pub | xdb_publication_filter_trigger_tgfunc | trigger + _edb_replicator_pub | xdb_publication_subscriptions_trigger_tgfunc | trigger + _edb_replicator_pub | xdb_publications_trigger_tgfunc | trigger + _edb_replicator_pub | xdb_pubtables_ignoredcols_trigger_tgfunc | trigger + _edb_replicator_pub | xdb_sub_servers_trigger_tgfunc | trigger + _edb_replicator_pub | getpackageversionnumber | varchar +(18 rows) +``` + +The control schema objects contained in \_edb\_replicator\_sub are shown by the following: + +``` text +edb=# SET search_path TO _edb_replicator_sub; +SET +edb=# \dt + List of relations + Schema | Name | Type | Owner +---------------------+-------------------------+-------+--------- + _edb_replicator_sub | xdb_sub_database | table | pubuser + _edb_replicator_sub | xdb_subscription_tables | table | pubuser + _edb_replicator_sub | xdb_subscriptions | table | pubuser + _edb_replicator_sub | xdb_tables | table | pubuser +(4 rows) + +edb=# \ds + List of relations + Schema | Name | Type | Owner +---------------------+-----------------+----------+--------- + _edb_replicator_sub | rrep_common_seq | sequence | pubuser +(1 row) + +edb=# SELECT nspname, funname, typname FROM pg_function fn, pg_namespace ns, +edb-# pg_type ty +edb-# WHERE nspname = '_edb_replicator_sub' +edb-# AND ns.oid = fn.funnamespace +edb-# AND ty.oid = fn.funrettype +edb-# ORDER BY typname, funname; + nspname | funname | typname +---------------------+----------------------------------------+--------- + _edb_replicator_sub | xdb_sub_database_trigger_tgfunc | trigger + _edb_replicator_sub | xdb_subscription_tables_trigger_tgfunc | trigger + _edb_replicator_sub | xdb_subscriptions_trigger_tgfunc | trigger + _edb_replicator_sub | xdb_tables_trigger_tgfunc | trigger +(4 rows) +``` + +The control schema objects contained in `_edb_scheduler` are shown by the following: + +``` text +edb=# SET search_path TO _edb_scheduler; +SET +edb=# \dt + List of relations + Schema | Name | Type | Owner +----------------+-----------------------------+-------+--------- + _edb_scheduler | sch_pub_blob_triggers | table | pubuser + _edb_scheduler | sch_pub_calendars | table | pubuser + _edb_scheduler | sch_pub_cron_triggers | table | pubuser + _edb_scheduler | sch_pub_fired_triggers | table | pubuser + _edb_scheduler | sch_pub_job_details | table | pubuser + _edb_scheduler | sch_pub_job_listeners | table | pubuser + _edb_scheduler | sch_pub_locks | table | pubuser + _edb_scheduler | sch_pub_paused_trigger_grps | table | pubuser + _edb_scheduler | sch_pub_scheduler_state | table | pubuser + _edb_scheduler | sch_pub_simple_triggers | table | pubuser + _edb_scheduler | sch_pub_trigger_listeners | table | pubuser + _edb_scheduler | sch_pub_triggers | table | pubuser + _edb_scheduler | sch_sub_blob_triggers | table | pubuser + _edb_scheduler | sch_sub_calendars | table | pubuser + _edb_scheduler | sch_sub_cron_triggers | table | pubuser + _edb_scheduler | sch_sub_fired_triggers | table | pubuser + _edb_scheduler | sch_sub_job_details | table | pubuser + _edb_scheduler | sch_sub_job_listeners | table | pubuser + _edb_scheduler | sch_sub_locks | table | pubuser + _edb_scheduler | sch_sub_paused_trigger_grps | table | pubuser + _edb_scheduler | sch_sub_scheduler_state | table | pubuser + _edb_scheduler | sch_sub_simple_triggers | table | pubuser + _edb_scheduler | sch_sub_trigger_listeners | table | pubuser + _edb_scheduler | sch_sub_triggers | table | pubuser +(24 rows) + +edb=# SELECT nspname, funname, typname FROM pg_function fn, pg_namespace ns, +edb-# pg_type ty +edb-# WHERE nspname = '_edb_scheduler' +edb-# AND ns.oid = fn.funnamespace +edb-# AND ty.oid = fn.funrettype +edb-# ORDER BY typname, funname; + nspname | funname | typname +----------------+------------------------------------------+--------- + _edb_scheduler | sch_pub_blob_triggers_trigger_tgfunc | trigger + _edb_scheduler | sch_pub_calendars_trigger_tgfunc | trigger + _edb_scheduler | sch_pub_cron_triggers_trigger_tgfunc | trigger + _edb_scheduler | sch_pub_job_details_trigger_tgfunc | trigger + _edb_scheduler | sch_pub_job_listeners_trigger_tgfunc | trigger + _edb_scheduler | sch_pub_simple_triggers_trigger_tgfunc | trigger + _edb_scheduler | sch_pub_trigger_listeners_trigger_tgfunc | trigger + _edb_scheduler | sch_pub_triggers_trigger_tgfunc | trigger + _edb_scheduler | sch_sub_blob_triggers_trigger_tgfunc | trigger + _edb_scheduler | sch_sub_calendars_trigger_tgfunc | trigger + _edb_scheduler | sch_sub_cron_triggers_trigger_tgfunc | trigger + _edb_scheduler | sch_sub_job_details_trigger_tgfunc | trigger + _edb_scheduler | sch_sub_job_listeners_trigger_tgfunc | trigger + _edb_scheduler | sch_sub_simple_triggers_trigger_tgfunc | trigger + _edb_scheduler | sch_sub_trigger_listeners_trigger_tgfunc | trigger + _edb_scheduler | sch_sub_triggers_trigger_tgfunc | trigger +(16 rows) +``` + +In addition, triggers and trigger functions are created in the schema containing the publication tables if the trigger-based method of synchronization replication is used. + +``` text +edb=# SET search_path TO edb; +SET +edb=# \df rr* + List of functions + Schema | Name | Result data type | Argument data types | Type +--------+----------------------+------------------+---------------------+--------- + edb | rrpd_edb_dept_tgfunc | trigger | | trigger + edb | rrpd_edb_emp_tgfunc | trigger | | trigger + edb | rrpi_edb_dept_tgfunc | trigger | | trigger + edb | rrpi_edb_emp_tgfunc | trigger | | trigger + edb | rrpu_edb_dept_tgfunc | trigger | | trigger + edb | rrpu_edb_emp_tgfunc | trigger | | trigger +(6 rows) +``` + +If the log-based method of synchronization replication is used, the following triggers are created on the publication tables: + +``` text +edb=# SELECT t.tgname AS "Trigger Name", c.relname AS "Table Name", +edb-# f.funname AS "Trigger Function" +edb-# FROM pg_trigger t, pg_function f, pg_class c +edb-# WHERE tgname LIKE 'rrpt%' +edb-# AND t.tgfoid = f.oid +edb-# AND t.tgrelid = c.oid +edb-# ORDER BY t.tgname; + Trigger Name | Table Name | Trigger Function +---------------+------------+---------------------- + rrpt_edb_dept | dept | capturetruncateevent + rrpt_edb_emp | emp | capturetruncateevent +(2 rows) +``` + +These triggers are used to support synchronization replication of the `TRUNCATE` command when the log-based method is used. diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/02_creating_publication/index.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/02_creating_publication/index.mdx new file mode 100644 index 00000000000..b476051c0cf --- /dev/null +++ b/product_docs/docs/eprs/6.2/05_smr_operation/02_creating_publication/index.mdx @@ -0,0 +1,20 @@ +--- +title: "Creating a Publication" +--- + + + + +Creating your first publication requires the following steps: + +- Registering the publication server +- Adding the publication database +- Creating a publication by choosing the tables and views for the publication along with creating any optional filter clauses + +Once the publication database has been added, as many publications can be created as there are available tables and views that are readable by the publication database user and that meet the criteria outlined in [Design Considerations](../02_overview/04_design_replication_system/#design_considerations) and [Restrictions on Replicated Database Objects](../02_overview/04_design_replication_system/#restrictions_on_replicated_database_objects). + +
+ +registering\_publication\_server adding\_pub\_database adding\_publication control\_schema\_objects\_created\_for\_publication + +
diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/03_creating_subscription/01_registering_subscription_server.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/03_creating_subscription/01_registering_subscription_server.mdx new file mode 100644 index 00000000000..680f0dfc1ed --- /dev/null +++ b/product_docs/docs/eprs/6.2/05_smr_operation/03_creating_subscription/01_registering_subscription_server.mdx @@ -0,0 +1,62 @@ +--- +title: "Registering a Subscription Server" +--- + + + + +When you register a subscription server, you are identifying the network location, admin user name, and password of a specific, running, subscription server instance that you want to use to manage all aspects of the subscriptions you will be creating subordinate to it. + +It is important that you record the login information for the subscription server as you must always use this same subscription server instance to manage all subscriptions created subordinate to it as represented in the xDB Replication Console replication tree. + +**Step 1:** Start the subscription server if it is not already running. Repeat the same process as in Step 1 of [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server). + +
+ +
+ +Note + +
+ +If you are using Oracle publication or subscription databases, and the subscription server has not been restarted since copying the Oracle JDBC driver to the `lib/jdbc` subdirectory of your xDB Replication Server installation, you must restart the subscription server. + +
+ +**For Linux only:** Use the `systemctl` command for CentOS 7 or RHEL 7 and CentOS 8 or RHEL 8, and the service command for previous Linux versions to start, stop, or restart `edb-xdbsubserver` for the subscription server. See [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server) for information on how these commands are used. + +**For Windows only:** Open Control Panel, System and Security, Administrative Tools, and then Services. Use the Start or Restart link for the service named Subscription Service for xDB Replication Server. + +![Windows subscription service](/../../images/image79.png) + +If the subscription server fails to start, see [Publication and Subscription Server Startup Failures](../../10_appendix/03_resolving_problems/#pub_and_sub_startup_failures) for information. + +**Step 2:** Register the subscription server. Open the xDB Replication Console from the system’s application menu. For xDB Replication Server installed from an xDB RPM package, the xDB Replication Console is started by invoking the script `XDB_HOME/bin/runRepConsole.sh`. + +**Step 3:** Select the top level Replication Servers node. From the `File` menu, choose `Subscription` Server, and then choose `Register Server`. Alternatively, click the secondary mouse button on the Replication Servers node and choose `Register Subscription` Server. The `Register Subscription Server` dialog box appears. + +Enter the values you supplied during the installation of xDB Replication Server unless otherwise specified. + +- `Host.` Network IP address of the host running the subscription server. This is the network IP address used for `sub_ipaddr` in the `pg_hba.conf` file in [Postgres Server Authentication](../../05_smr_operation/01_prerequisites/#postgres_server_auth). (Do not use `localhost` for this field.) +- `Port.` Port number the subscription server is using. This is the port number you specified on the Subscription Server Details screen in Step 17 of [Installing With Stack Builder or StackBuilder Plus](../../03_installation/#installing_with_stackbuilder). +- `User Name.` Admin user name that is used to authenticate your usage of this subscription server. This is the user name you specified on the xDB Admin User Details screen in Step 15 of [Installing With Stack Builder or StackBuilder Plus](../../03_installation/#installing_with_stackbuilder). +- `Password.` Password of the admin user given in the User Name field. +- `Save login information.` Check this box if you do not want to re-register the subscription server each time you open the xDB Replication Console. See [Saving Server Login Information](../../#saving_server_login_info) for additional information on the advantages and disadvantages of saving server login information. + +
+ +
+ +Note + +
+ +The user name and password combination you enter is authenticated against the admin user name and password in the xDB Replication Configuration file residing on the host with the IP address you enter in the Host field. + +
+ +![Register Subscription Server dialog box](/../../images/image64.png) + +Click the Register button after you have filled in the fields. A Subscription Server node appears in the replication tree of the xDB Replication Console. + +![Replication tree after registering a subscription server](/../../images/image80.png) diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/03_creating_subscription/02_adding_subscription_database.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/03_creating_subscription/02_adding_subscription_database.mdx new file mode 100644 index 00000000000..b50ac0e141b --- /dev/null +++ b/product_docs/docs/eprs/6.2/05_smr_operation/03_creating_subscription/02_adding_subscription_database.mdx @@ -0,0 +1,82 @@ +--- +title: "Adding a Subscription Database" +--- + + + + +The database in which subscriptions are to reside must be identified to xDB Replication Server. This is done by creating a subscription database definition. + +After the subscription database definition is created, a Subscription Database node representing that subscription database definition appears in the replication tree of the xDB Replication Console. Subscriptions created subordinate to this subscription database definition will have their publications replicated to the database identified by the subscription database definition. + +You must enter database connection information such as the database server network address, database identifier, and database login user name and password when you create the subscription database definition. The connection information is used by the subscription server to create the subscription table definitions and by the publication server to perform replications. + +Note the following restriction on the subscription database: + +- **For Oracle only.** There must be no existing tables or views owned by the Oracle subscription database user that has the same name as a table or view in a publication that will be replicated to this database. For example, if the Oracle subscription database user name is `subuser`, and if a Postgres publication contains a table with the name dept, then the Oracle subscription database must not have an existing table or view with the schema-qualified name `subuser.dept` at the time you create the subscription. +- **For Postgres only.** There must be no existing tables or views with the same schema-qualified name as a table or view in a publication that will be replicated to this database. For example, if the publication contains a table with the schema-qualified name `edb.dept`, then the Postgres subscription database must not have an existing table or view with the schema-qualified name edb.dept at the time you create the subscription. + +
+ +
+ +Note + +
+ +If the SQL Server publication schema name is dbo, the subscription tables are created under a schema named `dbo_sql` in Postgres. + +
+ +- **For SQL Server only.** There must be no existing tables or views with the same schema-qualified name as a table or view in a publication that will be replicated to this database. For example, if the publication contains a table with the schema-qualified name `edb.dept`, then the SQL Server subscription database must not have an existing table or view with the schema-qualified name edb.dept at the time you create the subscription. + +
+ +
+ +Note + +
+ +If the Postgres publication schema name is public, the subscription tables are created under a schema named `public_sql` in SQL Server. + +
+ +
+ +
+ +Note + +
+ +A database that has been added as a publication database can also be used as a subscription database. + +
+ +**Step 1:** Make sure the database server in which the subscription database resides is running and accepting client connections. + +**Step 2:** Select the Subscription Server node. From the Subscription menu, choose Subscription Database, and then choose Add Database. Alternatively, click the secondary mouse button on the Subscription Server node and choose Add Database. The Subscription Service – Add Database dialog box appears. + +**Step 3:** Fill in the following fields: + +- Database Type. Select Oracle, SQL Server, PostgreSQL, or Postgres Plus Advanced Server for the type of subscription database. For an Advanced Server Oracle compatible installation, select the Postgres Plus Advanced Server option. For PostgreSQL or an Advanced Server PostgreSQL compatible installation, select the PostgreSQL option. +- `Host`. IP address of the host on which the subscription database server is running. +- `Port`. Port on which the subscription database server is listening for connections. +- `User`. The subscription database user name chosen in [Postgres Subscription Database](../../05_smr_operation/01_prerequisites/#postgres_sub_database) for a Postgres subscription database or the database user name created in Step 2 of [Oracle Subscription Database](../../05_smr_operation/01_prerequisites/#oracle_sub_database) for an Oracle subscription database or the database user name created in Step 2 of [SQL Server Subscription Database](../../05_smr_operation/01_prerequisites/#sql_sub_database) for a SQL Server subscription database. +- `Password`. Password of the database user. +- `Service ID (For Oracle)`. Enter the Oracle System Identifier (SID) of the Oracle instance running the subscription database if the SID radio button is selected. Enter the net service name of a connect descriptor as defined in the `TNSNAMES.ORA` file if the Service Name radio button is selected. Note (For Oracle 12c Pluggable Database): Use the service name. +- `Database (For Postgres or SQL Server)`. Enter the Postgres or SQL Server database name. +- `URL Options (For SSL connectivity)`. Enter the URL options to establish SSL connectivity to the subscription database. See Using Secure Sockets Layer (SSL) Connections <using\_ssl\_connections> for information on using SSL connections. + +![Subscription Service - Add Database dialog box](/../../images/image81.png) + +**Step 4:** Click the `Test` button. If Test Result: Success appears, click the OK button, then click the Save button. + +![Successful subscription database test](/../../images/image82.png) + +If an error message appears investigate the cause of the error, correct the problem, and repeat steps 1 through 4. + +When the subscription database definition is successfully saved, a Subscription Database node is added to the replication tree under the Subscription Server node. + +![Replication tree after adding a subscription database](/../../images/image83.png) diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/03_creating_subscription/03_adding_subscription.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/03_creating_subscription/03_adding_subscription.mdx new file mode 100644 index 00000000000..8120816b1b3 --- /dev/null +++ b/product_docs/docs/eprs/6.2/05_smr_operation/03_creating_subscription/03_adding_subscription.mdx @@ -0,0 +1,41 @@ +--- +title: "Adding a Subscription" +--- + + + + +Subordinate to a subscription database definition, you create subscriptions. A subscription assigns the publication that is to be replicated to the database identified by the subscription database definition. + +**Step 1:** Select the Subscription Database node. From the Subscription menu, choose Create Subscription. Alternatively, click the secondary mouse button on the Subscription Database node and choose Create Subscription. The Create Subscription dialog box appears. + +**Step 2:** Fill in the following fields: + +- `Subscription Name`. Enter a name for the subscription that is unique amongst all subscription names. +- `Host`. Network IP address of the publication server that is the parent node of the publication to be subscribed to. This is the same value entered in the Host field in Step 3 of [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server). +- `Port`. Port used by the publication server. This is the same value entered in the Port field in Step 3 of [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server). +- `User Name`. Admin user name of the publication server. This is the same value entered in the User Name field in Step 3 of [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server). +- `Password`. Password of the admin user. This is the same value entered in the Password field in Step 3 of [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server). +- `Publication Name`. Click the `Load` button to get a list of available publications. Select the publication to which to subscribe. + +![Create Subscription dialog box](/../../images/image84.png) + +**Step 3 (Optional):** If you defined a set of available table filters for the publication, you have the option of enabling these filters on this subscription. See [Adding a Publication](../../05_smr_operation/02_creating_publication/#adding_publication) for instructions on defining table filters. If you do not wish to filter the rows that are replicated to this subscription, go to Step 4. + +Click the Filter Rules tab to enable one or more filter rules on the subscription. At most one filter rule may be enabled on any given subscription table. + +In the following example the filter named `dept_10_20_30` is enabled on the dept table and the filter named dept\_30 is enabled on the `emp` table of this subscription. + +![Enabling filter rules on a subscription](/../../images/image85.png) + +**Step 4:** Click the `Create` button. If `Subscription Created Successfully` appears, click the `OK` button, otherwise investigate the error and make the necessary corrections. + +![Subscription created successfully](/../../images/image86.png) + +Upon successful subscription creation, a Subscription node is added to the replication tree. + +![Replication tree after adding a subscription](/../../images/image87.png) + +The tables and views from the publication are created in the subscription database, but without any rows. Rows are populated into the subscription tables when the first snapshot replication occurs. + +![Table definitions in the subscription database](/../../images/image88.png) diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/03_creating_subscription/04_subscription_metadata_object.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/03_creating_subscription/04_subscription_metadata_object.mdx new file mode 100644 index 00000000000..a9a294f399e --- /dev/null +++ b/product_docs/docs/eprs/6.2/05_smr_operation/03_creating_subscription/04_subscription_metadata_object.mdx @@ -0,0 +1,56 @@ +--- +title: "Subscription Metadata Object" +--- + + + + +After you have added a subscription database definition you will find a single table named rrep\_txset\_health has been created as the subscription metadata object. + +**For Oracle only:** The `RREP_TXSET_HEALTH` table is created in the subscription database user’s schema as shown in the following output: + +``` text +SQL> CONNECT subuser/password +Connected. +SQL> SET PAGESIZE 9999 +SQL> SELECT table_name FROM user_tables ORDER BY table_name; + +TABLE_NAME +------------------------------ +RREP_TXSET_HEALTH +``` + +**For SQL Server only:** The `rrep_txset_health` table is created in the schema named `_edb_replicator_sub`. + +``` text +1> USE subdb; +2> GO +Changed database context to 'subdb'. +1> SELECT s.name + '.' + o.name "Object Name", o.type_desc "Object Type" +2> FROM sys.objects o, +3> sys.schemas s +4> WHERE s.name <> 'edb' +5> AND o.type IN ('U','P','FN') +6> AND o.schema_id = s.schema_id +7> ORDER BY 2, 1; +8> GO +Object Name Object Type +-------------------------------------- -------------------------------------- +_edb_replicator_sub.rrep_txset_health USER_TABLE +(1 rows affected) +``` + +**For Postgres only:** The `rrep_txset_health` table is created in the schema named `_edb_replicator_sub`. + +``` text +subdb=# SET search_path TO _edb_replicator_sub; +SET +subdb=# \dt + List of relations + Schema | Name | Type | Owner +---------------------+-------------------+-------+--------- + _edb_replicator_sub | rrep_txset_health | table | subuser +(1 row) +``` + +In all subscription database types (Oracle, SQL Server, and Postgres) when you remove the subscription database definitions using the xDB Replication Console or xDB Replication Server CLI, the subscription metadata object is deleted from the subscription database. diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/03_creating_subscription/index.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/03_creating_subscription/index.mdx new file mode 100644 index 00000000000..f74f44672c7 --- /dev/null +++ b/product_docs/docs/eprs/6.2/05_smr_operation/03_creating_subscription/index.mdx @@ -0,0 +1,20 @@ +--- +title: "Creating a Subscription" +--- + + + + +Creating your first subscription requires the following steps: + +- Registering the subscription server +- Adding the subscription database +- Creating a subscription by choosing the publication to which to subscribe + +Multiple subscriptions can be created in a subscription database. More than one subscription can also be created to subscribe against the same publication. + +
+ +registering\_subscription\_server adding\_subscription\_database adding\_subscription subscription\_metadata\_object + +
diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/04_on_demand_replication/01_perform_replication.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/04_on_demand_replication/01_perform_replication.mdx new file mode 100644 index 00000000000..d8f0f3dfb03 --- /dev/null +++ b/product_docs/docs/eprs/6.2/05_smr_operation/04_on_demand_replication/01_perform_replication.mdx @@ -0,0 +1,42 @@ +--- +title: "Performing Snapshot Replication" +--- + + + + +The very first replication must be performed using snapshot replication. After the first snapshot replication, subsequent replications can be done using either the synchronization method (if the publication was not initially defined as a snapshot-only publication) or the snapshot method. + +**Step 1:** Select the Subscription node of the subscription for which you wish to perform snapshot replication. + +![Selecting a subscription for an on demand snapshot](/../../images/image89.png) + +**Step 2:** Open the `Snapshot` dialog box in any of the following ways: + +- From the `Subscription` menu, choose `Snapshot`. +- Click the secondary mouse button on the Subscription node and choose `Snapshot`. +- Click the primary mouse button on the Snapshot icon. + +![Opening the Snapshot dialog box](/../../images/image90.png) + +**Step 3:** Select the `Verbose Output` check box only if you want to display the output from the snapshot in the dialog box. This option should be left unchecked in a network address translation (NAT) environment as a large amount of output from the snapshot may delay the response from the Snapshot dialog box. Click the Snapshot button to start snapshot replication. + +![Snapshot dialog box](/../../images/image91.png) + +**Step 4:** Snapshot Taken Successfully appears if the snapshot was successful. Click the `OK` button. If the snapshot was not successful, scroll through the messages in the Snapshot dialog box window if Verbose Output was selected or check the log files. + +The status messages of each snapshot are saved in the Migration Toolkit log files named `mtk.log[.n]` (where `[.n]` is an optional history file count if log file rotation is enabled) in the following directories: + +**For Linux:** + +`/var/log/xdb-x.x` + +**For Windows:** + +`POSTGRES_HOME\.enterprisedb\xdb\x.x` + +`POSTGRES_HOME` is the home directory of the Windows postgres account (enterprisedb account for Advanced Server installed in Oracle compatible configuration mode). The specific location of `POSTGRES_HOME` is dependent upon your version of Windows. The xDB Replication Server version number is represented by `x.x`. + +![Successful on demand snapshot](/../../images/image92.png) + +The publication has now been replicated to the subscription database. A record of the snapshot is maintained in the replication history. See [Viewing Replication History](../../07_common_operations/#view_replication_history) for information on how to view replication history. diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/04_on_demand_replication/02_perform_sync_replication.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/04_on_demand_replication/02_perform_sync_replication.mdx new file mode 100644 index 00000000000..908b46bf3db --- /dev/null +++ b/product_docs/docs/eprs/6.2/05_smr_operation/04_on_demand_replication/02_perform_sync_replication.mdx @@ -0,0 +1,32 @@ +--- +title: "Performing Synchronization Replication" +--- + + + + +After the first snapshot replication, subsequent replications can be performed using synchronization replication if the publication was not created as a snapshot-only publication. + +**Step 1:** When the trigger-based method of synchronization replication is in use, select the Subscription node of the subscription for which you wish to perform synchronization replication. + +When the log-based method of synchronization replication is in use, select the Subscription node of any subscription. For the log-based method, the synchronization replication will be performed on all subscriptions regardless of which one is selected. + +![Selecting a subscription for an on demand synchronization](/../../images/image89.png) + +**Step 2:** Open the `Synchronize` dialog box in any of the following ways: + +- From the `Subscription` menu, choose `Synchronize`. +- Click the secondary mouse button on the Subscription node and choose Synchronize. +- Click the primary mouse button on the `Synchronize` icon. + +![Opening the Synchronize dialog box](/../../images/image93.png) + +**Step 3:** Click the `Synchronize` button to start synchronization replication. + +![Synchronize dialog box](/../../images/image91.png) + +**Step 4:** `Subscription Synchronized Successfully` appears if the synchronization was successful. Click the `OK` button. If the synchronization was not successful, scroll through the messages in the Synchronize dialog box window. + +![Successful on demand synchronization](/../../images/image94.png) + +The operations that were applied to the subscription tables can be seen in the replication history. See [Viewing Replication History](../../07_common_operations/#view_replication_history) for information on how to view replication history. diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/04_on_demand_replication/index.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/04_on_demand_replication/index.mdx new file mode 100644 index 00000000000..c93b45bfcd0 --- /dev/null +++ b/product_docs/docs/eprs/6.2/05_smr_operation/04_on_demand_replication/index.mdx @@ -0,0 +1,19 @@ +--- +title: "On Demand Replication" +--- + + + + +After a publication and subscription are created, there are a couple of choices for starting the replication process. + +- Replication can be done immediately by taking an on demand snapshot. +- Replication can be scheduled to start at a later date and time by creating a schedule. + +This section discusses the procedure for initiating a replication on demand. Section [Creating a Schedule](../07_common_operations/#creating_schedule) discusses how to create a schedule. + +
+ +perform\_replication perform\_sync\_replication + +
diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/01_updating_subscription_server.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/01_updating_subscription_server.mdx new file mode 100644 index 00000000000..9a55a192afa --- /dev/null +++ b/product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/01_updating_subscription_server.mdx @@ -0,0 +1,39 @@ +--- +title: "Updating a Subscription Server" +--- + + + + +When you register a subscription server in the xDB Replication Console, you may choose to save the subscription server’s network location (IP address and port number), admin user name, and encrypted password in a server login file on the computer on which you are running the xDB Replication Console. See [Saving Server Login Information](../../#saving_server_login_info) for information on saving the login information. + +The steps described in this section show you how to update the subscription server’s login information in the server login file. + +It is assumed that the xDB Replication Console is open on your computer and the subscription server whose login information you wish to alter in the server login file, appears as a Subscription Server node in the xDB Replication Console’s replication tree. + +![Subscription Server node](/../../images/image95.png) + +You can perform the following actions on the server login file: + +- Change the subscription server’s login information (host IP address, port number, admin user name, and password) that you last saved in the server login file. +- Delete the subscription server’s login information that is currently saved in the server login file. This is the default action, which will require you to register the subscription server again the next time you open the xDB Replication Console. +- Resave the subscription server’s login information in the server login file. Each time you open the Update Subscription Server dialog box, you must choose to save the login information if you want it recorded in the server login file. + +The following steps change only the content of the server login file residing on the host under the current xDB Replication Console user’s home directory. These changes do not alter any characteristic of the actual subscription server daemon (on Linux) or service (on Windows). These changes affect only how a subscription server is viewed through the xDB Replication Console on this host by this user. + +**Step 1:** +The subscription server whose login information you want to save, change, or delete in the server login file must be running before you can make any changes to the file. See Step 1 of [Registering a Subscription Server](../../05_smr_operation/03_creating_subscription/#registering_subscription_server) for directions on starting the subscription server. + +**Step 2:** Click the secondary mouse button on the Subscription Server node and choose Update. The Update Subscription Server dialog box appears. + +![Update Subscription Server dialog box](/../../images/image96.png) + +**Step 3:** Complete the fields in the dialog box according to your purpose for updating the server login file: + +- If the subscription server now runs on a host with a different IP address or port number than what is shown in the dialog box, enter the correct information. You must also enter the admin user name and password saved in the xDB Replication Configuration file that resides on the host identified by the IP address you entered in the Host field. Check the Save Login Information box if you want the new login information saved in the server login file, otherwise leave the box unchecked in which case, access to the subscription server is available for the current session, but subsequent sessions will require you to register the subscription server again. +- If you want to delete previously saved login information, make sure the network location shown in the dialog box is still correct. Re-enter the admin user name and password saved in the xDB Replication Configuration file that resides on the host identified by the IP address in the Host field. Leave the Save Login Information box unchecked. Access to the subscription server is available for this session, but subsequent sessions will require you to register the subscription server again. +- If you want to save the current login information shown in the dialog box, make sure the network location shown in the dialog box is correct. Re-enter the admin user name and password saved in the xDB Replication Configuration file that resides on the host identified by the IP address in the Host field. Check the Save Login Information box. + +![Updated subscription server location](/../../images/image97.png) + +**Step 4:** Click the `Update` button. If the dialog box closes, then the update to the server login file was successful. Click the `Refresh` icon in the xDB Replication Console tool bar to show the updated Subscription Server node. If an error message appears after clicking the `Update` button, the server login file is not modified. Investigate and correct the cause of the error. Repeat steps 1 through 4. diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/02_updating_subscription_database.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/02_updating_subscription_database.mdx new file mode 100644 index 00000000000..0734468351a --- /dev/null +++ b/product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/02_updating_subscription_database.mdx @@ -0,0 +1,59 @@ +--- +title: "Updating a Subscription Database" +--- + + + + +When you create a subscription database definition, you save the subscription database server’s network location (IP address and port number), the database identifier, a database login user name, and the user’s password in the control schema accessed by the subscription server. This login information is used whenever a session needs to be established with the subscription database. See [Adding a Subscription Database](../../05_smr_operation/03_creating_subscription/#adding_subscription_database) for information on creating a subscription database definition. + +The steps described in this section show you how to update the subscription database login information stored in the control schema should any of these attributes of the actual, physical database change. + +
+ +
+ +Note + +
+ +Depending upon the database type (Oracle, SQL Server, or Postgres), certain attributes must not be changed. If you have already added subscriptions, you must not change any attribute that alters access to the schema where the subscription tables were created. + +
+ +Attributes you must not change if there are existing subscriptions include the following: + +- The Oracle login user name as the subscription tables already reside in this Oracle user’s schema +- The database server network location if the new network location references a database server that does not access the database that already contains the subscription tables +- The database identifier if the new database identifier references a different physical database than where the subscription tables already reside + +Attributes you may change include the following: + +- The login user name’s password to match a changed database user password +- The database server network location if the corresponding location change was made to the database server that accesses the subscription database +- The database identifier such as the Oracle service name, SQL Server database name, or Postgres database name if the corresponding name change was made on the database server +- All attributes may be changed if there are no existing subscriptions + +**Step 1:** Make sure the database server that you ultimately wish to save as the subscription database definition is running and accepting client connections. + +**Step 2:** Make sure the subscription server whose node is the parent of the subscription database definition you wish to change is running and has been registered in the xDB Replication Console you are using. See [Registering a Subscription Server](../../05_smr_operation/03_creating_subscription/#registering_subscription_server) for directions on starting and registering a subscription server. + +**Step 3:** Select the Subscription Database node corresponding to the subscription database definition that you wish to update. + +![Selecting a subscription database definition for update](/../../images/image98.png) + +**Step 4:** From the Subscription menu, choose Subscription Database, and then choose Update Database. Alternatively, click the secondary mouse button on the Subscription Database node and choose Update Database. The Update Database Source dialog box appears. + +**Step 5:** Enter the desired changes. See Step 3 of Section [Adding a Subscription Database](../../05_smr_operation/03_creating_subscription/#adding_subscription_database) for the precise meanings of the fields. + +![Update Database Source dialog box](/../../images/image99.png) + +**Step 6:** Click the `Test` button. If Test Result: Success appears, click the `OK` button, then click the `Save` button. + +![Successful subscription database test](/../../images/image100.png) + +If an error message appears investigate the cause of the error, correct the problem, and repeat steps 1 through 6. + +**Step 7:** Click the `Refresh` icon in the xDB Replication Console tool bar to show the updated Subscription Database node and any of its subscriptions. + +![Updated subscription database](/../../images/image101.png) diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/03_updating_subscription.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/03_updating_subscription.mdx new file mode 100644 index 00000000000..fb574e53aee --- /dev/null +++ b/product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/03_updating_subscription.mdx @@ -0,0 +1,33 @@ +--- +title: "Updating a Subscription" +--- + + + + +When a subscription is created, certain attributes of the subscribed publication are stored as part of the metadata for the subscription in the control schema. These include the following: + +- The network IP address of the host running the publication server that is the parent of the subscribed publication +- The port number of the publication server + +If the preceding attributes of the publication server change in the replication system environment, then the corresponding subscription metadata must also be changed so the subscription server can communicate with the correct publication server. + +The following directions show how to update the publication server network IP address and port number within the subscription server’s metadata. + +**Step 1:** Make sure the subscription server whose node is the parent of the subscription you wish to change is running and has been registered in the xDB Replication Console you are using. See [Registering a Subscription Server](../../05_smr_operation/03_creating_subscription/#registering_subscription_server) for directions on starting and registering a subscription server. + +**Step 2:** Select the Subscription node whose attributes you wish to update. + +![Selecting a subscription to update](/../../images/image102.png) + +**Step 3:** From the `Subscription` menu, choose `Update` Subscription. Alternatively, click the secondary mouse button on the Subscription node and choose Update Subscription. The `Update Subscription` dialog box appears. + +![Update Subscription dialog box](/../../images/image103.png) + +**Step 4:** If the publication server now runs on a host with a different IP address or port number than what is shown in the dialog box, enter the correct information. You must also enter the admin user name and password saved in the xDB Replication Configuration file that resides on the host on which the publication server is running. Click the `Update` button. + +![Subscription successfully updated](/../../images/image104.png) + +**Step 5:** If Subscription Updated Successfully appears, click the `OK` button, otherwise investigate the error and make the necessary corrections. + +**Step 6:** If the publication server with the new network location manages publications subscribed to by other subscriptions, repeat steps 1 through 5 for these other subscriptions. diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/04_enable_filters_on_subscription.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/04_enable_filters_on_subscription.mdx new file mode 100644 index 00000000000..c24000059cd --- /dev/null +++ b/product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/04_enable_filters_on_subscription.mdx @@ -0,0 +1,43 @@ +--- +title: "Enabling/Disabling Table Filters on a Subscription" +--- + + + + +Table filters must first be defined in a set of available table filters in the publication before they can be enabled on a subscription. See [Adding a Publication](../../05_smr_operation/02_creating_publication/#adding_publication) for information on defining table filters in a single-master replication system. + +The following are the steps for enabling or disabling table filters on an existing subscription. + +**Step 1:** Make sure the publication server whose node is the parent of the publication associated with the subscription you wish to change is running and has been registered in the xDB Replication Console you are using. See [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server) for directions on starting and registering a publication server. Make sure the subscription server whose node is the parent of the subscription you wish to change is running and has been registered in the xDB Replication Console you are using. See [Registering a Subscription Server](../../05_smr_operation/03_creating_subscription/#registering_subscription_server) for directions on starting and registering a subscription server. + +**Step 2:** Select the Subscription node of the subscription on which you wish to enable or disable individual filter rules. + +![Selecting a subscription on which to enable or disable filter rules](/../../images/image89.png) + +**Step 3:** Open the Filter Rules tab in any of the following ways: + +- Choose **Update Filter Rule** from the **Subscription** menu. +- Click the secondary mouse button on the Subscription node and choose **Update Filter Rule**. + +![Opening the Filter Rules tab on a subscription](/../../images/image105.png) + +**Step 4:** In the **Filter Rules** tab check or uncheck the boxes to specify the filter rules to enable or disable on the subscription. At most one filter rule may be enabled any given subscription table. Click the **Update** button. + +![Filter Rules tab](/../../images/image106.png) + +**Step 5:** A confirmation box appears presenting a warning message and a recommendation to perform a snapshot replication to any subscription on which you changed the filtering criteria. + +Click the **Ok** button in the confirmation box to proceed with the update to the filter rule selections. Click the **Cancel** button to return to the **Filter Rules** tab if you wish to modify your filter rule selections. + +![Change filter rule confirmation](/../../images/image107.png) + +**Step 6:** If you clicked the **Ok** button in the preceding step, the **Filter Rules updated successfully** confirmation message appears if the update was successful. + +![Successful update of filter rules](/../../images/image108.png) + +If you clicked the **Cancel** button in the preceding step, the **Filter Rules** tab reopens. You can modify your filter rule selections by repeating Step 4, or you can click the Cancel button in the Filter Rules tab to abort the filter rule updates on the subscription. + +**Step 7:** It is strongly recommended that a snapshot replication be performed to the subscription that contains tables on which the filtering criteria has changed. + +A snapshot ensures that the content of the subscription tables is consistent with the updated filtering criteria. See [Performing Snapshot Replication](../../05_smr_operation/04_on_demand_replication/#perform_replication) for information on performing a snapshot replication. diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/05_removing_subscription.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/05_removing_subscription.mdx new file mode 100644 index 00000000000..a923c0969f1 --- /dev/null +++ b/product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/05_removing_subscription.mdx @@ -0,0 +1,32 @@ +--- +title: "Removing a Subscription" +--- + + + + +After a subscription is removed, replication can no longer occur for the publication that was associated with it until the publication is subscribed to with a new subscription. + +Removing a subscription does not delete the subscription tables in the subscription database. It removes the identity and association of these tables to xDB Replication Server so the tables remain in the database until the DBA deletes them with `DROP TABLE SQL` statements. + +**Step 1:** Make sure the subscription server whose node is the parent of the subscription you wish to remove is running and has been registered in the xDB Replication Console you are using. See [Registering a Subscription Server](../../05_smr_operation/03_creating_subscription/#registering_subscription_server) for directions on starting and registering a subscription server. + +**Step 2:** Select the Subscription node of the subscription that you wish to remove. + +![Selecting a subscription to remove](/../../images/image89.png) + +**Step 3:** Remove the subscription in any of the following ways: + +- Choose `Remove Subscription` from the `Subscription` menu. +- Click the secondary mouse button on the Subscription node and choose `Remove Subscription`. +- Click the primary mouse button on the `Remove Subscription` icon. + +![Removing the subscription using the toolbar](/../../images/image109.png) + +**Step 4:** In the Remove Subscription confirmation box, click the `Yes` button. + +![Remove Subscription confirmation](/../../images/image110.png) + +The Subscription node no longer appears under the Subscription Database node. + +![Replication tree after removing a subscription](/../../images/image111.png) diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/06_removing_subscription_database.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/06_removing_subscription_database.mdx new file mode 100644 index 00000000000..4c2f6d01a17 --- /dev/null +++ b/product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/06_removing_subscription_database.mdx @@ -0,0 +1,26 @@ +--- +title: "Removing a Subscription Database" +--- + + + + +Deleting a subscription database definition from xDB Replication Server is equivalent to removing its Subscription Database node. Before a Subscription Database node can be removed, all subscriptions under that Subscription Database node must be removed. See [Removing a Subscription](../../05_smr_operation/05_managing_subscription/#removing_subscription) for removing a subscription. + +Removing a Subscription Database node does not delete the physical database from the database server. It removes the identity and association of the database to xDB Replication Server so no further replications can create or update tables in the database unless there are other subscription database definitions in xDB Replication Server with the same host and database identifier. The physical database can only be removed using the database management system’s database removal procedures. + +**Step 1:** Make sure the subscription server whose node is the parent of the subscription database definition you wish to remove is running and has been registered in the xDB Replication Console you are using. See [Registering a Subscription Server](../../05_smr_operation/03_creating_subscription/#registering_subscription_server) for directions on starting and registering a subscription server. + +**Step 2:** Select the Subscription Database node that you wish to remove. + +![Selecting a subscription database definition for removal](/../../images/image98.png) + +**Step 3:** From the **Subscription** menu, choose **Subscription Database**, then **Remove Database**. Alternatively, click the secondary mouse button on the Subscription Database node and choose Remove Subscription. The **Remove Subscription Database** confirmation box appears. + +**Step 4:** In the **Remove Subscription Database** confirmation box, click the **Yes** button. + +![Remove Subscription Database confirmation](/../../images/image112.png) + +The Subscription Database node no longer appears under the Subscription Server node. + +![Replication tree after removal of a subscription database](/../../images/image113.png) diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/index.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/index.mdx new file mode 100644 index 00000000000..f44cdc73885 --- /dev/null +++ b/product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/index.mdx @@ -0,0 +1,30 @@ +--- +title: "Managing a Subscription" +--- + + + + +
+ +
+ +Note + +
+ +This section discusses various aspects of managing a subscription of a replication system. For a similar discussion on managing a publication of a replication system, see [Managing a Publication](../07_common_operations/06_managing_publication/#managing_publication). + +
+ +After a subscription has been created, certain aspects of the underlying replication system environment might be subsequently altered for any number of reasons. Attributes that might change include the network location of the subscription database server, the network location of the host running the subscription server, database or operating system user names and passwords, and so forth. + +The aforementioned information is saved in the replication system metadata when a subscription is created. Changes to these attributes result in inaccurate replication system metadata, which in turn may result in errors during subsequent replication attempts or replication system administration. + +This section describes how to update the metadata stored for the subscription server, the subscription database definition, and subscriptions in order to keep the information consistent with the actual replication system environment. + +
+ +updating\_subscription\_server updating\_subscription\_database updating\_subscription enable\_filters\_on\_subscription removing\_subscription removing\_subscription\_database + +
diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/06_performing_switchover.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/06_performing_switchover.mdx new file mode 100644 index 00000000000..7fbe48af2b6 --- /dev/null +++ b/product_docs/docs/eprs/6.2/05_smr_operation/06_performing_switchover.mdx @@ -0,0 +1,112 @@ +--- +title: "Performing Controlled Switchover" +--- + + + + +Controlled switchover is the exchanging of roles between a publication database and a subscription database. That is, the tables that were formerly publications become the subscription tables. The former subscription tables now become the publications. + +Controlled switchover is useful for situations where the publication database must be taken offline such as for periodic maintenance. After the switchover, applications connect to the former subscription database to perform their queries and updates, while the former publication database is kept synchronized by replication. + +Updates for replication are accumulated in shadow tables that are created on the former subscription tables during the controlled switchover procedure. When the former publication database is online, it is synchronized as the target of replication. + +When you determine that you want to reverse the roles again so that the original publication database directly receives queries and updates from applications, and the original subscription database receives updates by replication, you perform the controlled switchover procedure once again, switching the roles back. + +
+ +
+ +Note + +
+ +This discussion assumes that the trigger-based method of synchronization replication is used by the publication database. If the publication database employs the log-based method, then it must be determined if the current subscription database meets the criteria for using the log-based method if that is so desired when it is switched to the role of the publication database. If the subscription database does not meet the criteria, then the trigger-based method must be implemented and used. See [Synchronization Replication with the Log-Based Method](../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#sync_replication_log_based) for information on the log-based method and the necessary configuration steps that must be performed if the log-based method is to be used. + +
+ +## Controlled Switchover Overview + +When you perform controlled switchover, you are modifying the replication system so that the database identified and referenced in the control schema as the publication database is the physical database that was originally defined as the subscription database. + +Similarly, the database identified and referenced in the control schema as the subscription database is changed to the physical database on which the publication was originally defined. + +You must also create the database objects on the former subscription database that xDB Replication Server uses to capture and store updates for replication. In order to accomplish the controlled switchover, the following tasks must be performed: + +- Copy the control schema of the publication database (that is, all control schema objects, shadow tables, sequences, triggers, and a package) to the subscription database. +- Copy the control schema of the subscription database to the publication database. +- Update certain control schema tables so as to exchange the connection information for the publication database and subscription database. These updates must be made in the control schema of all publication databases to ensure consistency of the control schema across all publication databases. +- Modify the xDB Replication Configuration file to reference a new controller database if the former publication database was the designated controller database. + +## Controlled Switchover Steps + +This section describes the steps for performing a controlled switchover. + +The following assumptions are made about the replication system environment: + +- `Node 1` is the server where the publication database originally resides. Its network IP address is 192.168.2.19. +- `Node 2` is the server where the subscription database originally resides. Its network IP address is 192.168.2.20. +- The publication and subscription databases have the same name. +- You use the publication database user for the role of the subscription database user and the subscription database user for the role of the publication database user in the switched environment. +- The publication server and subscription server are running on the same host (node 1). + +**Step 1:** Stop all transaction processing against the publication database. + +**Step 2:** Perform an on demand synchronization replication or a snapshot replication (for snapshot-only publications) in order to replicate any pending updates in the publication database shadow tables to the subscription database. + +**Step 3:** Stop the publication server and the subscription server. + +**Step 4:** Review the prerequisites in Section [Prerequisite Steps](../05_smr_operation/01_prerequisites/#prerequisites) to ensure that the subscription database and its host can be used in the role of a publication database, and the publication database and its host can be used in the role of a subscription database. + +For practical purposes, the following items are the most likely to be affected: + +- The publication database user must be a superuser with system catalog modification privileges to allow it to act as the new subscription database user. +- Additional entries may be needed in the `pg_hba.conf` files. + +**Step 5:** Create a backup of schemas `_edb_replicator_pub`, `_edb_replicator_sub`, and `_edb_scheduler` from the publication database on node 1. Delete these schemas from the publication database on node 1 after the backup has been made. + +**Step 6:** Create a backup of the replication triggers and their corresponding trigger functions on the publication tables on node 1. For the trigger-based method, these triggers are named with prefixes of `rrpd_, rrpi_ and rrpu_`. The trigger functions are named with the same prefixes. For the log-based method, a trigger for each table is prefixed with `rrpt_`. The function is named `capturetruncateevent`. + +Delete or disable these triggers on node 1. + +**Step 7:** Create a backup of schema `_edb_replicator_sub` from the subscription database on node 2. + +Delete this schema from the subscription database on node 2 after the backup has been made. + +**Step 8:** Restore the backups of `schemas _edb_replicator_pub`, \_edb\_replicator\_sub`, and`\_edb\_scheduler`created in Step 5 to the subscription database on node 2. Also restore the backup of the replication triggers and trigger functions created in Step 6 to the subscription database on node 2. **Step 9:** Restore the backup of schema`\_edb\_replicator\_sub`created in Step 7 to the publication database on node 1. **Step 10:** Update the control schema objects so that the publication database definition references the new publication database (that is, the former subscription database) on node 2 and the subscription database definition references the new subscription database (that is, the former publication database) on node 1. The connection information that may require updating includes the following: * Host IP address * Port number * User name * Password These updates must be made in the control schema of all publication databases to ensure consistency of the control schema information should the controller database be switched at some later point in time. For example, the following shows the update to the publication database definition so that its network IP address is now node 2 (`192.168.2.20`). .. code-block:: text UPDATE _edb_replicator_pub.xdb_pub_database SET db_host = '192.168.2.20'; The following shows the update to the subscription database definition so that its network IP address is now node 1 (192.168.2.19). .. code-block:: text UPDATE _edb_replicator_sub.xdb_sub_database SET db_host = '192.168.2.19'; **Step 11:** If you decide to use a publication server or subscription server on a new host, perform the following step, otherwise go to Step 12. The following example assumes you decide to use the publication server and subscription server running on node 2. Update the subscription metadata to the new location of the publication server managing its associated publication. .. code-block:: text UPDATE _edb_replicator_sub.xdb_subscriptions SET pub_server_ip = '192.168.2.20'; Update the publication metadata to the new location of the subscription server managing its associated subscription. .. code-block:: text UPDATE _edb_replicator_pub.xdb_sub_servers SET sub_server_ip = '192.168.2.20'; **Step 12:** Edit the xDB Replication Configuration file on the publication server and subscription server host so that it contains the controller database connection and authentication information for the new publication database now running on node 2. The following is the modified xDB Replication Configuration file with the network location and authentication information of the new controller database now running on node 2. .. code-block:: text #xDB Replication Server Configuration Properties #Fri Jan 30 17:34:06 GMT-05:00 2015 port=5444 admin_password=ygJ9AxoJEX854elcVIJPTw\=\= user=enterprisedb admin_user=enterprisedb type=enterprisedb database=edb password=ygJ9AxoJEX854elcVIJPTw\=\= host=192.168.2.20 **Step 13:** Update the`pg\_hba.conf\` files of the database servers to allow access to the subscription database now on node 1 and the publication database now on node 2 in accordance with Section \`Postgres Server Authentication <\#postgres\_server\_auth>\_. + +**Step 14:** When using the log-based method, create a replication slot on the database server that now contains the publication database. + +Use the following query to obtain the slot name from the database server that was previously running the publication database, but is now the subscription database server: + +``` text +SELECT slot_name FROM pg_replication_slots WHERE plugin = 'test_decoding'; + slot_name +------------- + xdb_47919_5 +(1 row) +``` + +Create a new replication slot on the database server that is now running the publication database, but was previously the subscription database server. The slot name from the previous query is used when creating the new replication slot. + +``` text +SELECT pg_create_logical_replication_slot('xdb_47919_5', 'test_decoding'); +pg_create_logical_replication_slot +------------------------------------ + (xdb_47919_5,0/37A1270) +(1 row) +``` + +You may choose to keep the replication slot on the database server that now contains the subscription database, particularly if you plan to switch the publication and subscription databases back to their original roles at some future point. This eliminates the necessity for recreating the replication slot since it will still exist, but will be inactive until the publication is switched back to that database server. + +Alternatively, you can delete the replication slot from the database server that now contains the subscription database. The replication slot is deleted with the following command: + +``` text +SELECT pg_drop_replication_slot('xdb_47919_5'); +``` + +See [Dropping Replication Slots for Log-Based Synchronization Replication](../10_appendix/03_resolving_problems/#drop_replication_slots_for_log_based) for additional information on deleting the replication slot if the pg\_drop\_replication\_slot function is not successful. If you switch back the databases to their original roles, you will just have to recreate the replication slot on the publication database server as previously described in this step. + +**Step 15:** The controlled switchover is now complete. Start the publication server and the subscription server. + +**Step 16:** After confirming that the publication tables are consistent with the subscription tables, the first replication operation must be a snapshot. After performing a snapshot, synchronization replications may be performed. diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/07_performing_failover.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/07_performing_failover.mdx new file mode 100644 index 00000000000..689f4cd4824 --- /dev/null +++ b/product_docs/docs/eprs/6.2/05_smr_operation/07_performing_failover.mdx @@ -0,0 +1,15 @@ +--- +title: "Performing Failover" +--- + + + + +Failover is the replacement of the publication database by the subscription database should a failure occur on the publication database or its host. Failover is considered an irreversible action so the subscription database permanently takes over the role of the publication database. + +Generally, the same steps must be followed to perform a failover as was discussed for a controlled switchover in section [Performing Controlled Switchover](../05_smr_operation/#performing_switchover). However, the following points must also be taken into consideration: + +- If the control schema objects on the publication database (that is, schemas `_edb_replicator_pub`, `_edb_replicator_sub`, `_edb_scheduler`, and their objects) cannot be salvaged or restored from a backup, then performing a failover may only be possible with the assistance of EnterpriseDB Technical Support Services. +- Pending updates not yet applied to the subscription may have been lost. The chances of this are greater if the interval between synchronizations is long. + +If you determine that a failover is possible, follow the steps for a controlled switchover. diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/08_optimizing_performance/01_optimizing_snapshot_replication.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/08_optimizing_performance/01_optimizing_snapshot_replication.mdx new file mode 100644 index 00000000000..6417b189da1 --- /dev/null +++ b/product_docs/docs/eprs/6.2/05_smr_operation/08_optimizing_performance/01_optimizing_snapshot_replication.mdx @@ -0,0 +1,126 @@ +--- +title: "Optimizing Snapshot Replication" +--- + + + + +This section discusses configuration options for improving snapshot replication performance. + +
+ +
+ +Note + +
+ +The options described in this section apply to the publication server only and are set in the publication server configuration file unless otherwise specified. + +
+ +`copyViaDBLinkOra` + +When the `copyViaDBLinkOra` option is set to true, the Oracle database link API, dblink\_ora, is used instead of JDBC COPY to populate Advanced Server subscription tables from an Oracle publication during snapshot replication. + +Oracle database link provides an additional performance improvement over JDBC COPY. + +
+ +
+ +Note + +
+ +The Oracle database link API feature is not available with PostgreSQL, therefore the copyViaDBLinkOra option is not applicable to PostgreSQL subscription tables. + +
+ +
+ +
+ +Note + +
+ +Prior to using dblink\_ora with xDB Replication Server, there are a number of required configuration steps that must be performed in Advanced Server. For Advanced Server versions 9.3 or earlier, see the readme text file, `README-dblink_ora_setup.txt` located in the `POSTGRES_INSTALL_HOME/doc/contrib` directory for directions. For Advanced Server versions 9.4 or later, see Chapter dblink\_ora in the *Database Compatibility for Oracle Developer’s Guide* for directions. + +
+ +`copyViaDBLinkOra={true | false}` + +The default value is false. + +`useFastCopy` + +Set the `useFastCopy` option to `true` to skip Write-Ahead Log (WAL) logging during COPY operations in order to optimize data transfer speed. + +The `archive_mode` configuration parameter in the `postgresql.conf` file of the target Postgres database server must be off (thereby disabling archiving of WAL data) in order to use the `useFastCopy` option. + +`useFastCopy={true | false}` + +The default value is false. + +`cpBatchSize` + +Use the `cpBatchSize` option to set the batch size (in Megabytes) that is used in the JDBC COPY operation during a snapshot. Increase the value of this option for large publication tables. + +This option is influential when Postgres is the subscription database since the JDBC `COPY` operation is used to load Postgres subscription tables. + +This option has no effect when Oracle or SQL Server is the subscription database. To tune loading of Oracle or SQL Server tables alter the `batchSize` option. + +`cpBatchSize=n` + +The default value for n is 8. + +`batchSize` + +The `batchSize` option controls the number of INSERT statements in a JDBC batch. + +This option is particularly significant when Oracle or SQL Server is the subscription database since tables of these database types are loaded using JDBC batches of INSERT statements. + +For a Postgres subscription database, tables are loaded using JDBC COPY, however, if the COPY operation fails for some reason, then table loading is retried using JDBC batches of INSERT statements as in the case of Oracle and SQL Server. + +`batchSize=n` + +The default value for n is 100. + +`skipAnalyze` + +Set the `skipAnalyze` option to true if you want to skip execution of the ANALYZE command after loading Postgres subscription tables. The `ANALYZE` command gathers statistical information on the table contents. These statistics are used by the query planner. + +`skipAnalyze={true | false}` + +The default value is false. + +`snapshotParallelLoadCount` + +
+ +
+ +Note + +
+ +To apply this option to a single-master replication system, it must be set for the subscription server within the subscription server configuration file. To apply this option to a multi-master replication system, it must be set for the publication server within the publication server configuration file. + +
+ +The `snapshotParallelLoadCount` option controls the number of threads used to perform snapshot data replication in parallel mode. The default behavior is to use a single thread. However, if the target system architecture contains `multi-CPUs/cores` you can specify a value greater than 1, normally equal to the `CPU/core` count, to fully utilize the system resources. + +`snapshotParallelLoadCount=n` + +The default value is 1. + +`lobBatchSize` + +If a table contains a column with a data type typically used for large objects such as BYTEA, BLOB, or CLOB, there is a greater possibility that a heap space error may occur because of a potentially large amount of data (hundreds of megabytes) brought into memory. In order to minimize the possibility of this error, a snapshot replication loads tables containing a large object data type, one row at a time using a single INSERT statement per batch. + +If however, the large object data type column is known to contain relatively small amounts of data, you can increase the speed of a snapshot replication by increasing the value of the `lobBatchSize` option to allow a greater number of rows (specified by n) in each batch. + +`lobBatchSize=n` + +The default value is 1. diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/08_optimizing_performance/02_optimize_sync_replication/01_using_sql_statements.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/08_optimizing_performance/02_optimize_sync_replication/01_using_sql_statements.mdx new file mode 100644 index 00000000000..65086a0eb4d --- /dev/null +++ b/product_docs/docs/eprs/6.2/05_smr_operation/08_optimizing_performance/02_optimize_sync_replication/01_using_sql_statements.mdx @@ -0,0 +1,174 @@ +--- +title: "Using Prepared SQL Statements" +--- + + + +When synchronization replication occurs, the changes recorded in the shadow tables are applied to the subscription tables in JDBC batch updates. Within each batch, changes may be applied using either an individual SQL statement for each change; or a set of changes may be applied using a single, prepared SQL statement. A prepared SQL statement is parsed and compiled only once, but it can be executed multiple times using different values for certain components of the SQL statement in each execution. A SQL statement that is not prepared is parsed, compiled, and executed only once. + +Prepared statements are useful only if the same type of SQL statement (`INSERT, UPDATE` or `DELETE`) is executed repeatedly and consecutively with the same target table, but with different values. If there is a sequence of consecutive changes that occur to the same table using the same operation such as inserting a set of rows into the same table populating the same columns, the publication server may apply these changes using a prepared statement. Otherwise, each change is applied with its own individual SQL statement. + +There are a number of server configuration options that control the characteristics of the JDBC batch along with if, when, and how often prepared statements are used. These are discussed in the following sections. + +`defaultBatchUpdateMode` + +The `defaultBatchUpdateMode` option controls whether the default mode is to use individual SQL statements in the JDBC batch update (this mode of operation is referred to as BUS) or to use prepared SQL statements in the JDBC batch update (this mode of operation is referred to as BUP). + +`defaultBatchUpdateMode={BUS | BUP}` + +> The default value is BUS. + +`switchBatchUpdateMode` + +The `switchBatchUpdateMode` option controls whether or not the publication server dynamically switches between BUS mode and BUP mode during the replication process depending upon the type and sequence of updates it encounters in the shadow tables for the trigger-based method or the changeset stream for the log-based method. + +`switchBatchUpdateMode={true | false}` + +> The default value is true. + +This means using the default settings of `defaultBatchUpdateMode=BUS` and `switchBatchUpdateMode=true`, the publication server starts out by applying updates with individual SQL statements. When it encounters a stream of consecutive changes that can all be processed in a single prepared statement, it will switch to using prepared SQL statements. + +
+ +
+ +Note + +
+ +If you want a certain batch update mode used throughout all synchronization replications applied by a given publication server without switching update modes, set the defaultBatchUpdateMode option to the desired mode in combination with switchBatchUpdateMode=false. For example, if you only want prepared statements used, set the following options: + +
+ +`defaultBatchUpdateMode=BUP` + +`switchBatchUpdateMode=false` + +
+ +
+ +Note + +
+ +When Oracle is the subscription database, synchronization replication always occurs in BUP mode as if the preceding two options were always set. The reason for this is so large columns of TEXT data type from Postgres publications can successfully replicate to Oracle CLOB columns. In BUS mode an individual Oracle SQL statement has a string literal maximum length of 4000 characters. This limitation does not occur for prepared SQL statements that are used in BUP mode. + +
+ +`busBatchThresholdCount` + +The `busBatchThresholdCount` option sets the number of consecutive updates of the same type that must be encountered in the shadow tables for the trigger-based method or the changeset stream for the log-based method before the publication server switches from BUS mode to BUP mode if dynamic switching is permitted (that is switchBatchUpdateMode=true). + +`busBatchThresholdCount=n` + +> The default value for n is 5. + +The number of consecutive changes using the same table and SQL statement type must exceed the specified value n before a prepared statement is used. + +Setting this threshold to a low value will encourage higher use of prepared statements while setting it to a high value will limit the use of prepared statements. + +If changes to the publication were made using many SQL statements where each statement affected more than one row, then it may be beneficial to lower busBatchThresholdCount to encourage the use of prepared statements on the multiple shadow table rows resulting from each individual change on the publication. + +`bupBatchThresholdCount and bupBatchThresholdRepeatLimit` + +If `BUP` mode is employed, but the number of updates using the same prepared statement is low causing frequent switches to a new prepared statement, it may be more beneficial to use individual SQL statements (BUS mode). + +For example, the following sequence of updates would be better processed in `BUS` mode: + +``` text +INSERT INTO emp +INSERT INTO dept +INSERT INTO emp +INSERT INTO dept +DELETE FROM emp +UPDATE emp +UPDATE dept +INSERT INTO emp +INSERT INTO dept +DELETE FROM dept +INSERT INTO emp +DELETE FROM emp +INSERT INTO dept +``` + +However, in the following sequence, it is better to use BUP mode. Updates 1 thru 3 are batched in one prepared statement, 4 thru 7 in another prepared statement, 8 in its own prepared statement, and then 9 thru 15 in one prepared statement. + +``` text +1. INSERT INTO emp +2. INSERT INTO emp +3. INSERT INTO emp +4. UPDATE dept +5. UPDATE dept +6. UPDATE dept +7. UPDATE dept +8. INSERT INTO emp +9. INSERT INTO dept +10. INSERT INTO dept +11. INSERT INTO dept +12. INSERT INTO dept +13. INSERT INTO dept +14. INSERT INTO dept +15. INSERT INTO dept +``` + +The `bupBatchThresholdCount` option is used in combination with the `bupBatchThresholdRepeatLimit` option to control the frequency of mode switches based on the volatility of expected update types to the publication. + +`bupBatchThresholdCount=m` + +> The default value for m is 5. + +`bupBatchThresholdRepeatLimit=n` + +> The default value for n is 10. + +Each time the same prepared SQL statement is consecutively executed, an internal “batch” counter is incremented. If this batch count falls below bupBatchThresholdCount for the number of executions of a given prepared statement, then a second internal “repeat” counter is incremented by one. If the repeat counter eventually reaches bupBatchThresholdRepeatLimit, the update mode is switched from BUP to BUS. + +Thus, if there are frequent, consecutive changes of prepared SQL statements (as measured against `bupBatchThresholdRepeatLimit`), each of which is executed a small number of times (as measured against `bupBatchThresholdCount`), then the mode of execution changes back to individual SQL statements instead of prepared statements. + +
+ +
+ +Note + +
+ +The publication server changes back to prepared statements when the threshold set by `busBatchThresholdCount` is met. + +
+ +The following example illustrates the processing of up dates when bupBatchThresholdCount is set to 3 and bupBatchThresholdRepeatLimit is set to 4. A change to the “query domain” referred to in this example means a different statement type (INSERT, UPDATE, or DELETE) or a different target table are encountered in the next update, thus requiring the use of a different prepared SQL statement. + +``` text +1. INSERT INTO emp +2. INSERT INTO emp +3. INSERT INTO dept +``` + +At this point the query domain is changed after the first two updates (change from table `emp` to `dept`) and the number of executions of the prior prepared statement (2) is less than `bupBatchThresholdCount`, so the repeat counter is set to 1. + +``` text +4. INSERT INTO dept +5. INSERT INTO dept +6. INSERT INTO dept +7. INSERT INTO emp +``` + +The query domain is changed again (change from table dept to emp), but this time the number of executions (4) for the same query domain (updates 3 thru 6) exceeds bupBatchThresholdCount so the repeat counter is reset to 0. + +``` text +8. INSERT INTO emp +9. UPDATE emp +``` + +The query domain is changed again (INSERT statement to UPDATE statement) and the number of executions (2) is less than `bupBatchThresholdCount`, so the repeat counter is incremented to 1. + +``` text +10. UPDATE emp +11. INSERT INTO dept +12. DELETE FROM dept +13. INSERT INTO emp +``` + +The query domain is changed between updates 10 and 11, between updates 11 and 12, and between updates 12 and 13. At this point, the repeat counter has been incremented 3 more times to a value of 4. This now equals `bupBatchThresholdRepeatLimit`, so processing is changed from `BUP` mode to `BUS` mode. diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/08_optimizing_performance/02_optimize_sync_replication/02_parallel_sync.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/08_optimizing_performance/02_optimize_sync_replication/02_parallel_sync.mdx new file mode 100644 index 00000000000..37e5eedc2a2 --- /dev/null +++ b/product_docs/docs/eprs/6.2/05_smr_operation/08_optimizing_performance/02_optimize_sync_replication/02_parallel_sync.mdx @@ -0,0 +1,54 @@ +--- +title: "Parallel Synchronization" +--- + + + + +Parallel synchronization takes advantage of multi-CPUs or cores in the system architecture by using multiple threads to apply transaction sets in parallel. Parallel synchronization is applied in two ways: + +- Multiple threads are used to load data for multiple tables in parallel from the source database. Each thread opens a separate connection therefore you will observe multiple connections with the source database. The pooling framework is used to cache the connections. After the threads are finished with the data load, the idle connections are returned to the pool and remain there for a period of 3 minutes before being removed from the pool (as long as these are not reused). +- Changes are applied to multiple target databases in parallel. A transaction set from the source database is loaded only once. The target databases are updated in parallel from this loaded transaction set. When this transaction set has been applied to all targets (either successfully, or with failures on some targets), the next transaction set is loaded and applied in parallel. This aspect of parallel synchronization is particularly relevant to multi-master replication systems. + +The following configuration options affect the usage of parallel synchronization. + +`syncLoadThreadLimit` + +The `syncLoadThreadLimit` option controls the maximum number of threads used to load data from source publication tables during parallel synchronization. The default count is 4. However, depending on the target system architecture (specifically, multi-CPUs/cores) you can choose to specify a custom count, normally equal to the CPU/core count, to fully utilize the system resources. + +`syncLoadThreadLimit=n` + +The default value is 4. + +`dataSyncThreadCount` + +The `dataSyncThreadCount` option controls the maximum number of threads used to apply incremental changes during synchronization replication to the target secondary databases (for single-master replication systems) or to the target primary nodes (for multi-master replication systems) in parallel mode. The default behavior (when dataSyncThreadCount is set to 0) is to use as many threads as there are target nodes. + +However, depending on the target system architecture (specifically, multi-CPUs/cores) you can choose to specify a custom count, normally equal to the CPU/core count, to fully utilize the system resources. + +`dataSyncThreadCount=n` + +The default value is 0. + +`targetDBQueryTimeout` + +The `targetDBQueryTimeout` option controls the timeout interval (in milliseconds) before an attempt by the publication server to apply a transaction set on a target database is aborted by the database server (typically due to a lock acquired by another application on one or more of the target tables). + +The `targetDBQueryTimeout` option sets the default lock timeout value to 10 minutes. Change the 10 minute default value to a higher value if you want to allow a longer wait time before the transaction is aborted. Change the value to 0 if you want to turn off usage of the `targetDBQueryTimeout` option in which case the timeout interval is controlled by the setting of the Postgres database server statement\_timeout configuration parameter. + +A higher value of `targetDBQueryTimeout` delays processing of subsequent transaction sets on other target databases because if a transaction set is blocked, the next transaction set cannot be loaded until: + +1. the lock is released and the blocked transaction set can then be applied to completion, or +2. the targetDBQueryTimeout interval is exceeded. + +If a timeout occurs, the waiting transaction set is marked as aborted for the particular blocked target database. The remaining pending transaction sets in this synchronization session are skipped for this target database, but are applied to all other target databases once the timeout interval has been exceeded. The aborted and skipped transaction sets are tried again when the next synchronization replication event occurs. + +So for example, in a 3-node cluster with ten pending transaction sets, assume transaction set 1 is loaded and begins replicating to nodes 2 and node 3. Now, another application acquires a lock on one or more tables in node 2, putting the updates to these tables in a wait state. Replication of transaction set 1 can run to completion on node 3, but if the wait time exceeds the targetDBQueryTimeout interval, the database server cancels transaction set 1 on node 2. Replication of this transaction set to node 2 is marked as aborted in the xDB Replication Server metadata. + +Transaction set 2 can now be loaded and run against node 3. Execution of transaction set 2 against node 2 is skipped since transaction sets must be applied in order and transaction set 1 was not successfully applied to node 2. Transaction sets 3 thru 10 are loaded and applied in order against node 3, but skipped for node 2. + +In the next synchronization replication, transaction set 2 is tried again on node 2. If the lock has been released and the transaction set is applied successfully, the remaining transaction sets 3 thru 10 are applied to node 2. Finally, synchronization replication continues with any new transaction sets. + +`targetDBQueryTimeout=n` + +The default value is 600000. diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/08_optimizing_performance/02_optimize_sync_replication/03_other_sync_configuration.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/08_optimizing_performance/02_optimize_sync_replication/03_other_sync_configuration.mdx new file mode 100644 index 00000000000..c09bb400a99 --- /dev/null +++ b/product_docs/docs/eprs/6.2/05_smr_operation/08_optimizing_performance/02_optimize_sync_replication/03_other_sync_configuration.mdx @@ -0,0 +1,41 @@ +--- +title: "Other Synchronization Configuration Options" +--- + + + +The following are other configuration options affecting synchronization replication. + +**syncBatchSize** + +> The `syncBatchSize` option controls the number of statements in a synchronization replication JDBC batch. + +`syncBatchSize=n` + +> The default value for n is 100. + +`syncFetchSize` + +The `syncFetchSize` option controls how many rows are fetched from the publication database in one network round-trip. For example, if there are 1000 pending row changes, the default fetch size requires 5 database round-trips. Using a fetch size of 500 retrieves all changes in 2 round trips. Fine tune the performance by using a fetch size that conforms to the average data volume consumed by rows fetched in one round trip. + +`syncFetchSize=n` + +> The default value for n is 200. + +`txSetMaxSize` + +The `txSetMaxSize` option defines the maximum number of transactional rows that can be grouped in a single transaction set. The publication server loads and processes the changes by fetching as many rows in memory as grouped in a single transaction set. + +> A higher value is expected to boost performance. However a very large value might result in an out of memory error. Increase/decrease the value in accordance with the average row size (low/high). + +`txSetMaxSize=n` + +> The default value for n is 10000. + +`enablePerformanceStats` + +Set `enablePerformanceStats` option to true only if you need to conduct performance testing and analyze the replication statistics. When enabled, the publication server creates additional triggers on the publication tables in each primary node. The triggers produce transaction statistics that are recorded in the MMR\_transaction\_history table in the control schema. This option should be disabled in a production environment to avoid performance overhead. + +`enablePerformanceStats={true | false}` + +> The default value is false. diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/08_optimizing_performance/02_optimize_sync_replication/index.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/08_optimizing_performance/02_optimize_sync_replication/index.mdx new file mode 100644 index 00000000000..9ebe3365f0e --- /dev/null +++ b/product_docs/docs/eprs/6.2/05_smr_operation/08_optimizing_performance/02_optimize_sync_replication/index.mdx @@ -0,0 +1,28 @@ +--- +title: "Optimizing Synchronization Replication" +--- + + + + +This section discusses configuration options for improving synchronization replication performance. + +In addition, for configuration options specifically applicable to publication databases configured with the log-based method of synchronization replication, see [Specifying a Custom URL for an Oracle JDBC Connection](../../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/#specify_custom_url_for_oracle_jdbc). + +
+ +
+ +Note + +
+ +The options described in this section apply to the publication server only and are set in the publication server configuration file. + +
+ +
+ +using\_sql\_statements parallel\_sync other\_sync\_configuration + +
diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/08_optimizing_performance/index.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/08_optimizing_performance/index.mdx new file mode 100644 index 00000000000..4d7e95c53dc --- /dev/null +++ b/product_docs/docs/eprs/6.2/05_smr_operation/08_optimizing_performance/index.mdx @@ -0,0 +1,28 @@ +--- +title: "Optimizing Performance" +--- + + + + +Once you have become familiar with setting up and managing your replication system, you will often look for ways to optimize the performance of replications. This section discusses various publication server and subscription server configuration options available to improve the performance of snapshot and synchronization replications. + +The publication server and subscription server configuration options are set in the publication server and subscription server configuration files, respectively. See [Publication and Subscription Server Configuration Options](../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/#publications_and_subscriptions_server_conf_options) for a detailed explanation of how to set the configuration options in these files. + +
+ +
+ +Note + +
+ +Most of these configuration options are applicable to multi-master replication systems as well. Options applicable to multi-master replication systems are those that apply to the publication server and are not specific to a database product other than Postgres (such as an Oracle feature). + +
+ +
+ +optimizing\_snapshot\_replication optimize\_sync\_replication + +
diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/index.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/index.mdx new file mode 100644 index 00000000000..bb11f3fb289 --- /dev/null +++ b/product_docs/docs/eprs/6.2/05_smr_operation/index.mdx @@ -0,0 +1,16 @@ +--- +title: "Single-Master Replication Operation" +--- + + + + +This chapter describes how to configure and run xDB Replication Server for single-master replication systems. + +For configuration and management of your replication system, the xDB Replication Console graphical user interface is used to illustrate the steps and examples in this chapter. The same steps can be performed from the operating system command line using the xDB Replication Server Command Line Interface (CLI). The commands of the xDB Replication Server CLI utility are described in Chapter [xDB Replication Server Command Line Interface](08_xdb_cli/#xdb_cli). + +
+ +prerequisites creating\_publication creating\_subscription on\_demand\_replication managing\_subscription performing\_switchover performing\_failover optimizing\_performance + +
diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/01_pre_steps.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/01_pre_steps.mdx new file mode 100644 index 00000000000..b06c9011fb6 --- /dev/null +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/01_pre_steps.mdx @@ -0,0 +1,197 @@ +--- +title: "Prerequisite Steps" +--- + + + + +Certain steps must be taken to prepare the host environments as well as the database servers used as primary nodes before beginning the process of building a multi-master replication system. This section describes these steps. + + + +## Setting Heap Memory Size for the Publication Server + +Replication speed and efficiency can be affected by the heap memory size set for the publication server. The xDB Startup Configuration file sets a parameter controlling the minimum and maximum heap size allocated for the publication server. See [Setting Heap Memory Size for the Publication and Subscription Servers](../05_smr_operation/01_prerequisites/#setting_heap_size_for_pub_and_sub) for guidelines and information on setting this parameter. + + + +## Enabling Synchronization Replication with the Log-Based Method + +This section applies only to Postgres database servers of version 9.4 and later. If you plan to use the log-based method of synchronization replication with any primary node running under a given Postgres database server, the following configuration parameter settings are required in the configuration file, `postgresql.conf`, of each such Postgres database server: + +- `wal_level.` Set to logical. +- `max_wal_senders.` Specifies the maximum number of concurrent connections (that is, the maximum number of simultaneously running WAL sender processes). Set at minimum, to the number of MMR primary nodes on this database server that will use the log-based method. In addition, if SMR publication databases are to run on this database server, also add the number of SMR publication databases that will use the log-based method. +- `max_replication_slots.` Specifies the maximum number of replication slots. For support of MMR systems, the minimum is the total number of primary nodes in the multi-master replication system multiplied by the number of primary nodes residing on this database server. For information, see [Replication Origin](../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#replication_origin). In addition, if SMR publication databases are to run on this database server, also add the number of SMR publication databases that will use the log-based method. +- `track_commit_timestamp.` Set to on. This configuration parameter applies only to Postgres database servers of version 9.5 or later. See [Configuration Parameter and Table Setting Requirements](#configuration_para_and%20table_setting) for additional information. + +See [Synchronization Replication with the Log-Based Method](../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#sync_replication_log_based) for information on the log-based method of synchronization replication. + +The Postgres database server must be restarted after altering any of these configuration parameters. + +In addition, the `pg_hba.conf` file requires an entry for each publication database user of primary nodes that are to use the log-based method. Such database users must be included as a replication database user in the `pg_hba.conf` file. See verify\_host\_accessibility <verify\_host\_accessibility> for additional information. + + + +## Preparing the Primary definition node + +This section discusses the preparation of a database to be used as the primary definition node. + +When creating the publication database definition for the primary definition node, a database user name must be specified that has the following characteristics: + +- The database user can connect to the primary definition node. +- The database user has superuser privileges. Superuser privileges are required because the database configuration parameter session\_replication\_role is altered by the database user when the primary definition node receives updates from other primary nodes during a synchronization replication. The database user temporarily changes session\_replication\_role to replica to prevent the triggers on the publication tables from firing. This session change also occurs for snapshot operations involving replication of the control schema from one publication database to another. +- The database user must have the ability to modify the system catalog tables in order to disable foreign key constraints on the publication tables for snapshots targeted to the publication, as well as for the control schema tables for snapshot operations involving the replication of the control schema from one publication database to another. (See appendix [Disabling Foreign Key Constraints for Snapshot Replications](../10_appendix/04_miscellaneous_xdb_processing_topics/#disable_foreign_key_constraints_for_snapshot_replication) for more information on this requirement.) + +The examples used throughout the rest of this user’s guide are based on the following primary definition node: + +- The database user name for the primary definition node is `pubuser`. +- The tables used in the publication reside in a schema named `edb`. +- Three tables named dept, emp, and jobhist are members of schema `edb`. +- The database name of the primary definition node is `edb`. + +The following steps illustrate the preparation of the primary definition node database user. + +**Step 1:** Create a user name with login and superuser privileges for the primary definition node. This user becomes the owner of xDB Replication Server metadata database objects that will be created in the primary definition node to track, control, and record the replication process and history. The xDB Replication Server metadata database objects are created in a schema named `_edb_replicator_pub`. + +When creating the publication database definition, the database user name is entered in the Publication Service – Add Database dialog box (see [Adding the Primary definition node](../06_mmr_operation/#adding_pdn)). + +``` text +CREATE ROLE pubuser WITH LOGIN SUPERUSER PASSWORD 'password'; +``` + +**Step 2 (Optional):** If users are to access the data in the publication tables residing on this primary node, it is convenient to have one or more “group” roles containing the required privileges to access these tables. Privileges must also be granted on the control schema objects to users who are to perform inserts, updates, or deletions on the publication tables. + +When adding new users, granting these users membership in these roles gives them the privileges to access the publication tables. This eliminates the need to grant these privileges individually to each new user. + +See Step 2 of [Postgres Publication Database](../05_smr_operation/01_prerequisites/#postgres_pub_db) for information on creating such roles. + + + +## Preparing Additional Primary nodes + +The following steps illustrate the creation of a database user and a database for an additional primary node. + +When creating the publication database definition for an additional primary node, a database user name must be specified that has the following characteristics: + +- The database user can connect to the primary node. +- The database user has superuser privileges. Superuser privileges are required because the database configuration parameter session\_replication\_role is altered by the database user when the primary node receives updates from other primary nodes during a synchronization replication. The database user temporarily changes session\_replication\_role to replica to prevent the triggers on the publication tables from firing. This session change also occurs for snapshot operations involving replication of the control schema from one publication database to another. +- The database user must have the ability to modify the system catalog tables in order to disable foreign key constraints on the publication tables for snapshots targeted to the publication, as well as for the control schema tables for snapshot operations involving the replication of the control schema from one publication database to another. (See appendix [Disabling Foreign Key Constraints for Snapshot Replications](../10_appendix/04_miscellaneous_xdb_processing_topics/#disable_foreign_key_constraints_for_snapshot_replication) for more information on this requirement.) +- If the additional primary node is to reside on a different database server instance (that is, on a different host or port number) than the primary definition node, then the same database user name should be used for this additional primary node as used for the primary definition node unless the publication server configuration option `skipTablePrivileges` is changed from its default value of false to true. See [Skipping Grants of Table Level User Privileges on MMR Target Tables](../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/#skipping_grants_of_table_level_user_privileges_on_mmr) for information on `skipTablePrivileges`. + +There are also two possible options available with respect to how the publication tables are to be created in the primary node: + +- Allow the publication server to create the publication table definitions in the primary node by copying the definitions from the primary definition node at the time you add the publication database definition for the primary node. +- Define the publication tables in the primary node beforehand by running SQL `DDL` statements in the `PSQL` command line utility program or by using Postgres Enterprise Manager Client to create the tables. + +If you create the table definitions “manually” as described in the second bullet point, be sure the publication tables are defined identically to the tables in the primary definition node including schema names, table names, number of columns, column names, column data types, column lengths, primary key definitions, unique constraints, foreign key constraints, etc. + +The examples used throughout the rest of this user’s guide are based on the following: + +- The database user name of the second primary node is `MMRuser`. +- The database name of the second primary node is `MMRnode`. + +**Step 1:** Create a database user name for the primary node. This user becomes the owner of xDB Replication Server metadata database objects that will be created in the primary node to track, control, and record the replication process and history. The xDB Replication Server metadata database objects are created in a schema named `_edb_replicator_pub`. + +When creating the publication database definition for the primary node, the database user name is entered in the Publication Service – Add Database dialog box (see [Creating Additional Primary nodes](../06_mmr_operation/#creating_primary_nodes)). + +``` text +CREATE ROLE MMRuser WITH LOGIN SUPERUSER PASSWORD 'password'; +``` + +Step 2: Create a database that will be used as the primary node if such a database does not already exist. + +``` text +CREATE DATABASE MMRnode; +``` + + + +## Verifying Host Accessibility + +If more than one computer is used to host the components of the replication system, each computer must be able to communicate with the others on a network. There are a number of different aspects to this topic. + +- For a discussion of firewalls and access to ports see [Firewalls and Access to Ports](../05_smr_operation/01_prerequisites/#firewalls_and_access_to_ports). +- For a discussion of network IP addresses see [Network IP Addresses](../05_smr_operation/01_prerequisites/#network_ip). + +A Postgres database server uses the host-based authentication file, `pg_hba.conf`, to control access to the databases in the database server. You need to modify the `pg_hba.conf` file on each Postgres database server that contains a primary node. + +In a default Postgres installation, this file is located in the directory `POSTGRES_INSTALL_HOME/data`. + +The modification needed to the `pg_hba.conf` file is discussed in the following section. + +**Primary nodes** + +On each database server running a primary node, the following is needed to allow access to the database: + +`host primarynode_db primarynode_user pub_ipaddr/32 md5` + +The value you substitute for `primarynode_db` is the name of the database you intend to use as the primary node. The value you substitute for `primarynode_user` is the database user name you created in Step 1 of [Preparing the Primary definition node](../06_mmr_operation/#prepare_pdn) or Step 1 of Section [Preparing Additional Primary nodes](../06_mmr_operation/#prepare_add_pdn). + +For two primary nodes using databases named `edb` and `MMRnode` running on the same database server, the resulting `pg_hba.conf` file appears as follows: + +``` text +# TYPE DATABASE USER ADDRESS METHOD + +# "local" is for Unix domain socket connections only +local all all md5 +# IPv4 local connections: +host edb pubuser 192.168.2.22/32 md5 +host MMRnode MMRuser 192.168.2.22/32 md5 +host all all 127.0.0.1/32 md5 +# IPv6 local connections: +host all all ::1/128 md5 +# Allow replication connections from localhost, by a user with the +# replication privilege. +#local replication enterprisedb md5 +#host replication enterprisedb 127.0.0.1/32 md5 +#host replication enterprisedb ::1/128 md5 +``` + +If the primary node using database `MMRnode` with database user name `MMRuser` is running on a separate host than where database `edb` is running, the `pg_hba.conf` file on the database server with database `MMRnode` would look like the following: + +``` text +# TYPE DATABASE USER ADDRESS METHOD + +# "local" is for Unix domain socket connections only +local all all md5 +# IPv4 local connections: +host MMRnode MMRuser 192.168.2.22/32 md5 +host all all 127.0.0.1/32 md5 +# IPv6 local connections: +host all all ::1/128 md5 +# Allow replication connections from localhost, by a user with the +# replication privilege. +#local replication enterprisedb md5 +#host replication enterprisedb 127.0.0.1/32 md5 +#host replication enterprisedb ::1/128 md5 +``` + +The preceding examples assume databases `edb` and `MMRnode` are using the trigger-based method of synchronization replication. If the log-based method is used, the `pg_hba.conf` file must contain additional entries with the `DATABASE` field set to replication for `primarynode_user` and `pub_ipaddr` to allow replication connections from the publication server on the host on which it is running. + +The following shows a modification of the first example with these additional entries as the last two lines in the file: + +``` text +# TYPE DATABASE USER ADDRESS METHOD + +# "local" is for Unix domain socket connections only +local all all md5 +# IPv4 local connections: +host edb pubuser 192.168.2.22/32 md5 +host MMRnode MMRuser 192.168.2.22/32 md5 +host all all 127.0.0.1/32 md5 +# IPv6 local connections: +host all all ::1/128 md5 +# Allow replication connections from localhost, by a user with the +# replication privilege. +#local replication enterprisedb md5 +#host replication enterprisedb 127.0.0.1/32 md5 +#host replication enterprisedb ::1/128 md5 +host replication pubuser 192.168.2.22/32 md5 +host replication MMRuser 192.168.2.22/32 md5 +``` + +See sections [Synchronization Replication with the Log-Based Method](../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#sync_replication_log_based) and [Enabling Synchronization Replication with the Log-Based Method](../06_mmr_operation/#enabling_sync_replication_log-based_method_mmr) for additional information on synchronization replication with the log-based method. + +Reload the configuration file after making the modifications. + +Choose Reload Configuration (Expert Configuration, then Reload Configuration on Advanced Server) from the Postgres application menu. This will put the modified `pg_hba.conf` file into effect. diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/02_creating_publication_mmr.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/02_creating_publication_mmr.mdx new file mode 100644 index 00000000000..3456b5bffff --- /dev/null +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/02_creating_publication_mmr.mdx @@ -0,0 +1,179 @@ +--- +title: "Creating a Publication" +--- + + + + +Creating a publication requires the following steps: + +- Registering the publication server +- Adding the primary definition node +- Creating a publication by choosing the tables for the publication along with the conflict resolution options +- Defining table filters to be enabled on any primary nodes + + + +## Registering a Publication Server + +Registering a publication server is done in a manner identical to single-master replication. See [Registering a Publication Server](../05_smr_operation/02_creating_publication/#registering_publication_server) for directions on registering a publication server. + +![Replication tree after registering a publication server](/../images/image68.png) + +After you have successfully registered a publication server, the replication tree of the xDB Replication Console displays a Publication Server node under which are the SMR and MMR type nodes. + +Continue to build the multi-master replication system under the MMR type node. + + + +## Adding the Primary definition node + +The first database to be identified to xDB Replication Server is the primary definition node. This is done by creating a publication database definition subordinate to the MMR type node under the Publication Server node. + +After the publication database definition is created, a Publication Database node representing the primary definition node appears in the replication tree of the xDB Replication Console. A publication containing tables residing within this database can then be created under the Publication Database node. + +You must enter database connection information such as the database server network address, database identifier, and database login user name and password when you create the publication database definition. The connection information is used by the publication server to access the publication tables when it performs replication. + +**Step 1:** Make sure the database server for the primary definition node is running and accepting client connections. + +**Step 2:** Select the MMR type node under the Publication Server node. From the `Publication` menu, choose `Publication Database`, and then choose `Add Database`. Alternatively, click the secondary mouse button on the MMR type node and choose Add Database. The `Publication Service – Add Database` dialog box appears. + +**Step 3:** Fill in the following fields: + +- `Database Type`. Select PostgreSQL or Postgres Plus Advanced Server for the primary definition node. For an Advanced Server Oracle compatible installation, select the Postgres Plus Advanced Server option. For PostgreSQL or an Advanced Server PostgreSQL compatible installation, select the PostgreSQL option. +- `Host`. IP address of the host on which the primary definition node is running. +- `Port`. Port on which the primary definition node is listening for connections. +- `User`. The database user name for the primary definition node created in Step 1 of [Preparing the Primary definition node](../06_mmr_operation/#prepare_pdn). +- `Password`. Password of the database user. +- `Database`. Enter the database name of the primary definition node. +- `URL Options (For SSL connectivity)`. Enter the URL options to establish SSL connectivity to the primary definition node. See Using Secure Sockets Layer (SSL) Connections <using\_ssl\_connections> for information on using SSL connections. +- `Changeset Logging (For Postgres)`. Select Table Triggers to use the trigger-based method of synchronization replication. Select WAL Stream to use the log-based method of synchronization replication. See [Synchronization Replication with the Trigger-Based Method](../02_overview/02_replication_concepts_and_definitions/#sync_replication_trigger_based) for information on the trigger-based method. See [Synchronization Replication with the Log-Based Method](../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#sync_replication_log_based) for information on the log-based method. +- `Node Priority Level`. An integer from 1 to 10, which is the priority level assigned to this primary node for conflict resolution based on node priority. The highest priority is 1 while the lowest is 10. See [Conflict Resolution Strategies](../06_mmr_operation/06_conflict_resolution/#conflict_resolution_strategies) for information on conflict resolution strategies. The default is 1 for the primary definition node. + +![Publication Service - Add Database dialog box for the primary definition node](/../images/image114.png) + +**Step 4:** Click the `Test` button. If `Test Result: Success` appears, click the `OK` button, then click the `Save` button. + +![Successful primary definition node test](/../images/image115.png) + +If an error message appears investigate the cause of the error, correct the problem, and repeat steps 1 through 4. + +When the publication database definition is successfully saved, a Publication Database node is added to the replication tree under the MMR type node of the Publication Server node. + +![Replication tree after adding the primary definition node](/../images/image116.png) + +The label `PDN` appears at the end of the node in the replication tree and in addition, the `PDN` field is set to Yes in the Property window to indicate this is the primary definition node. + + + +## Adding a Publication + +Subordinate to the primary definition node, you create a publication that contains tables of the database. + +**Step 1:** Select the Publication Database node. From the `Publication` menu, choose `Create Publication`. Alternatively, click the secondary mouse button on the Publication Database node and choose Create Publication. The `Create Publication` dialog box appears. + +**Step 2:** Fill in the following fields under the Create Publication tab: + +- `Publication Name`. Enter a name that is unique amongst all publications. +- `Publish`. Check the boxes next to the tables that are to be included in the publication. Alternatively or in addition, click the `Use Wildcard Selection` button to use wildcard pattern matching for selecting publication tables. +- `Select All`. Check this box if you want to include all tables in the Available Tables list in the publication. +- `Use Wildcard Selection`. Click this button to use the wildcard selector to choose tables for the publication. See [Selecting Tables with the Wildcard Selector](../07_common_operations/#select_tables_wildcard_selector) for information on the wildcard selector. + +![Create Publication dialog box](/../images/image117.png) + +If you wish to use table filters during replications between primary nodes in this multi-master replication system, follow the directions in the next step to define the initial set of available table filters, otherwise go on to Step 4. + +**Step 3 (Optional):** Table filters consist of a set of filter rules that control the selection criteria for rows replicated between primary nodes during a snapshot or a synchronization replication. + +
+ +
+ +Note + +
+ +See [Table Settings and Restrictions for Table Filters](../02_overview/02_replication_concepts_and_definitions/#table_settings_and_restrictions_for_table_filters) for table setup requirements for a log-based replication system as well as general restrictions on the use of table filters. + +
+ +A filter rule consists of a filter name and a SQL `WHERE` clause (omitting the `WHERE` keyword) called the filter clause, which you specify for a table that defines the selection criteria for rows that are to be included during a replication. + +Multiple filter rules may be defined for each table in the publication. If no filter rule is defined for a given table, then no filtering can be later enabled on that corresponding table in any primary node of the multi-master replication system. + +After filter rules have been defined for a publication table, you can later choose whether or not to enable those filter rules on any primary node in the replication system in accordance with the following rules. + +- At most one filter rule can be enabled on a given table in a given primary node. +- The same filter rule may be enabled on the same given table in several, different primary nodes. +- Different filter rules may be enabled on the same given table but in different primary nodes. + +If you want to define table filters on the publication tables, click the Table Filters tab. Select the table from the Table/View drop-down list for which you wish to add a filter rule. Click the Add Filter button. + +In the `Filter` dialog box, enter a descriptive filter name and the filter clause to select the rows you want to replicate. The filter name and filter clause must meet the following conditions: + +- For any given table, each filter rule must be assigned a unique filter name. +- For any given table, the filter clauses must have different syntaxes (that is, the filtering criteria must be different). + +In the following example a filter rule is defined on the dept table so only rows where the `deptno` column contains `10, 20,` or `30` are included in replications. All other rows are excluded from replication. + +![Adding a filter rule for the dept table](/../images/image118.png) + +The following shows a rule added to the `emp` table by choosing `edb.emp` from the Table/View drop-down list and then entering the selection criteria for only rows with `deptno` containing 10 in the Filter dialog box. + +![Adding a filter rule for the emp table](/../images/image119.png) + +Repeating this process, additional filter rules can be added for the `emp` table. The following shows the complete set of available filter rules defined for the `dept` and `emp` tables. + +![Set of all available filter rules](/../images/image120.png) + +To remove a filter rule, click the primary mouse button on the filter rule you wish to remove so the entry is highlighted and then click the `Remove Filter` button. + +You may also modify the filter name or filter clause of a filter rule listed in the Table Filters tab by double-clicking on the cell of the filter name or filter clause you wish to change. When the cursor appears in the cell, enter the text for the desired change. + +When creating additional primary nodes, you may selectively enable these table filters on the corresponding tables in the additional primary nodes. See [Creating Additional Primary nodes](../06_mmr_operation/#creating_primary_nodes) for information on creating additional primary nodes. + +
+ +
+ +Note + +
+ +To enable table filters on the primary definition node under which you are currently creating the publication, you must first switch the role of the primary definition node to a different primary node (see [Switching the Primary definition node](../06_mmr_operation/#switching_pdn)), and then follow the directions in Section Enabling/Disabling Table Filters on a Primary node <enable\_disable\_table\_filters> to enable the table filters. + +
+ +This completes the process of defining table filters. The next step is changing conflict resolution options. + +If you wish to change the conflict resolution options from their default settings, follow the directions in the next step, otherwise go on to Step 5. + +**Step 4 (Optional):** If you want to modify or see the current conflict resolution options, click the `Conflict Resolution Options` tab. For each table, you can select the primary conflict resolution strategy and a standby strategy by clicking the primary mouse button over the appropriate box to expose a drop-down list of choices. + +![Conflict Resolution Options tab](/../images/image121.png) + +If during synchronization replication, conflicting changes are pending against the same row from different primary nodes, the conflict resolution strategy determines which of the conflicting changes is accepted and replicated to all primary nodes. The conflicting changes that are not accepted are discarded. + +If the selection from the Conflict Resolution Strategy column does not resolve the conflict, the selection from the Standby Conflict Resolution Strategy column is applied. If neither strategy resolves the conflict, the event is marked as Pending in the Conflict History tab. See [Viewing Conflict History](../06_mmr_operation/#view_conflict_history) for information on viewing conflict history. + +An example of a conflict is when the same column of the same row is changed by transactions in two different primary nodes. Depending upon the conflict resolution strategy in effect for the table, one of the transactions is accepted and replicated to all primary nodes. The other transaction is discarded and not replicated to any primary node. + +The following is a brief summary of each conflict resolution strategy: + +- `Earliest Timestamp`. The conflicting change with the earliest timestamp is accepted and replicated to all other primary nodes. All other conflicting changes are discarded. +- `Latest Timestamp`. The conflicting change with the latest timestamp is accepted and replicated to all other primary nodes. All other conflicting changes are discarded. +- `Node Priority`. The conflicting change occurring on the primary node with the highest priority level is accepted and replicated to all other primary nodes. All other conflicting changes are discarded. +- `Custom`. Update/update conflicts are resolved with a PL/pgSQL custom conflict handling program. +- `Manual`. The conflict remains unresolved. Conflicting changes remain applied in each primary node where they originated, but are not replicated to other primary nodes. The proper adjustments must be manually applied in each primary node. + +See [Conflict Resolution Strategies](../06_mmr_operation/06_conflict_resolution/#conflict_resolution_strategies) for more information on conflict resolution strategies. + +**Step 5:** If you expect update/update conflicts, then set the `REPLICA IDENTITY` option to FULL on those tables where the conflicts are expected to occur. See [Configuration Parameter and Table Setting Requirements](#configuration_para_and%20table_setting) for additional information. + +**Step 6:** Click the `Create` button. If `Publication Created Successfully` appears, click the `OK` button, otherwise investigate the error and make the necessary corrections. + +![Publication created successfully](/../images/image122.png) + +Upon successful publication creation, a Publication node is added to the replication tree. + +![Replication tree after adding a publication](/../images/image123.png) diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/03_creating_primary_nodes.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/03_creating_primary_nodes.mdx new file mode 100644 index 00000000000..c2c083ca148 --- /dev/null +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/03_creating_primary_nodes.mdx @@ -0,0 +1,110 @@ +--- +title: "Creating Additional Primary nodes" +--- + + + + +Once you have created the primary definition node, you add additional databases to the multi-master replication system by defining additional primary nodes. + +This is done by creating additional publication database definitions subordinate to the MMR type node under the Publication Server node that contains the primary definition node. + +After the publication database definition is created, a Publication Database node representing the primary node appears in the replication tree of the xDB Replication Console. The publication that was defined under the primary definition node appears under the Publication Database node. + +You must enter database connection information such as the database server network address, database identifier, and database login user name and password when you create the publication database definition. The connection information is used by the publication server to access the publication tables when it performs replication. + +**Step 1:** Make sure the database server for the primary definition node is running and accepting client connections. + +**Step 2:** Select the MMR type node under the same Publication Server node that contains the primary definition node. From the Publication menu, choose Publication Database, and then choose Add Database. Alternatively, click the secondary mouse button on the MMR type node and choose Add Database. The Publication Service – Add Database dialog box appears. + +**Step 3:** Fill in the following fields: + +- `Database Type.` Select PostgreSQL or Postgres Plus Advanced Server for the primary node. For an Advanced Server Oracle compatible installation, select the Postgres Plus Advanced Server option. For PostgreSQL or an Advanced Server PostgreSQL compatible installation, select the PostgreSQL option. +- `Host.` IP address of the host on which the primary node is running. +- `Port.` Port on which the primary node is listening for connections. +- `User.` The database user name for the primary node created in Step 1 of [Preparing Additional Primary nodes](../06_mmr_operation/#prepare_add_pdn). +- `Password.` Password of the database user. +- `Database.` Enter the database name of the primary node. +- `URL Options (For SSL connectivity).` Enter the URL options to establish SSL connectivity to the primary node. See Preparing Using Secure Sockets Layer (SSL) Connections <using\_ssl\_connections> for information on using SSL connections. +- `Changeset Logging (For Postgres).` This setting is predetermined by the selection on the primary definition node (see [Adding the Primary definition node](../06_mmr_operation/#adding_pdn)). Table Triggers is for the trigger-based method of synchronization replication. WAL Stream is for the log-based method of synchronization replication. See [Synchronization Replication with the Trigger-Based Method](../02_overview/02_replication_concepts_and_definitions/#sync_replication_trigger_based) for information on the trigger-based method. See [Synchronization Replication with the Log-Based Method](../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#sync_replication_log_based) for information on the log-based method. +- `Node Priority Level.` An integer from 1 to 10, which is the priority level assigned to this primary node for conflict resolution based on node priority. The highest priority is 1 while the lowest is 10. See [Conflict Resolution Strategies](../06_mmr_operation/06_conflict_resolution/#conflict_resolution_strategies) for information on conflict resolution strategies. As each additional primary node is added, the default priority level number increases assigning a lower priority level to each additional node. +- `Replicate Publication Schema.` Check this box if you want the publication server to create the publication table definitions in the new primary node by copying the definitions from the primary definition node. If you do not check this box, it is assumed that you have already created the table definitions in the primary node. If you are using the offline snapshot technique to create this primary node, do not check this box. See Loading Tables From an External Data Source (Offline Snapshot) <offline\_snapshot>) for information on using an offline snapshot. +- `Perform Initial Snapshot.` Check this box if you want the publication server to perform a snapshot from the primary definition node to this primary node when you click the Save button. If you do not check this box, the tables on the primary node will not be loaded until you perform a replication at some later time. If you are using the offline snapshot technique to create this primary node, you should have already loaded the table rows. Therefore do not check this box unless you want to reload the data. See Loading Tables From an External Data Source (Offline Snapshot) <offline\_snapshot> for information on using an offline snapshot. + +![Publication Service - Add Database dialog box for an additional primary node](/../images/image124.png) + +
+ +
+ +Note + +
+ +Unless you intend to use the offline snapshot technique (see Loading Tables From an External Data Source (Offline Snapshot) <offline\_snapshot>), it is suggested that you check the Perform Initial Snapshot box. An initial snapshot replication must be performed from the primary definition node to every other primary node before performing synchronization replications on demand (see [Performing Synchronization Replication](../06_mmr_operation/#perform_synchronization_replication_mmr)) or by a schedule (see [Creating a Schedule](../07_common_operations/#creating_schedule)). If a newly added primary node did not undergo an initial snapshot, any subsequent synchronization replication may fail to apply the transactions to that primary node. The initial snapshot can also be taken by performing an on demand snapshot (see [Performing Snapshot Replication](../06_mmr_operation/#perform_snapshot_replication_mmr)). + +
+ +**Step 4:** Click the `Test` button. If `Test Result: Success` appears, click the `OK` button. + +![Successful primary node test](/../images/image125.png) + +If an error message appears investigate the cause of the error, correct the problem, and repeat steps 1 through 4. + +**Step 5 (Optional):** If you defined a set of available table filters for the publication, you have the option of enabling these filters on this primary node. See [Adding a Publication](../06_mmr_operation/#add_pub_mmr) for instructions on defining table filters. If you do not wish to filter the rows that are replicated to this primary node, go to Step 6. + +
+ +
+ +Note + +
+ +See [Table Settings and Restrictions for Table Filters](../02_overview/02_replication_concepts_and_definitions/#table_settings_and_restrictions_for_table_filters) for table setup requirements for a log-based replication system as well as general restrictions on the use of table filters. + +
+ +Click the `Filter Rules` tab to apply one or more filter rules to the primary node. At most one filter rule may be enabled on any given table in the primary node. + +In the following example the filter named `dept_10_20_30` is enabled on the dept table and the filter named dept\_30 is enabled on the `emp` table of this primary node. + +![Enabling filter rules on a primary node](/../images/image126.png) + +**Step 6:** Check the Perform Initial Snapshot box if you want the publication server to perform a snapshot from the primary definition node to this primary node when you click the Save button. If you do not check this box, the tables on the primary node will not be loaded until you perform a replication at some later time. + +If you are using the offline snapshot technique to create this primary node, you should have already loaded the table rows. Therefore do not check this box unless you want to reload the data. See Loading Tables From an External Data Source (Offline Snapshot) <offline\_snapshot> for information on using an offline snapshot. + +If you do check the Perform Initial Snapshot check box, the Verbose Output check box appears as shown by the following: + +![Initial snapshot with verbose output option](/../images/image127.png) + +If you skipped the enabling of table filters as described in Step 5, and you checked the `Perform Initial Snapshot` check box after Step 4, the `Verbose Output` check box is displayed as well: + +![Initial snapshot with verbose output option](/../images/image128.png) + +Select the `Verbose Output` check box only if you want to display the output from the snapshot in the dialog box. This option should be left unchecked in a network address translation (NAT) environment as a large amount of output from the snapshot may delay the response from the Snapshot dialog box. + +Click the `Save` button. + +When the publication database definition is successfully saved, a Publication Database node is added to the replication tree under the MMR type node of the Publication Server node. + +![Replication tree after adding an additional primary node](/../images/image129.png) + +Unlike the primary definition node, the label PDN does not appear at the end of the node in the replication tree. The PDN field is set to No in the Property window to indicate this is not the primary definition node. + +In addition, a Publication node appears under the newly added primary node. This Publication node represents the publication in the primary definition node, which is replicated to the primary node. + +If in Step 6, you checked the `Perform Initial Snapshot` check box, an initial snapshot replication is performed. If you checked the `Verbose Output` check box, the log of the snapshot is displayed as well. + +![- Adding a primary node with an initial snapshot](/../images/image130.png) + +If the snapshot is successful, the replicated tables in the primary node are loaded with the rows from the publication tables of the primary definition node. + +Step 7: If you expect update/update conflicts, then set the `REPLICA IDENTITY` option to `FULL` on those tables where the conflicts are expected to occur. See [Configuration Parameter and Table Setting Requirements](#configuration_para_and%20table_setting) for additional information. + +Step 8 (Optional): If users are to access the data in the publication tables residing on this primary node, it is convenient to have one or more `group` roles containing the required privileges to access these tables. For the trigger-based method, privileges must also be granted on the control schema objects to users who are to perform inserts, updates, or deletions on the publication tables. When using the log-based method a user needs access to the publication tables and to certain control schema objects as well under certain circumstances. + +When adding new users, granting these users membership in these roles gives them the privileges to access the publication tables. This eliminates the need to grant these privileges individually to each new user. + +After you perform the replication of the publication schema as shown in Step 3, you can grant the required privileges needed to access the publication tables and its control schema objects. See Step 2 of [Postgres Publication Database](../05_smr_operation/01_prerequisites/#postgres_pub_db) for information on how this can be accomplished. diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/04_control_schema_created_in_primary_nodes.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/04_control_schema_created_in_primary_nodes.mdx new file mode 100644 index 00000000000..172d4002ce4 --- /dev/null +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/04_control_schema_created_in_primary_nodes.mdx @@ -0,0 +1,14 @@ +--- +title: "Control Schema Objects Created in Primary nodes" +--- + + + + +Creation of primary nodes results in the creation of control schema objects in each primary node database. + +See [Control Schema Objects Created for a Publication](../05_smr_operation/02_creating_publication/#control_schema_objects_created_for_publication) for the control schema objects created in each primary node. + +Do not delete any of these control schema objects as the replication system metadata will become corrupted. + +When you remove a primary node using the xDB Replication Console or xDB Replication Server CLI, all of its control schema objects are deleted from that primary node database. diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/05_on_demand_replication_mmr.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/05_on_demand_replication_mmr.mdx new file mode 100644 index 00000000000..20203fba100 --- /dev/null +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/05_on_demand_replication_mmr.mdx @@ -0,0 +1,108 @@ +--- +title: "On Demand Replication" +--- + + + + +After a primary definition node, its publication, and additional primary nodes are created, there are a couple of choices for starting the replication process. + +- Replication can be done immediately by performing an initial on demand snapshot after which synchronization replication may be performed. +- Replication can be scheduled to start at a later date and time by creating a schedule. + +This section discusses the procedure for initiating a replication on demand. Section [Creating a Schedule](../07_common_operations/#creating_schedule) discusses how to create a schedule. + + + +## Performing Snapshot Replication + +A snapshot replication occurs from the primary definition node to a selected primary node. + +When you create a primary node for the first time, you have the option of performing an initial snapshot (see Step 3 of [Creating Additional Primary nodes](../06_mmr_operation/#creating_primary_nodes)). You can perform snapshots to this primary node at any later point in time according to the following steps. + +**Step 1:** Select the Publication node under the primary node for which you wish to perform snapshot replication. + +![Selecting a primary node publication for an on demand snapshot](/../images/image131.png) + +**Step 2:** Open the `Snapshot` dialog box in any of the following ways: + +- Click the secondary mouse button on the Publication node and choose Snapshot. +- Click the primary mouse button on the Snapshot icon. + +![Opening the Snapshot dialog box](/../images/image132.png) + +**Step 3:** Select the `Verbose Output` check box only if you want to display the output from the snapshot in the dialog box. This option should be left unchecked in a network address translation (NAT) environment as a large amount of output from the snapshot may delay the response from the Snapshot dialog box. Click the `Snapshot` button to start snapshot replication. + +![Snapshot dialog box](/../images/image133.png) + +**Step 4:** `Snapshot Taken` Successfully appears if the snapshot was successful. Click the `OK` button. If the snapshot was not successful, scroll through the messages in the Snapshot dialog box window if Verbose Output was selected or check the log files. + +The status messages of each snapshot are saved in the Migration Toolkit log files named `mtk.log[.n]` (where `[.n]` is an optional history file count if log file rotation is enabled) in the following directories: + +**For Linux:** + +`/var/log/xdb-x.x` + +**For Windows:** + +`POSTGRES_HOME\.enterprisedb\xdb\x.x` + +`POSTGRES_HOME` is the home directory of the Windows postgres account (enterprisedb account for Advanced Server installed in Oracle compatible configuration mode). The specific location of POSTGRES\_HOME is dependent upon your version of Windows. The xDB Replication Server version number is represented by `x.x`. + +![Successful on demand snapshot](/../images/image134.png) + +The publication has now been replicated from the primary definition node to the selected primary node. A record of the snapshot is maintained in the replication history. See [Viewing Replication History](../07_common_operations/#view_replication_history) for information on how to view replication history. + + + +## Performing Synchronization Replication + +
+ +
+ +Note + +
+ +Be sure an initial snapshot replication has been performed from the primary definition node to every other primary node in the multi-master replication system. If a newly added primary node did not undergo an initial snapshot, any subsequent synchronization replication may fail to apply the transactions to that primary node. The initial snapshot could be taken when the primary node is first added (see [Creating Additional Primary nodes](../06_mmr_operation/#creating_primary_nodes)) or by performing an on demand snapshot (see [Performing Snapshot Replication](../06_mmr_operation/#perform_snapshot_replication_mmr)). + +
+ +When synchronization replication is performed in a multi-master replication system, a series of synchronization operations occur between every primary node pair in the replication system. + +For example, if a replication system consists of primary nodes A, B, and C, synchronization is applied to the following node pairs whenever synchronization replication is initiated: + +- Changes on node A are applied to node B. +- Changes on node A are applied to node C. +- Changes on node B are applied to node A. +- Changes on node B are applied to node C. +- Changes on node C are applied to node A. +- Changes on node C are applied to node B. + +There may be circumstances where changes made on different nodes result in conflicts. Section [Conflict Resolution](../06_mmr_operation/06_conflict_resolution/#conflict_resolution) discusses the types of conflicts that may occur and how they can be resolved. + +The following steps describe how to initiate on demand synchronization replication. + +**Step 1:** Select the Publication node under any primary node. Regardless of the primary node chosen, synchronization is applied to every primary node pair in the replication system. + +![Selecting a primary node publication for an on demand synchronization](/../images/image131.png) + +**Step 2:** Open the `Synchronize` dialog box in any of the following ways: + +- Click the secondary mouse button on the Publication node and choose `Synchronize`. +- Click the primary mouse button on the Synchronize icon. + +![Opening the Synchronize dialog box](/../images/image135.png) + +**Step 3:** Click the `Synchronize` button to start synchronization replication. + +![Synchronize dialog box](/../images/image136.png) + +**Step 4:** `Publication Synchronized Successfully(())` appears if the synchronization was successful. Click the `OK` button. If the synchronization was not successful, an error message is displayed. + +![Successful on demand synchronization](/../images/image137.png) + +The operations that were applied to the publication tables can be seen in the replication history. See [Viewing Replication History](../07_common_operations/#view_replication_history) for information on how to view replication history. + +Conflicting changes that were encountered can be seen in the conflict history. See [Viewing Conflict History](../06_mmr_operation/#view_conflict_history) for information on how to view conflict history. diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/01_configuration_para_andtable_setting.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/01_configuration_para_andtable_setting.mdx new file mode 100644 index 00000000000..adf9cf3047f --- /dev/null +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/01_configuration_para_andtable_setting.mdx @@ -0,0 +1,56 @@ +--- +title: "Configuration Parameter and Table Setting Requirements" +--- + + + + +Depending upon the multi-master replication system environment, certain configuration settings may be required in order for the conflict resolution process to operate properly. + +The following are required only for the log-based method. These do not apply to the trigger-based method. + +- `track_commit_timestamp`. Any Postgres 9.6 and later database server containing a primary node must have its `track_commit_timestamp` configuration parameter enabled. The `track_commit_timestamp` parameter is located in the `postgresql.conf` file. If `track_commit_timestamp` is not enabled, then `update/update` conflicts are not automatically resolved such as by using the earliest timestamp of the conflicting transactions. As a result, these conflicting transactions are left in a pending state. See [Automatic Conflict Resolution Example](../../06_mmr_operation/06_conflict_resolution/#auto_conflict_resolution_eg) for an example of how update/update conflicts are automatically resolved. +- `REPLICA IDENTITY FULL.` If `update/update conflicts` are expected to occur on a given publication table, then the `REPLICA IDENTITY` setting for the table must be set to FULL on every primary node. The case where update transactions occur on separate primary nodes, but updating different columns in the same row, is not considered an update/update conflict. However, if `REPLICA IDENTITY` is not set to `FULL`, then this case will be recorded as an `update/update conflict`. + +The `REPLICA IDENTITY` option is set to `FULL` using the `ALTER TABLE` command as shown by the following: + +``` text +ALTER TABLE schema.table_name REPLICA IDENTITY FULL +``` + +The following is an example of the `ALTER TABLE` command: + +``` text +ALTER TABLE edb.dept REPLICA IDENTITY FULL; +``` + +The `REPLICA IDENTITY` setting can be displayed by the PSQL utility using the `\d+` command: + +``` text +edb=# \d+ edb.dept + Table "edb.dept" + Column | Type | Modifiers | Storage | Stats target | Description +--------+-----------------------+-----------+----------+--------------+------------- + deptno | numeric(2,0) | not null | main | | + dname | character varying(14) | | extended | | + loc | character varying(13) | | extended | | +Indexes: + "dept_pk" PRIMARY KEY, btree (deptno) + "dept_dname_uq" UNIQUE CONSTRAINT, btree (dname) +Referenced by: + TABLE "emp" CONSTRAINT "emp_ref_dept_fk" FOREIGN KEY (deptno) REFERENCES dept(deptno) + TABLE "jobhist" CONSTRAINT "jobhist_ref_dept_fk" FOREIGN KEY (deptno) REFERENCES dept(deptno) ON DELETE SET NULL +Replica Identity: FULL +``` + +
+ +
+ +Note + +
+ +In addition to conflict resolution requirements, the `REPLICA IDENTITY FULL` setting may be required on publication tables for other reasons in xDB Replication Server. See [Table Settings and Restrictions for Table Filters](../../02_overview/02_replication_concepts_and_definitions/#table_settings_and_restrictions_for_table_filters) for additional requirements. + +
diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/02_conflict_types.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/02_conflict_types.mdx new file mode 100644 index 00000000000..f87a4ef951b --- /dev/null +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/02_conflict_types.mdx @@ -0,0 +1,48 @@ +--- +title: "Conflict Types" +--- + + + + +The types of conflicts can be summarized as follows: + +- `Uniqueness Conflict.` A uniqueness conflict occurs when the same value is used for a primary key or unique column in an insert transaction on two or more primary nodes. This is also referred to as an insert/insert conflict. +- `Update Conflict.` An update transaction modifies a column value in the same row on two or more primary nodes. For example, an employee address column is updated on primary node A, and another user updates the address column for the same employee on primary node B. The timestamps of when the transactions occur on each node could be different, but both transactions occur in a time interval during which synchronization has not yet occurred. Thus when synchronization does take place, both conflicting transactions are to be applied. This is also referred to as an update/update conflict. +- `Delete Conflict.` The row corresponding to an update transaction on the source node is not found on the target node as the row has already been deleted on the target node. This is referred to as an update/delete conflict. Conversely, if there is a delete transaction on the source node and an update transaction for the same row on the target node, this case is referred to as a `delete/update` conflict. Finally, in the case where the row corresponding to a delete transaction on the source node is not found on the target node as the row has already been deleted on the target node is referred to as a `delete/delete conflict`. + +The following table definition is used to illustrate conflict resolution examples: + +``` text +CREATE TABLE addrbook ( + id SERIAL PRIMARY KEY, + name VARCHAR(20), + address VARCHAR(50) +); +``` + +The following table illustrates an example of a uniqueness conflict. + +
Uniqueness Conflict

Timestamp t1

Action Node A: INSERT INTO addrbook (name, address) VALUES ('A', 'ADDR A');

Node A: INSERT INTO addrbook (name, address) VALUES ('B', 'ADDR B');

Primary node A id = 1, name = 'A', address = 'ADDR A'

id = 2, name = 'B', address = 'ADDR B'

Primary node B

t2

t3

Node B: INSERT INTO addrbook (name, address) VALUES ('C', 'ADDR C');

Synchronization pushes Node A changes to Node B

id = 1, name = 'A', address = 'ADDR A'

id = 2, name = 'B', address = 'ADDR B'

id = 1, name = 'C', address = 'ADDR C'

Row change for INSERT tx id = 1 on Node A results in unique key conflict on Node B

id = 1, name = 'C', address = 'ADDR C'

id = 1, name = 'A', address = 'ADDR A'

+ +**Uniqueness Conflict** + +The following table illustrates an example of an update conflict. + +| | | | | +|----------------|-------------------------------------------------------------------------------------------------------------------|-------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------| +| Timestamp `t0` | Action | Primary node A id = 2, address = 'ADDR B' | Primary node B id = 2, address = 'ADDR B' | +| `t1` | **Node A:** UPDATE addrbook SET address = 'ADDR B1' WHERE id = 2; | id = 2, address = **'ADDR B1'** | id = 2, address = 'ADDR B' | +| `t2` `t3` | **Node B:** UPDATE addrbook SET address = 'ADDR B2' WHERE id = 2; Synchronization pushes Node A changes to Node B | id = 2, address = 'ADDR B1' | id = 2, address = **'ADDR B2'** **Current value of address on Node B not equal old value on Node A ('ADDR B2' <> 'ADDR B')** | + +**Update Conflict** + +The following table illustrates an example of a delete conflict. + +| | | | | +|----------------|------------------------------------------------------------------------------------------------|-------------------------------------------|--------------------------------------------------------------------------------------------------------------------------| +| Timestamp `t0` | Action | Primary node A id = 2, address = 'ADDR B' | Primary node B id = 2, address = 'ADDR B' | +| `t1` | **Node A:** UPDATE addrbook SET address = 'ADDR B1' WHERE id = 2; | id = 2, address = **'ADDR B1'** | id = 2, address = 'ADDR B' | +| `t2` `t3` | **Node B:** DELETE FROM addrbook WHERE id = 2; Synchronization pushes Node A changes to Node B | id = 2, address = 'ADDR B1' | **Row with id = 2 deleted** **The row with id = 2 is already deleted on target Node B, hence update from Node A fails.** | + +**Delete Conflict** diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/03_conflict_detection.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/03_conflict_detection.mdx new file mode 100644 index 00000000000..1b9ece2a471 --- /dev/null +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/03_conflict_detection.mdx @@ -0,0 +1,23 @@ +--- +title: "Conflict Detection" +--- + + + + +This section discusses the synchronization process and conflict detection. + +When synchronization replication occurs, either on demand or on a scheduled basis, each of the primary node changes is pushed to the other primary nodes. See [Multi-Master Parallel Replication](../../02_overview/02_replication_concepts_and_definitions/#mmr_parallel_replication) for information on this process. + +Using a 3-node example the following describes the conflict detection process. + +- The replication server loads the first set of pending transactions from primary node A. Transactions are processed on a transaction set basis. (The same process is used for single-master replication.) All pending transactions are grouped in one or more transaction sets to avoid loading a very large chunk of rows in memory that may result in an out of heap space issue. +- For an update transaction, the replication server queries the first target primary node B to load the related row. If the old column value on the source primary node A is different than the current column value on target primary node B, the transaction is marked as an update/update conflict. If a related row is not found on the target primary node, it is marked as an update/delete conflict. +- For a delete transaction, the replication server queries the target primary node to load the related row. If a related row is not found on the target primary node, the transaction is marked as a delete/delete conflict. +- When a conflict is detected, the conflict information such as the transaction ID, conflict type, and conflict detection timestamp are logged in the conflict table on the target primary node. +- For a conflicting transaction, the replication server checks if any conflict resolution strategy has been selected for the specific table. If a strategy is found, it is applied accordingly and the conflict status is marked as resolved. If a strategy cannot be applied, the conflict status is marked as unresolved (also called pending). +- If no conflict is detected, the transactional change is replicated to the target primary node and the transaction status for that target node is marked as completed in the source primary node control schema. A transaction status mapping for each target primary node is maintained on all primary nodes. For example node A contains two mappings of status – one for node B and another for node C. +- All of these prior steps are repeated to process and replicate all pending transaction sets available on primary node A to primary node B. +- Next, the publication server proceeds to replicate primary node A pending transactional changes to the next target primary node, C. +- Once the primary node A changes are replicated to nodes B and C, the publication server replicates the pending changes available on primary node B to nodes A and C. +- Finally, the primary node C changes are replicated to nodes A and B. diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/04_conflict_resolution_strategies.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/04_conflict_resolution_strategies.mdx new file mode 100644 index 00000000000..aec2ef6b561 --- /dev/null +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/04_conflict_resolution_strategies.mdx @@ -0,0 +1,23 @@ +--- +title: "Conflict Resolution Strategies" +--- + + + + +A number of built-in conflict resolution options are available to support automatic conflict resolution. The conflict resolution options are applicable to update/update and delete/delete conflicts. + +Uniqueness (`insert/insert`), `update/delete`, and `delete/update` conflicts are marked unresolved and must be manually reconciled. + +The following are the built-in, automatic conflict resolution options. + +- `Earliest Timestamp.` When the earliest timestamp option is selected, the relevant rows involved in an update conflict from the source and target primary nodes are compared based on the timestamp of when the update occurred on that particular node. The row change that occurred earliest is applied. The row changes with the later timestamps are discarded. +- `Latest Timestamp`. Same approach as earliest timestamp except the row change with the latest timestamp is accepted. The row changes with earlier timestamps are discarded. +- `Node Priority.` The row change of the primary node with the highest node priority level is applied while the lower priority level primary node changes are discarded. The node priority level is an integer in the range of 1 to 10, inclusive where 1 is the highest priority level and 10 is the lowest priority level. +- `Custom.` Custom conflict handling applies to update/update conflicts only. You must supply a PL/pgSQL program to resolve any conflicts that occur resulting from an update/update conflict. See [Custom Conflict Handling](../../06_mmr_operation/06_conflict_resolution/08_custom_conflict_handling/#custom_conflict_handling) for information on using custom conflict handling. + +The `delete/delete` conflict is always resolved implicitly regardless of the conflict resolution option in effect. The net impact of a `delete/delete` conflict is the removal of a given row, and the row in question has already been removed the from the source and target nodes. + +For the earliest timestamp and latest timestamp conflict resolution strategies, the transaction timestamp is tracked in a column with data type `TIMESTAMP` in the shadow table. + +Once selected, the conflict resolution strategy for a given table can later be changed to a different strategy (see [Updating the Conflict Resolution Options](../../06_mmr_operation/#update_conflict_resolution_options)). diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/05_conflict_prevention_uniquness.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/05_conflict_prevention_uniquness.mdx new file mode 100644 index 00000000000..10f16713a04 --- /dev/null +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/05_conflict_prevention_uniquness.mdx @@ -0,0 +1,19 @@ +--- +title: "Conflict Prevention – Uniqueness Case" +--- + + + + +Since there is no automatic built-in resolution strategy for the uniqueness conflict, this section discusses strategies to avoid this problem that would be implemented by the DBA. This discussion is based on a realm of numeric values generated by a sequence such as for a unique primary key. + +The following are possible strategies: + +- **Node specific sequence range**. A sequence range is reserved for each primary node. For example, primary node A would have `MINVALUE = 1` and `MAXVALUE = 1000`, primary node B would have `MINVALUE = 1001` and `MAXVALUE = 2000`, and so on for other nodes. This ensures that a unique ID is always generated across all primary nodes. +- **Start value variation**. Each node is assigned a different start value. For example, primary node A would have a START value of 1, node B would have 2, and node C would have 3. An increment greater than or equal to the number of nodes guarantees unique IDs as shown in Table 6 4. +- **Common sequence**. All nodes share a common sequence object, however this has the major disadvantage of slowing down transaction processing due to network round-trips associated with each ID generation. +- **MMR-ready sequence**. This is a technique that enhances the use of sequences and provides a more flexible, reliable approach for a distributed, multiple database architecture as is inherent in a multi-master replication system. This approach is recommended over the previously listed sequence techniques. See [Conflict Prevention with an MMR-Ready Sequence](../../06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/#conflict_prevention_mmr_ready) for information on an MMR-ready sequence. + +
Uniqueness Conflict

Sequence Clause START WITH INCREMENT BY

Primary node A 1 2 5 5

Primary node B

3 5

Primary node C

Generated IDs1, 6, 11, 16, …

2, 7, 12, 17, …

3, 8, 13, 18, …

+ +**Uniqueness Conflict** diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/01_create_mmr_ready_sequence.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/01_create_mmr_ready_sequence.mdx new file mode 100644 index 00000000000..4fbb3882229 --- /dev/null +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/01_create_mmr_ready_sequence.mdx @@ -0,0 +1,99 @@ +--- +title: "Creating an MMR-Ready Sequence" +--- + + + + +The following are the steps to create an MMR-ready sequence in a database to participate as a primary node in a multi-master replication system. + +Begin these steps with the database to be used as the primary definition node. + +**Step 1:** Assign a unique, database identifier as an integer from 1 to 1024, inclusive. Thus, a maximum of 1024 databases can be uniquely identified in a multi-master replication system with an MMR-ready sequence. + +Issue the following commands to create and set the database identifier: + +``` text +ALTER DATABASE dbname SET cluster.unique_db_id TO db_id; +SET cluster.unique_db_id TO db_id; +``` + +Use a different `db_id` value for each database. + +**Step 2:** Create a sequence to uniquely identify each table row within the database. + +``` text +CREATE SEQUENCE seq_name START WITH 1 INCREMENT BY 1 NO CYCLE; +``` + +Multiple sequences can be created if it is desired to use separate sequences for multiple tables within the publication. Be sure that the same sequence name is used across all databases for the same given table. + +A publication table column that uses an MMR-ready sequence will include a DEFAULT clause referencing the sequence name in a function call. The publication table definition must be consistent across all primary nodes by referencing the same sequence name in the function call. + +**Step 3:** Create the following function that returns the next MMR-ready sequence value when a row is inserted into the table. This function is referenced by the `DEFAULT` clause of the publication table column. + +``` text +CREATE OR REPLACE FUNCTION MMR_sequence_nextval ( + seq_id VARCHAR +) +RETURNS bigint +LANGUAGE sql +AS +$function$ +SELECT ( + (SELECT current_setting('cluster.unique_db_id'))::bigint + << 52)::bigint + + nextval($1::regclass); +$function$; +``` + +The sequence name created in Step 2 is specified as the `seq_id` input argument when the function is added to the `DEFAULT` clause of the publication table column. + +This function performs a bitwise shift left operation (<< 52) on the database identifier (`cluster.unique_db_id`), thus significantly increasing its numeric value. The next sequence value is then added to this number. Thus, all rows inserted in the table on a given database fall within a numeric range determined by the shifted, database identifier value. + +**Step 4 (Optional):** Create the following function to obtain the current MMR-ready sequence value. + +``` text +CREATE OR REPLACE FUNCTION MMR_sequence_currval ( + seq_id VARCHAR +) +RETURNS bigint +LANGUAGE sql +AS +$function$ +SELECT ( + (SELECT current_setting('cluster.unique_db_id'))::bigint + << 52)::bigint + + currval($1::regclass); +$function$; +``` + +The `MMR_sequence_nextval` function must be invoked in the current session before calling the `MMR_sequence_currval` function. + +**Step 5:** Add or modify the publication table column that is to use the MMR-ready sequence. The column data type must be `BIGINT`. The `MMR_sequence_nextval` function is specified in the `DEFAULT` clause as shown in the following example for column id. + +``` text +CREATE TABLE table_name ( + id BIGINT NOT NULL PRIMARY KEY + DEFAULT MMR_sequence_nextval('seq_name'), + field VARCHAR2(20) +); +``` + +The column will also typically be the primary key. + +**Step 6:** Repeat steps 1 through 4 for the other databases to be added as primary nodes. + +
+ +
+ +Note + +
+ +Step 5 is omitted for the additional primary nodes as the publication table definitions are replicated from the primary definition node to the additional primary nodes when they are created as described in [Creating Additional Primary nodes](../../../06_mmr_operation/#creating_primary_nodes). + +
+ +**Step 7:** Create the complete, multi-master replication system as described in Chapter [Multi-Master Replication Operation](../../../06_mmr_operation/#mmr_operation). diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/02_mmr_ready_example.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/02_mmr_ready_example.mdx new file mode 100644 index 00000000000..86dfc1e2d2c --- /dev/null +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/02_mmr_ready_example.mdx @@ -0,0 +1,243 @@ +--- +title: "MMR-Ready Sequence Example" +--- + + + + +The following is an example of a 3-primary node system using an MMR-ready sequence. The databases to be used as the primary nodes are `MMRnode_a`, `MMRnode_b`, and `MMRnode_c`. A publication table named `MMR_seq_tbl` uses the `MMR-ready` sequence. + +The following commands are invoked in database `MMRnode_a`, which will be the primary definition node: + +``` text +ALTER DATABASE MMRnode_a SET cluster.unique_db_id TO 1; +SET cluster.unique_db_id TO 1; + +CREATE SEQUENCE MMR_seq START WITH 1 INCREMENT BY 1 NO CYCLE; + +CREATE OR REPLACE FUNCTION MMR_sequence_nextval ( + seq_id VARCHAR +) +RETURNS bigint +LANGUAGE sql +AS +$function$ +SELECT ( + (SELECT current_setting('cluster.unique_db_id'))::bigint + << 52)::bigint + + nextval($1::regclass); +$function$; + +CREATE OR REPLACE FUNCTION MMR_sequence_currval ( + seq_id VARCHAR +) +RETURNS bigint +LANGUAGE sql +AS +$function$ +SELECT ( + (SELECT current_setting('cluster.unique_db_id'))::bigint + << 52)::bigint + + currval($1::regclass); +$function$; + +CREATE TABLE MMR_seq_tbl ( + id BIGINT NOT NULL PRIMARY KEY + DEFAULT MMR_sequence_nextval('MMR_seq'), + field VARCHAR2(20) +); +``` + +On `MMRnode_b` and `MMRnode_c`, the commands to create different settings for the configuration parameter cluster.unique\_db\_id are run as well as the commands to create the sequence and the functions. + +On `MMRnode_b` the following commands are invoked. + +
+ +
+ +Note + +
+ +`Cluster.unique_db_id` is set to 2. + +
+ +``` text +ALTER DATABASE MMRnode_b SET cluster.unique_db_id TO 2; +SET cluster.unique_db_id TO 2; + +CREATE SEQUENCE MMR_seq START WITH 1 INCREMENT BY 1 NO CYCLE; + +CREATE OR REPLACE FUNCTION MMR_sequence_nextval ( + seq_id VARCHAR +) +RETURNS bigint +LANGUAGE sql +AS +$function$ +SELECT ( + (SELECT current_setting('cluster.unique_db_id'))::bigint + << 52)::bigint + + nextval($1::regclass); +$function$; + +CREATE OR REPLACE FUNCTION MMR_sequence_currval ( + seq_id VARCHAR +) +RETURNS bigint +LANGUAGE sql +AS +$function$ +SELECT ( + (SELECT current_setting('cluster.unique_db_id'))::bigint + << 52)::bigint + + currval($1::regclass); +$function$; +``` + +On `MMRnode_c` the following commands are invoked. + +
+ +
+ +Note + +
+ +The `cluster.unique_db_id` is set to 3. + +
+ +``` text +ALTER DATABASE MMRnode_c SET cluster.unique_db_id TO 3; +SET cluster.unique_db_id TO 3; + +CREATE SEQUENCE MMR_seq START WITH 1 INCREMENT BY 1 NO CYCLE; + +CREATE OR REPLACE FUNCTION MMR_sequence_nextval ( + seq_id VARCHAR +) +RETURNS bigint +LANGUAGE sql +AS +$function$ +SELECT ( + (SELECT current_setting('cluster.unique_db_id'))::bigint + << 52)::bigint + + nextval($1::regclass); +$function$; + +CREATE OR REPLACE FUNCTION MMR_sequence_currval ( + seq_id VARCHAR +) +RETURNS bigint +LANGUAGE sql +AS +$function$ +SELECT ( + (SELECT current_setting('cluster.unique_db_id'))::bigint + << 52)::bigint + + currval($1::regclass); +$function$; +``` + +The multi-master replication system is created with the Replicate Publication Schema and the Perform Initial Snapshot options selected when creating the additional primary nodes, `MMRnode_b` and `MMRnode_c`. + +The resulting primary nodes are shown in the xDB Replication Console. + +![Publication table with MMR-ready sequence](/../../../images/image138.png) + +
+ +
+ +Note + +
+ +The Default Value property of the id column uses the `MMR_sequence_nextval` function. + +
+ +The following INSERT commands are invoked on `MMRnode_a`: + +``` text +INSERT INTO MMR_seq_tbl (field) VALUES ('MMRnode_a - Row 1'); +INSERT INTO MMR_seq_tbl (field) VALUES ('MMRnode_a - Row 2'); +INSERT INTO MMR_seq_tbl (field) VALUES ('MMRnode_a - Row 3'); +``` + +The following INSERT commands are invoked on `MMRnode_b`: + +``` text +INSERT INTO MMR_seq_tbl (field) VALUES ('MMRnode_b - Row 1'); +INSERT INTO MMR_seq_tbl (field) VALUES ('MMRnode_b - Row 2'); +INSERT INTO MMR_seq_tbl (field) VALUES ('MMRnode_b - Row 3'); +``` + +The following INSERT commands are invoked on `MMRnode_c`: + +``` text +INSERT INTO MMR_seq_tbl (field) VALUES ('MMRnode_c - Row 1'); +INSERT INTO MMR_seq_tbl (field) VALUES ('MMRnode_c - Row 2'); +INSERT INTO MMR_seq_tbl (field) VALUES ('MMRnode_c - Row 3'); +``` + +A synchronization replication is performed. + +No uniqueness conflicts occur as a unique value is generated for the id primary key column as shown by the following results on `MMRnode_a`: + +``` text +MMRnode_a=# SELECT * FROM MMR_seq_tbl ORDER BY id; + id | field +-------------------+------------------- + 4503599627370497 | MMRnode_a - Row 1 + 4503599627370498 | MMRnode_a - Row 2 + 4503599627370499 | MMRnode_a - Row 3 + 9007199254740993 | MMRnode_b - Row 1 + 9007199254740994 | MMRnode_b - Row 2 + 9007199254740995 | MMRnode_b - Row 3 + 13510798882111489 | MMRnode_c - Row 1 + 13510798882111490 | MMRnode_c - Row 2 + 13510798882111491 | MMRnode_c - Row 3 +(9 rows) +``` + +The same query on `MMRnode_b` shows the same set of rows: + +``` text +MMRnode_b=# SELECT * FROM MMR_seq_tbl ORDER BY id; + id | field +-------------------+------------------- + 4503599627370497 | MMRnode_a - Row 1 + 4503599627370498 | MMRnode_a - Row 2 + 4503599627370499 | MMRnode_a - Row 3 + 9007199254740993 | MMRnode_b - Row 1 + 9007199254740994 | MMRnode_b - Row 2 + 9007199254740995 | MMRnode_b - Row 3 + 13510798882111489 | MMRnode_c - Row 1 + 13510798882111490 | MMRnode_c - Row 2 + 13510798882111491 | MMRnode_c - Row 3 +(9 rows) +``` + +The same results are present on `MMRnode_c`: + +``` text +MMRnode_c=# SELECT * FROM MMR_seq_tbl ORDER BY id; + id | field +-------------------+------------------- + 4503599627370497 | MMRnode_a - Row 1 + 4503599627370498 | MMRnode_a - Row 2 + 4503599627370499 | MMRnode_a - Row 3 + 9007199254740993 | MMRnode_b - Row 1 + 9007199254740994 | MMRnode_b - Row 2 + 9007199254740995 | MMRnode_b - Row 3 + 13510798882111489 | MMRnode_c - Row 1 + 13510798882111490 | MMRnode_c - Row 2 + 13510798882111491 | MMRnode_c - Row 3 +(9 rows) +``` diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/03_convert_to_mmr_ready.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/03_convert_to_mmr_ready.mdx new file mode 100644 index 00000000000..6267ae82bf7 --- /dev/null +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/03_convert_to_mmr_ready.mdx @@ -0,0 +1,37 @@ +--- +title: "Converting a Standard Sequence to an MMR-Ready Sequence" +--- + + + + +If you have an existing application with tables that use a standard sequence such as with the `SERIAL` data type, these tables can be modified to use the MMR-ready sequence for incorporation into a multi-master replication system. The basic conversion process is the following: + +- Update the sequence values in the existing rows with MMR-ready sequence compatible values. +- Alter the column definition to be compatible with the MMR-ready sequence including modification or addition of the `DEFAULT` clause to use the MMR-ready sequence function to supply the default values for subsequent inserts. + +To perform the conversion of existing sequence values, first, create the unique database identifier as described in Step 1 of section [Creating an MMR-Ready Sequence](../../../06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/#create_mmr_ready_sequence). + +Use the following function to update the existing primary key and foreign key values that are required to be converted. + +``` text +CREATE OR REPLACE FUNCTION MMR_sequence_convert ( + old_seq_value bigint +) +RETURNS bigint +LANGUAGE sql +AS +$function$ +SELECT ( + (SELECT current_setting('cluster.unique_db_id'))::bigint + << 52)::bigint + $1; +$function$; +``` + +The function input argument is the old sequence value and the function returns the new MMR-ready sequence value. + +The function input and return arguments are data type `BIGINT` so the existing sequence columns must be altered accordingly before using the function. + +Finally, the sequence columns must include the clauses `BIGINT NOT NULL DEFAULT MMR_sequence_nextval('seq_name')` to supply MMR-ready sequence values for future inserts. + +See [Creating an MMR-Ready Sequence](../../../06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/#create_mmr_ready_sequence) for information on creating the objects required for an MMR-ready sequence. diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/04_convert_to_mmr_ready_eg.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/04_convert_to_mmr_ready_eg.mdx new file mode 100644 index 00000000000..d2757f7f2de --- /dev/null +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/04_convert_to_mmr_ready_eg.mdx @@ -0,0 +1,438 @@ +--- +title: "Conversion to an MMR-Ready Sequence Example" +--- + + + + +This section describes a basic example of how two tables with standard sequences used as primary keys as well as a parent-child relationship by a foreign key constraint can be converted to use the MMR-ready sequence, then employed in a multi-master replication system. + +The tables are defined as follows: + +``` text +CREATE TABLE MMR_seq_tbl ( + id SERIAL PRIMARY KEY, + field VARCHAR2(20) +); + +CREATE TABLE MMR_seq_child_tbl ( + id SERIAL PRIMARY KEY, + field VARCHAR2(20), + parent_id INTEGER CONSTRAINT MMR_seq_tbl_fk + REFERENCES MMR_seq_tbl(id) +); +``` + +
+ +
+ +Note + +
+ +The foreign key constraint between columns `MMR_seq_child_tbl.parent_id` and `MMR_seq_tbl.id`. + +
+ +The tables are populated with an initial set of rows: + +``` text +INSERT INTO MMR_seq_tbl (field) VALUES ('MMRnode_a - Row 1'); +INSERT INTO MMR_seq_tbl (field) VALUES ('MMRnode_a - Row 2'); +INSERT INTO MMR_seq_tbl (field) VALUES ('MMRnode_a - Row 3'); + +INSERT INTO MMR_seq_child_tbl (field, parent_id) VALUES ('MMRnode_a - Row 1-1', 1); +INSERT INTO MMR_seq_child_tbl (field, parent_id) VALUES ('MMRnode_a - Row 1-2', 1); +INSERT INTO MMR_seq_child_tbl (field, parent_id) VALUES ('MMRnode_a - Row 2-1', 2); +INSERT INTO MMR_seq_child_tbl (field, parent_id) VALUES ('MMRnode_a - Row 2-2', 2); +INSERT INTO MMR_seq_child_tbl (field, parent_id) VALUES ('MMRnode_a - Row 3-1', 3); +INSERT INTO MMR_seq_child_tbl (field, parent_id) VALUES ('MMRnode_a - Row 3-2', 3); +``` + +The resulting table content is the following: + +``` text +edb=# SELECT * FROM MMR_seq_tbl; + id | field +----+------------------- + 1 | MMRnode_a - Row 1 + 2 | MMRnode_a - Row 2 + 3 | MMRnode_a - Row 3 +(3 rows) + +edb=# SELECT * FROM MMR_seq_child_tbl; + id | field | parent_id +----+---------------------+----------- + 1 | MMRnode_a - Row 1-1 | 1 + 2 | MMRnode_a - Row 1-2 | 1 + 3 | MMRnode_a - Row 2-1 | 2 + 4 | MMRnode_a - Row 2-2 | 2 + 5 | MMRnode_a - Row 3-1 | 3 + 6 | MMRnode_a - Row 3-2 | 3 +(6 rows) +``` + +Prior to performing the conversion, obtain the current, maximum sequence value of the sequence to be converted to an MMR-ready sequence. In this example the value is 6 as seen in the id column of table `MMR_seq_child_tbl`. + +This value is needed to set a newly created sequence that is to be used for the MMR-ready sequence, to a large enough starting value to avoid uniqueness conflict with the converted sequence values of the existing rows. + +**Converting Existing Standard Sequence Values** + +In order to convert the existing sequence values in columns `MMR_seq_tbl.id`, `MMR_seq_child_tbl.id`, and `MMR_seq_child_tbl.parent_id` the following steps are performed. + +Permit deferred updates to the foreign key constraint. + +``` text +ALTER TABLE MMR_seq_child_tbl ALTER CONSTRAINT MMR_seq_tbl_fk DEFERRABLE INITIALLY DEFERRED; +``` + +Create the function to perform the sequence conversion. + +``` text +CREATE OR REPLACE FUNCTION MMR_sequence_convert ( + old_seq_value bigint +) +RETURNS bigint +LANGUAGE sql +AS +$function$ +SELECT ( + (SELECT current_setting('cluster.unique_db_id'))::bigint + << 52)::bigint + $1; +$function$; +``` + +Change the sequence columns to data type `BIGINT` so they are large enough for the MMR-ready sequence. + +``` text +ALTER TABLE MMR_seq_tbl ALTER COLUMN id SET DATA TYPE BIGINT; +ALTER TABLE MMR_seq_child_tbl ALTER COLUMN id SET DATA TYPE BIGINT; +ALTER TABLE MMR_seq_child_tbl ALTER COLUMN parent_id SET DATA TYPE BIGINT; +``` + +Set the unique database identifier to be used by the MMR-ready sequence. + +``` text +ALTER DATABASE MMRnode_a SET cluster.unique_db_id TO 1; +SET cluster.unique_db_id TO 1; +``` + +Update the primary key and foreign key values with the `MMR_sequence_convert` function. + +The updates affecting the foreign key constraint must be performed within the same transaction to avoid a foreign key violation error. + +``` text +BEGIN TRANSACTION; + UPDATE MMR_seq_tbl SET id = MMR_sequence_convert (id); + UPDATE MMR_seq_child_tbl SET parent_id = MMR_sequence_convert (parent_id); + UPDATE MMR_seq_child_tbl SET id = MMR_sequence_convert (id); +COMMIT; +``` + +Reset the foreign key constraint back to its original setting – for example: + +``` text +ALTER TABLE MMR_seq_child_tbl ALTER CONSTRAINT MMR_seq_tbl_fk NOT DEFERRABLE; +``` + +After the conversion to the MMR-ready sequence, the table content is as follows: + +``` text +edb=# SELECT * FROM MMR_seq_tbl; + id | field +------------------+------------------- + 4503599627370497 | MMRnode_a - Row 1 + 4503599627370498 | MMRnode_a - Row 2 + 4503599627370499 | MMRnode_a - Row 3 +(3 rows) + +edb=# SELECT * FROM MMR_seq_child_tbl; + id | field | parent_id +------------------+---------------------+------------------ + 4503599627370497 | MMRnode_a - Row 1-1 | 4503599627370497 + 4503599627370498 | MMRnode_a - Row 1-2 | 4503599627370497 + 4503599627370499 | MMRnode_a - Row 2-1 | 4503599627370498 + 4503599627370500 | MMRnode_a - Row 2-2 | 4503599627370498 + 4503599627370501 | MMRnode_a - Row 3-1 | 4503599627370499 + 4503599627370502 | MMRnode_a - Row 3-2 | 4503599627370499 +(6 rows) +``` + +The parent-child foreign key relationship between columns `MMR_seq_child_tbl.parent_id` and `MMR_seq_tbl.id` is maintained. + +The primary key id values incorporate the old sequence values, but are increased by the addition of the 52-bit shifted, database identifier value. + +**Setting Up the MMR-Ready Sequence** + +The steps as described in Section [Creating an MMR-Ready Sequence](../../../06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/#create_mmr_ready_sequence) are now performed on the databases to be used as primary nodes. For database MMRnode\_a that contains the converted tables, a new sequence is created with a starting value of 7 to avoid a primary key uniqueness conflict with the existing rows. In the original tables, the maximum used sequence value was 6. When a sequence number is transformed to an MMR-ready sequence value, the same result is returned if the same database identifier is used with the same original number. + +``` text +CREATE SEQUENCE MMR_seq START WITH 7 INCREMENT BY 1 NO CYCLE; +``` + +Create the function to return the MMR-ready sequence value. + +``` text +CREATE OR REPLACE FUNCTION MMR_sequence_nextval ( + seq_id VARCHAR +) +RETURNS bigint +LANGUAGE sql +AS +$function$ +SELECT ( + (SELECT current_setting('cluster.unique_db_id'))::bigint + << 52)::bigint + + nextval($1::regclass); +$function$; +``` + +Alter the primary key columns to use the function to return the default value. + +``` text +ALTER TABLE MMR_seq_tbl ALTER COLUMN id SET DEFAULT MMR_sequence_nextval('MMR_seq'); +ALTER TABLE MMR_seq_child_tbl ALTER COLUMN id SET DEFAULT MMR_sequence_nextval('MMR_seq'); +``` + +Repeat the MMR-ready sequence setup process for the other primary nodes. + +``` text +ALTER DATABASE MMRnode_b SET cluster.unique_db_id TO 2; +SET cluster.unique_db_id TO 2; + +CREATE SEQUENCE MMR_seq START WITH 1 INCREMENT BY 1 NO CYCLE; + +CREATE OR REPLACE FUNCTION MMR_sequence_nextval ( + seq_id VARCHAR + ) +RETURNS bigint +LANGUAGE sql +AS +$function$ +SELECT ( + (SELECT current_setting('cluster.unique_db_id'))::bigint + << 52)::bigint + + nextval($1::regclass); +$function$; +``` + +Repeat the process for `MMRnode_c`. + +``` text +ALTER DATABASE MMRnode_c SET cluster.unique_db_id TO 3; +SET cluster.unique_db_id TO 3; + +CREATE SEQUENCE MMR_seq START WITH 1 INCREMENT BY 1 NO CYCLE; + +CREATE OR REPLACE FUNCTION MMR_sequence_nextval ( + seq_id VARCHAR +) +RETURNS bigint +LANGUAGE sql +AS +$function$ +SELECT ( + (SELECT current_setting('cluster.unique_db_id'))::bigint + << 52)::bigint + + nextval($1::regclass); +$function$; +``` + +**Tables After Initial Multi-Master Replication System Creation** + +The multi-master replication system is created using databases `MMRnode_a`, `MMRnode_b`, and `MMRnode_c` in a similar manner as described in Section [MMR-Ready Sequence Example](../../../06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/#mmr_ready_example). + +After the system is created with the initial snapshot, `MMRnode_a, MMRnode_b`, and `MMRnode_c` all contain identical content. The following is the table content: + +``` text +MMRnode_a=# SELECT * FROM MMR_seq_tbl; + id | field +------------------+------------------- + 4503599627370497 | MMRnode_a - Row 1 + 4503599627370498 | MMRnode_a - Row 2 + 4503599627370499 | MMRnode_a - Row 3 +(3 rows) + +MMRnode_a=# SELECT * FROM MMR_seq_child_tbl; + id | field | parent_id +------------------+---------------------+------------------ + 4503599627370497 | MMRnode_a - Row 1-1 | 4503599627370497 + 4503599627370498 | MMRnode_a - Row 1-2 | 4503599627370497 + 4503599627370499 | MMRnode_a - Row 2-1 | 4503599627370498 + 4503599627370500 | MMRnode_a - Row 2-2 | 4503599627370498 + 4503599627370501 | MMRnode_a - Row 3-1 | 4503599627370499 + 4503599627370502 | MMRnode_a - Row 3-2 | 4503599627370499 +(6 rows) +``` + +**Subsequent Row Insertions and Synchronization** + +The following rows are inserted on `MMRnode_a`: + +``` text +INSERT INTO MMR_seq_tbl (field) VALUES ('MMRnode_a - Row 4'); +INSERT INTO MMR_seq_child_tbl (field, parent_id) VALUES ('MMRnode_a - Row 4-1', 4503599627370503); + +MMRnode_a=# SELECT * FROM MMR_seq_tbl ORDER BY id; + id | field +------------------+------------------- + 4503599627370497 | MMRnode_a - Row 1 + 4503599627370498 | MMRnode_a - Row 2 + 4503599627370499 | MMRnode_a - Row 3 + 4503599627370503 | MMRnode_a - Row 4 +(4 rows) + +MMRnode_a=# SELECT * FROM MMR_seq_child_tbl ORDER BY id; + id | field | parent_id +------------------+---------------------+------------------ + 4503599627370497 | MMRnode_a - Row 1-1 | 4503599627370497 + 4503599627370498 | MMRnode_a - Row 1-2 | 4503599627370497 + 4503599627370499 | MMRnode_a - Row 2-1 | 4503599627370498 + 4503599627370500 | MMRnode_a - Row 2-2 | 4503599627370498 + 4503599627370501 | MMRnode_a - Row 3-1 | 4503599627370499 + 4503599627370502 | MMRnode_a - Row 3-2 | 4503599627370499 + 4503599627370504 | MMRnode_a - Row 4-1 | 4503599627370503 +(7 rows) +``` + +The following rows are inserted on `MMRnode_b`: + +``` text +INSERT INTO MMR_seq_tbl (field) VALUES ('MMRnode_b - Row 1'); +INSERT INTO MMR_seq_child_tbl (field, parent_id) VALUES ('MMRnode_b - Row 1-1', 9007199254740993); + +MMRnode_b=# SELECT * FROM MMR_seq_tbl ORDER BY id; + id | field +------------------+------------------- + 4503599627370497 | MMRnode_a - Row 1 + 4503599627370498 | MMRnode_a - Row 2 + 4503599627370499 | MMRnode_a - Row 3 + 9007199254740993 | MMRnode_b - Row 1 +(4 rows) + +MMRnode_b=# SELECT * FROM MMR_seq_child_tbl ORDER BY id; + id | field | parent_id +------------------+---------------------+------------------ + 4503599627370497 | MMRnode_a - Row 1-1 | 4503599627370497 + 4503599627370498 | MMRnode_a - Row 1-2 | 4503599627370497 + 4503599627370499 | MMRnode_a - Row 2-1 | 4503599627370498 + 4503599627370500 | MMRnode_a - Row 2-2 | 4503599627370498 + 4503599627370501 | MMRnode_a - Row 3-1 | 4503599627370499 + 4503599627370502 | MMRnode_a - Row 3-2 | 4503599627370499 + 9007199254740994 | MMRnode_b - Row 1-1 | 9007199254740993 +(7 rows) +The following rows are inserted on MMRnode_c: +INSERT INTO MMR_seq_tbl (field) VALUES ('MMRnode_c - Row 1'); +INSERT INTO MMR_seq_child_tbl (field, parent_id) VALUES ('MMRnode_c - Row 1-1', 13510798882111489); + +MMRnode_c=# SELECT * FROM MMR_seq_tbl ORDER BY id; + id | field +-------------------+------------------- + 4503599627370497 | MMRnode_a - Row 1 + 4503599627370498 | MMRnode_a - Row 2 + 4503599627370499 | MMRnode_a - Row 3 + 13510798882111489 | MMRnode_c - Row 1 +(4 rows) + +MMRnode_c=# SELECT * FROM MMR_seq_child_tbl ORDER BY id; + id | field | parent_id +-------------------+---------------------+------------------- + 4503599627370497 | MMRnode_a - Row 1-1 | 4503599627370497 + 4503599627370498 | MMRnode_a - Row 1-2 | 4503599627370497 + 4503599627370499 | MMRnode_a - Row 2-1 | 4503599627370498 + 4503599627370500 | MMRnode_a - Row 2-2 | 4503599627370498 + 4503599627370501 | MMRnode_a - Row 3-1 | 4503599627370499 + 4503599627370502 | MMRnode_a - Row 3-2 | 4503599627370499 + 13510798882111490 | MMRnode_c - Row 1-1 | 13510798882111489 +(7 rows) +``` + +After a synchronization replication is performed, there are no uniqueness conflicts. The following shows the synchronized, consistent tables in the primary nodes: + +Content of `MMRnode_a` after synchronization: + +``` text +MMRnode_a=# SELECT * FROM MMR_seq_tbl ORDER BY id; + id | field +-------------------+------------------- + 4503599627370497 | MMRnode_a - Row 1 + 4503599627370498 | MMRnode_a - Row 2 + 4503599627370499 | MMRnode_a - Row 3 + 4503599627370503 | MMRnode_a - Row 4 + 9007199254740993 | MMRnode_b - Row 1 + 13510798882111489 | MMRnode_c - Row 1 +(6 rows) + +MMRnode_a=# SELECT * FROM MMR_seq_child_tbl ORDER BY id; + id | field | parent_id +-------------------+---------------------+------------------- + 4503599627370497 | MMRnode_a - Row 1-1 | 4503599627370497 + 4503599627370498 | MMRnode_a - Row 1-2 | 4503599627370497 + 4503599627370499 | MMRnode_a - Row 2-1 | 4503599627370498 + 4503599627370500 | MMRnode_a - Row 2-2 | 4503599627370498 + 4503599627370501 | MMRnode_a - Row 3-1 | 4503599627370499 + 4503599627370502 | MMRnode_a - Row 3-2 | 4503599627370499 + 4503599627370504 | MMRnode_a - Row 4-1 | 4503599627370503 + 9007199254740994 | MMRnode_b - Row 1-1 | 9007199254740993 + 13510798882111490 | MMRnode_c - Row 1-1 | 13510798882111489 +(9 rows) +``` + +Content of `MMRnode_b` after synchronization: + +``` text +MMRnode_b=# SELECT * FROM MMR_seq_tbl ORDER BY id; + id | field +-------------------+------------------- + 4503599627370497 | MMRnode_a - Row 1 + 4503599627370498 | MMRnode_a - Row 2 + 4503599627370499 | MMRnode_a - Row 3 + 4503599627370503 | MMRnode_a - Row 4 + 9007199254740993 | MMRnode_b - Row 1 + 13510798882111489 | MMRnode_c - Row 1 +(6 rows) + +MMRnode_b=# SELECT * FROM MMR_seq_child_tbl ORDER BY id; + id | field | parent_id +-------------------+---------------------+------------------- + 4503599627370497 | MMRnode_a - Row 1-1 | 4503599627370497 + 4503599627370498 | MMRnode_a - Row 1-2 | 4503599627370497 + 4503599627370499 | MMRnode_a - Row 2-1 | 4503599627370498 + 4503599627370500 | MMRnode_a - Row 2-2 | 4503599627370498 + 4503599627370501 | MMRnode_a - Row 3-1 | 4503599627370499 + 4503599627370502 | MMRnode_a - Row 3-2 | 4503599627370499 + 4503599627370504 | MMRnode_a - Row 4-1 | 4503599627370503 + 9007199254740994 | MMRnode_b - Row 1-1 | 9007199254740993 + 13510798882111490 | MMRnode_c - Row 1-1 | 13510798882111489 +(9 rows) +``` + +Content of `MMRnode_c` after synchronization: + +``` text +MMRnode_c=# SELECT * FROM MMR_seq_tbl ORDER BY id; + id | field +-------------------+------------------- + 4503599627370497 | MMRnode_a - Row 1 + 4503599627370498 | MMRnode_a - Row 2 + 4503599627370499 | MMRnode_a - Row 3 + 4503599627370503 | MMRnode_a - Row 4 + 9007199254740993 | MMRnode_b - Row 1 + 13510798882111489 | MMRnode_c - Row 1 +(6 rows) + +MMRnode_c=# SELECT * FROM MMR_seq_child_tbl ORDER BY id; + id | field | parent_id +-------------------+---------------------+------------------- + 4503599627370497 | MMRnode_a - Row 1-1 | 4503599627370497 + 4503599627370498 | MMRnode_a - Row 1-2 | 4503599627370497 + 4503599627370499 | MMRnode_a - Row 2-1 | 4503599627370498 + 4503599627370500 | MMRnode_a - Row 2-2 | 4503599627370498 + 4503599627370501 | MMRnode_a - Row 3-1 | 4503599627370499 + 4503599627370502 | MMRnode_a - Row 3-2 | 4503599627370499 + 4503599627370504 | MMRnode_a - Row 4-1 | 4503599627370503 + 9007199254740994 | MMRnode_b - Row 1-1 | 9007199254740993 + 13510798882111490 | MMRnode_c - Row 1-1 | 13510798882111489 +(9 rows) +``` diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/index.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/index.mdx new file mode 100644 index 00000000000..804ba6dc7bf --- /dev/null +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/index.mdx @@ -0,0 +1,27 @@ +--- +title: "Conflict Prevention with an MMR-Ready Sequence" +--- + + + + +To prevent uniqueness conflicts in a multi-master replication system, an MMR-ready sequence can be used to generate unique identifiers for each row of publication tables that do not have an inherent, unique identifier. + +An MMR-ready sequence incorporates a function and a sequence to return `BIGINT` data type, integer values. These values combine a user-assigned, unique database identifier for each primary node with a sequence generated within that primary node. + +A publication table requiring an MMR-ready sequence can be altered to include a `BIGINT` NOT NULL column with a default value returned by the function. + +An MMR-ready sequence satisfies the following characteristics: + +- `Uniqueness`. The combination of the unique, database identifier with the sequence ensures that each row in a given table will have a unique value across all primary nodes. +- `Clustered index support`. An MMR-ready sequence does not impair the usage of a clustered index to provide retrieval efficiency. MMR-ready sequence values are returned in a typical, ordered sequence – not as random values such as if the universally unique identifier (UUID) were used. +- `Effective migration support`. Tables already utilizing a sequence can be modified to use an MMR-ready sequence with minimal impact on existing primary keys and foreign keys. +- `Reliability and maintainability`. In summary, an MMR-ready sequence provides a reliable and maintainable method to avoid uniqueness conflicts. + +The following sections provide the steps for creating an MMR-ready sequence followed by an example. The conversion process for existing sequences is described in Section [Converting a Standard Sequence to an MMR-Ready Sequence](../../06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/#convert_to_mmr_ready). + +
+ +create\_mmr\_ready\_sequence mmr\_ready\_example convert\_to\_mmr\_ready convert\_to\_mmr\_ready\_eg + +
diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/07_auto_conflict_resolution_eg.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/07_auto_conflict_resolution_eg.mdx new file mode 100644 index 00000000000..0729517d232 --- /dev/null +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/07_auto_conflict_resolution_eg.mdx @@ -0,0 +1,92 @@ +--- +title: "Automatic Conflict Resolution Example" +--- + + + + +This example illustrates a scenario where a transaction change originating from the first primary node is successfully applied to the second primary node, but conflicts with the third primary node. The conflict is resolved automatically. + +The conflict resolution option is set to latest timestamp. + +> | | | | | | +> |--------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------|---------------------------------------------|---------------------------------------------| +> | **Timestamp** `t0` | **Action** | **Primary node A** id = 2, address = 'ADDR' | **Primary node B** id = 2, address = 'ADDR' | **Primary node C** id = 2, address = 'ADDR' | +> | `t1` | **Node A:** UPDATE addrbook SET address = 'ADDR A' WHERE id = 2; | id = 2, address = **'ADDR A'** | id = 2, address = 'ADDR' | id = 2, address = 'ADDR' | +> | `t2` | **Node C:** UPDATE addrbook SET address = 'ADDR C' WHERE id = 2; | id = 2, address = 'ADDR A' | id = 2, address = 'ADDR' | id = 2, address = **'ADDR C'** | +> | `t3` | Synchronization pushes Node A changes to Node B. Changes successfully applied. | id = 2, address = 'ADDR A' | id = 2, address = **'ADDR A'** | id = 2, address = 'ADDR C' | +> | `t4` | Synchronization pushes Node A changes to Node C. Current address on Node C <> old value on Node A ('ADDR C' <> 'ADDR') hence conflict detected. Latest change on Node C accepted and Node A change discarded. | id = 2, address = 'ADDR A' | id = 2, address = 'ADDR A' | id = 2, address = **'ADDR C'** | +> | `t5` | No changes on Node B. Node C changes pushed to Node A that is successfully applied (Node A change already marked as discarded and hence is overwritten.) | id = 2, address = **'ADDR C'** | id = 2, address = 'ADDR A' | id = 2, address = 'ADDR C' | +> | `t6` | Node C changes pushed to Node B that is successfully applied. All nodes are in sync and have consistent state. | id = 2, address = 'ADDR C' | id = 2, address = **'ADDR C'** | id = 2, address = 'ADDR C' | +> +> There are a few situations where an update/update conflict may not be properly resolved according to the selected resolution options. These exceptions are described by the following. + +**Update/Update Conflict on Column Where New Value is Identical to Original Value** + +If there is an update to a publication table where the updated column value happens to be the same as the original column value, and then an update/update conflict occurs involving that column, there is the possibility that the final value of this column is not set according to the chosen conflict resolution option in one of the conflicting primary nodes. This is a known limitation. + +For example, consider the following row in the `dept` table: + +``` text +deptno | dname | loc +--------+------------+-------- + 40 | OPERATIONS | BOSTON +First, the following UPDATE statement is given in the primary definition node: +edb=# UPDATE dept SET dname = 'OPERATIONS', loc = 'BEDFORD' WHERE deptno = 40; +UPDATE 1 +edb=# SELECT * FROM dept WHERE deptno = 40; + deptno | dname | loc +--------+------------+--------- + 40 | OPERATIONS | BEDFORD +(1 row) +``` + +
+ +
+ +Note + +
+ +The original value, OPERATIONS, of column `dname` is the same as the value to which it is changed in the `UPDATE` statement. + +
+ +The following `UPDATE` statement is then given in a second primary node: + +``` text +MMRnode=# UPDATE dept SET dname = 'LOGISTICS', loc = 'CAMBRIDGE' WHERE deptno = 40; +UPDATE 1 +MMRnode=# SELECT * FROM dept WHERE deptno = 40; + deptno | dname | loc +--------+-----------+----------- + 40 | LOGISTICS | CAMBRIDGE +(1 row) +``` + +After a synchronization replication using the earliest timestamp conflict resolution option, the row in the primary definition node retains the update performed on it as expected since the update on the primary definition node occurred first. + +``` text +edb=# SELECT * FROM dept WHERE deptno = 40; + deptno | dname | loc +--------+------------+--------- + 40 | OPERATIONS | BEDFORD +(1 row) +``` + +However the value of column `dname` in the second primary node remains set to LOGISTICS. It was not reverted back to the value `OPERATIONS` from the primary definition node as would normally be expected on a conflicting column. Note that as expected, the value in column `loc` is reverted from CAMBRIDGE back to the primary definition node value of `BEDFORD`. + +``` text +MMRnode=# SELECT * FROM dept WHERE deptno = 40; + deptno | dname | loc +--------+-----------+--------- + 40 | LOGISTICS | BEDFORD +(1 row) +``` + +**Update/Update Conflict on Primary Key Columns** + +An update/update conflict on the primary key column may not be consistently resolved according to the selected resolution option. That is, the column values may differ for the same row across multiple primary nodes following the synchronization replication. + +In addition, this conflict may not appear under the Conflict History tab in the xDB Replication Console. Even if a conflict resolution entry does appear under the Conflict History tab, the actual primary key values may not be consistent across the nodes as implied by the conflict resolution. diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/08_custom_conflict_handling/01_custom_conflict_handling_function.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/08_custom_conflict_handling/01_custom_conflict_handling_function.mdx new file mode 100644 index 00000000000..7839257f098 --- /dev/null +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/08_custom_conflict_handling/01_custom_conflict_handling_function.mdx @@ -0,0 +1,113 @@ +--- +title: "Custom Conflict Handling Function" +--- + + + + +An `update/update` conflict occurs if there is at least one conflicting column in the table. + +A column is considered a conflicting column if it is updated on more than one primary node in the same synchronization. Even if the new, updated value for the column is identical in the conflicting update transactions, the fact that the same column was updated on more than one primary node makes it a conflicting column. + +Each publication table must have its own custom conflict handling function to handle custom resolution for update/update conflicts on that particular publication table. + +Custom conflict handling is designed to provide one of the following three outcomes based upon the setting of the resolution\_code parameter, which is described later in this section. + +- **Columns are to be set to the source node.** When the resolution\_code parameter of the function is set to a value of 1, the resultant setting of all columns in both conflicting nodes is obtained from the source node of the replication. +- **Columns are to be set to the target node.** When the resolution\_code parameter of the function is set to a value of 2, the resultant setting of all columns in both conflicting nodes is obtained from the target node of the replication. +- **The function logic sets the column.** When the resolution\_code parameter of the function is set to a value of 3, the resultant setting of the first conflicting column is obtained from the value returned in the source parameter coded within the function logic. The resultant setting of all other column values is obtained from the source node of the replication. + +The following is an example of a custom conflict handling function where the conflicting columns are set to the target node. + +``` text +CREATE OR REPLACE FUNCTION edb.custom_conflict_dept ( + INOUT source _edb_replicator_pub.rrst_edb_dept, + IN target _edb_replicator_pub.rrst_edb_dept, + IN conflict_column VARCHAR(255), + OUT resolution_message VARCHAR(255), + OUT resolution_code INTEGER +) +AS +$$ +DECLARE +BEGIN + resolution_code := 2; + resolution_message := 'Custom conflict handling: Target node wins on edb.dept '; +END; +$$ +LANGUAGE plpgsql; +``` + +If the multi-master replication system is configured with the log-based method of synchronization replication the shadow tables of the `INOUT` source and `IN` target parameters are replaced with the actual publication tables as shown by the following: + +``` text +CREATE OR REPLACE FUNCTION edb.custom_conflict_dept ( + INOUT source edb.dept, + IN target edb.dept, + IN conflict_column VARCHAR(255), + OUT resolution_message VARCHAR(255), + OUT resolution_code INTEGER +) +AS +$$ +DECLARE +BEGIN + resolution_code := 2; + resolution_message := 'Custom conflict handling: Target node wins on edb.dept '; +END; +$$ +LANGUAGE plpgsql; +``` + +The following is an example of a custom conflict handling function where the function logic determines the value of the first conflicting column. + +``` text +CREATE OR REPLACE FUNCTION edb.custom_conflict_emp ( + INOUT source _edb_replicator_pub.rrst_edb_emp, + IN target _edb_replicator_pub.rrst_edb_emp, + IN conflict_column VARCHAR(255), + OUT resolution_message VARCHAR(255), + OUT resolution_code INTEGER +) +AS +$$ +DECLARE +BEGIN + resolution_code := 3; + source.ename := 'Unknown'; + source.job := 'Unknown'; + source.mgr := 0; + source.hiredate := '2013-01-01'; + source.sal := 0; + source.comm := 0; + resolution_message := 'Custom conflict handling: Defaults set on edb.emp'; +END; +$$ +LANGUAGE plpgsql; +``` + +In this example, only the first conflicting column (based upon the column order within the table) is set to the value coded in the function. All other assignments to the source parameter are ignored. These other columns are set to the source node. + +The following is a description of the function parameters. + +**Parameters** + +`source` + +> `INOUT` parameter of the record type of the shadow table in schema `_edb_replicator_pub` of the primary definition node on which conflicts are to be resolved. If the log-based method of synchronization replication is used, specify the actual publication table instead of the shadow table. The input values are the column values from the source node. When resolution\_code is set to a value of 3, set the columns in this parameter to the values that are to be used for the final outcome. + +`target` + +> IN parameter of the record type of the shadow table in schema `_edb_replicator_pub` of the primary definition node on which conflicts are to be resolved. If the log-based method of synchronization replication is used, specify the actual publication table instead of the shadow table. The input values are the column values from the target node. + +`conflict_column` + +> IN parameter of type `VARCHAR(255)` containing the name of the column on which the update/update conflict has occurred. If more than one column is involved in the conflict, the name of the first conflicting column is returned. + +`resolution_message` + +> OUT parameter of type VARCHAR(255) containing any informative message to be written to the publication server log file. The publication server configuration option logging.level must be set to at least the INFO level in order for the messages to appear in the publication server log file. See Section [Post Installation Host Environment](../../../03_installation/#post_installation_host_environment) for the location of the publication server log file. + +`resolution_code` + +> OUT parameter of type INTEGER that you set to one of the following values to determine how to resolve the conflict: 1 to use the column values of the source node of the replication for the final outcome, 2 to use the column values of the target node of the replication for the final outcome, or 3 to use the value set for the source `INOUT` parameter of the first conflicting column as the final outcome for that column. diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/08_custom_conflict_handling/02_adding_custom_conflict_handling_function.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/08_custom_conflict_handling/02_adding_custom_conflict_handling_function.mdx new file mode 100644 index 00000000000..ceefe74ef66 --- /dev/null +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/08_custom_conflict_handling/02_adding_custom_conflict_handling_function.mdx @@ -0,0 +1,62 @@ +--- +title: "Adding a Custom Conflict Handling Function" +--- + + + + +The following are the steps to add a custom conflict handling function to the primary definition node. + +**Step 1:** The publication under the primary definition node must exist before adding the function to the primary definition node. See [Adding a Publication](../../../06_mmr_operation/#add_pub_mmr) for information on creating the publication. + +**Step 2:** Add the function to the primary definition node. The following example shows the addition of the function using PSQL. + +``` text +edb=# \i /home/user/custom_conflict_dept.sql +CREATE FUNCTION +``` + +**Step 3:** Open the `Conflict Resolution Options` tab in any of the following ways: + +![Opening the Conflict Resolution Options tab](/../../../images/image139.png) + +- From the `Publication` menu, choose `Update Publication`, then `Conflict Resolution Options`. +- Click the secondary mouse button on the Publication node, choose `Update Publication`, and then choose `Conflict Resolution Options`. + +**Step 4:** For the table on which you want to use custom conflict handling, select Custom from the appropriate drop-down list. In the Custom Handler text box, enter the schema and function name used in the `CREATE FUNCTION` statement. + +![Setting conflict resolution to custom conflict handling](/../../../images/image140.png) + +**Step 5:** Click the `Update` button, and then click `OK` in response to the `Conflict Resolution Options Updated Successfully` confirmation message. + +![Successfully updated conflict resolution options](/../../../images/image141.png) + +
+ +
+ +Note + +
+ +If the multi-master replication system uses custom conflict handling, and you subsequently switch the role of the primary definition node to another primary node, you must re-add the functions to the new primary definition node. That is, you must repeat Step 2 on the new primary definition node. + +
+ +
+ +
+ +Note + +
+ +If you wish to delete the multi-master replication system, before removing the publication you must drop all custom conflict handling functions from the primary definition node. + +
+ +The following example shows the deletion of a custom conflict function. + +``` text +DROP FUNCTION edb.custom_conflict_dept(_edb_replicator_pub.rrst_edb_dept,_edb_replicator_pub.rrst_edb_dept,varchar); +``` diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/08_custom_conflict_handling/03_custom_conflict_handling_examples.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/08_custom_conflict_handling/03_custom_conflict_handling_examples.mdx new file mode 100644 index 00000000000..619426b860b --- /dev/null +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/08_custom_conflict_handling/03_custom_conflict_handling_examples.mdx @@ -0,0 +1,296 @@ +--- +title: "Custom Conflict Handling Examples" +--- + + + + +This section contains examples using custom conflict handling functions. + +**Setting Columns from the Source or Target** + +The following example shows the effect of custom conflict handling using the custom conflict handling function named `custom_conflict_dept` shown in Section [Custom Conflict Handling Function](../../../06_mmr_operation/06_conflict_resolution/08_custom_conflict_handling/#custom_conflict_handling_function). This function sets the target node as the winner of `update/update` conflicts on the dept table. + +The following update is made on the primary definition node, `edb`: + +``` text +edb=# UPDATE dept SET loc = 'PORTLAND' WHERE deptno = 50; +UPDATE 1 +edb=# SELECT * FROM dept; + deptno | dname | loc +--------+-------------+---------- + 10 | ACCOUNTING | NEW YORK + 20 | RESEARCH | DALLAS + 30 | SALES | CHICAGO + 40 | OPERATIONS | BOSTON + 50 | ADVERTISING | PORTLAND +(5 rows) +``` + +The following update is made on a second primary node, `MMRnode`: + +``` text +MMRnode=# UPDATE dept SET loc = 'LOS ANGELES' WHERE deptno = 50; +UPDATE 1 +MMRnode=# SELECT * FROM dept; + deptno | dname | loc +--------+-------------+------------- + 10 | ACCOUNTING | NEW YORK + 20 | RESEARCH | DALLAS + 30 | SALES | CHICAGO + 40 | OPERATIONS | BOSTON + 50 | ADVERTISING | LOS ANGELES +(5 rows) +``` + +After a synchronization replication, the update/update conflict is detected and resolved as shown in the Conflict History tab: + +![Conflict resolved by custom conflict handling](/../../../images/image142.png) + +In the source primary node the `loc` column of department 50 loses the value set in its UPDATE statement. The column is reset to the value from the target primary node. + +``` text +edb=# SELECT * FROM dept; + deptno | dname | loc +--------+-------------+------------- + 10 | ACCOUNTING | NEW YORK + 20 | RESEARCH | DALLAS + 30 | SALES | CHICAGO + 40 | OPERATIONS | BOSTON + 50 | ADVERTISING | LOS ANGELES +(5 rows) +``` + +In the target primary node the `loc` column of department 50 retains the value set from its `UPDATE` statement. + +``` text +MMRnode=# SELECT * FROM dept; + deptno | dname | loc +--------+-------------+------------- + 10 | ACCOUNTING | NEW YORK + 20 | RESEARCH | DALLAS + 30 | SALES | CHICAGO + 40 | OPERATIONS | BOSTON + 50 | ADVERTISING | LOS ANGELES +(5 rows) +``` + +The target node wins the conflict as determined by the setting of the resolution\_code parameter to a value of 2 in the custom conflict handling function. + +**Setting Columns from the Function Logic** + +The following example shows the effect of custom conflict handling using the custom conflict handling function named `custom_conflict_emp` shown in Section [Custom Conflict Handling Function](../../../06_mmr_operation/06_conflict_resolution/08_custom_conflict_handling/#custom_conflict_handling_function). This function sets values coded in the function as the winner of update/update conflicts on the `emp` table. + +The following is the row from the `emp` table prior to the update: + +``` text +edb=# edb=# SELECT * FROM emp WHERE empno = 9001; + empno | ename | job | mgr | hiredate | sal | comm | deptno +-------+-------+----------+------+--------------------+---------+---------+-------- + 9001 | SMITH | SALESMAN | 7698 | 31-OCT-13 00:00:00 | 8000.00 | 4000.00 | 30 +(1 row) +``` + +The following update is made in the primary definition node, `edb`: + +``` text +edb=# UPDATE emp SET ename = 'JONES', mgr = 7900, sal = 8500, comm = 5000 WHERE empno = 9001; +UPDATE 1 +edb=# SELECT * FROM emp WHERE empno = 9001; + empno | ename | job | mgr | hiredate | sal | comm | deptno +-------+-------+----------+------+--------------------+---------+---------+-------- + 9001 | JONES | SALESMAN | 7900 | 31-OCT-13 00:00:00 | 8500.00 | 5000.00 | 30 +(1 row) +``` + +The following update is made in a second primary node, `MMRnode`: + +``` text +MMRnode=# UPDATE emp SET ename = 'ROGERS', mgr = 7788, sal = 9500, comm = 5000 WHERE empno = 9001; +UPDATE 1 +MMRnode=# SELECT * FROM emp WHERE empno = 9001; + empno | ename | job | mgr | hiredate | sal | comm | deptno +-------+--------+----------+------+--------------------+---------+---------+-------- + 9001 | ROGERS | SALESMAN | 7788 | 31-OCT-13 00:00:00 | 9500.00 | 5000.00 | 30 +(1 row) +``` + +After the synchronization replication the primary node, `edb`, contains the following values for the conflicting row: + +``` text +edb=# SELECT * FROM emp WHERE empno = 9001; +empno | ename | job | mgr | hiredate | sal | comm | deptno +-------+---------+----------+------+--------------------+---------+---------+-------- + 9001 | Unknown | SALESMAN | 7900 | 31-OCT-31 00:00:00 | 8500.00 | 5000.00 | 30 +(1 row) +``` + +After the synchronization replication the primary node, `MMRnode`, contains the following values for the conflicting row: + +``` text +MMRnode=# SELECT * FROM emp WHERE empno = 9001; +empno | ename | job | mgr | hiredate | sal | comm | deptno +-------+---------+----------+------+--------------------+---------+---------+-------- + 9001 | Unknown | SALESMAN | 7900 | 31-OCT-31 00:00:00 | 8500.00 | 5000.00 | 30 +(1 row) +``` + +The value of the first conflicting column is determined by the custom conflict handling function for both primary nodes. + +**Setting Columns Using the Source and Target Shadow Tables** + +The following example shows how values from the source and target shadow tables can be used to set the final values in the conflicting column. + +
+ +
+ +Note + +
+ +As this custom conflict handling function uses a column (`rrep_old_quantity` in this example) that is a column of the shadow table and not of the actual publication table, this particular solution cannot be used for a publication using the log-based method of synchronization replication. + +
+ +For this example, the following table is used, which contains product inventory. + +``` text +CREATE TABLE inventory ( + item_id NUMERIC PRIMARY KEY, + name VARCHAR(20), + quantity INTEGER +); +INSERT INTO inventory VALUES (1, 'LaserJet Printer 610', 50); +INSERT INTO inventory VALUES (2, 'Scanner 510', 10); +INSERT INTO inventory VALUES (3, 'LCD', 20); +``` + +When products are purchased at different locations, resulting in an inventory reduction on several primary nodes, the remaining inventory must be properly updated on all primary nodes to reflect the reduction in all locations. The custom conflict handling function is coded to properly record the remaining inventory if changes to the same item are made in several locations. + +The following example uses primary definition node, `edb`, and a second primary node, `MMRnode`. Initially, the inventory table has the same contents on both primary nodes. + +``` text +edb=# SELECT * FROM inventory; + item_id | name | quantity +---------+----------------------+---------- + 1 | LaserJet Printer 610 | 50 + 2 | Scanner 510 | 10 + 3 | LCD | 20 +(3 rows) +``` + +After creation of the primary nodes, the following shows the resulting shadow table structures in the primary definition node: + +``` text +edb=# \d _edb_replicator_pub.rrst_edb_inventory; + Table "_edb_replicator_pub.rrst_edb_inventory" + Column | Type | Modifiers +-------------------------+-----------------------------+--------------------------- + rrep_sync_id | numeric | not null + rrep_common_id | numeric | + rrep_operation_type | character(1) | + rrep_tx_timestamp | timestamp without time zone | default current_timestamp + item_id | numeric | + name | character varying(20) | + quantity | integer | + rrep_old_item_id | numeric | + rrep_old_name | character varying(20) | + rrep_old_quantity | integer | + rrep_tx_conflict_status | character(1) | +Indexes: + "rrst_edb_inventory_pkey" PRIMARY KEY, btree (rrep_sync_id) +``` + +Similarly, in the second primary node the same shadow table is created. + +``` text +MMRnode=# \d _edb_replicator_pub.rrst_edb_inventory + Table "_edb_replicator_pub.rrst_edb_inventory" + Column | Type | Modifiers +-------------------------+-----------------------------+--------------------------- + rrep_sync_id | numeric | not null + rrep_common_id | numeric | + rrep_operation_type | character(1) | + rrep_tx_timestamp | timestamp without time zone | default current_timestamp + item_id | numeric | + name | character varying(20) | + quantity | integer | + rrep_old_item_id | numeric | + rrep_old_name | character varying(20) | + rrep_old_quantity | integer | + rrep_tx_conflict_status | character(1) | +Indexes: + "rrst_edb_inventory_pkey" PRIMARY KEY, btree (rrep_sync_id) +``` + +For an update transaction, the shadow table contains the column values before the update was made on the publication table (columns with names `rrep_old_column_name`) and the values after the update was applied (columns named identically to the publication table column names). + +The custom conflict handling function uses both the current and old values of the quantity columns from the source and target shadow tables as shown by the following. + +``` text +CREATE OR REPLACE FUNCTION edb.custom_conflict_inventory ( + INOUT source _edb_replicator_pub.rrst_edb_inventory, + IN target _edb_replicator_pub.rrst_edb_inventory, + IN conflict_column VARCHAR(255), + OUT resolution_message VARCHAR(255), + OUT resolution_code INTEGER +) +AS +$$ +DECLARE +BEGIN + source.quantity := source.rrep_old_quantity + - ((source.rrep_old_quantity - source.quantity) + + (target.rrep_old_quantity - target.quantity)); + resolution_code := 3; + resolution_message := 'Custom conflict handling: Quantity adjusted'; +END; +$$ +LANGUAGE plpgsql; +``` + +Assume two items with `item_id` of 1 are purchased on the primary definition node: + +``` text +edb=# UPDATE inventory SET quantity = quantity - 2 WHERE item_id = 1; +UPDATE 1 +edb=# SELECT * FROM inventory WHERE item_id = 1; + item_id | name | quantity +---------+----------------------+---------- + 1 | LaserJet Printer 610 | 48 +(1 row) +``` + +Also assume one item with `item_id` of 1 is purchased from the second primary node: + +``` text +MMRnode=# UPDATE inventory SET quantity = quantity - 1 WHERE item_id = 1; +UPDATE 1 +MMRnode=# SELECT * FROM inventory WHERE item_id = 1; + item_id | name | quantity +---------+----------------------+---------- + 1 | LaserJet Printer 610 | 49 +(1 row) +``` + +After the synchronization replication and invocation of the custom conflict handling function, the quantity column for `item_id` 1 is correctly set to 47 in both primary nodes: + +``` text +edb=# SELECT * FROM inventory WHERE item_id = 1; + item_id | name | quantity +---------+----------------------+---------- + 1 | LaserJet Printer 610 | 47 +(1 row) + +edb=# \c MMRnode MMRuser +Password for user MMRuser: +You are now connected to database "MMRnode" as user "MMRuser". +MMRnode=# SET search_path TO edb; +SET +MMRnode=# SELECT * FROM inventory WHERE item_id = 1; + item_id | name | quantity +---------+----------------------+---------- + 1 | LaserJet Printer 610 | 47 +(1 row) +``` diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/08_custom_conflict_handling/index.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/08_custom_conflict_handling/index.mdx new file mode 100644 index 00000000000..62efd18311b --- /dev/null +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/08_custom_conflict_handling/index.mdx @@ -0,0 +1,16 @@ +--- +title: "Custom Conflict Handling" +--- + + + + +For `update/update` conflicts, custom conflict handling utilizes a PL/pgSQL function to resolve the conflict. If you are using Advanced Server, a Stored Procedure Language (SPL) function can be used as well. When an update/update conflict is detected the function is called. How you set a certain parameter in the function determines the outcome of the conflict. + +You must provide the function and add it to the primary definition node using a utility such as PSQL or pgAdmin (Postgres Enterprise Manager Client in Advanced Server). + +
+ +custom\_conflict\_handling\_function adding\_custom\_conflict\_handling\_function custom\_conflict\_handling\_examples + +
diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/01_find_conflict.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/01_find_conflict.mdx new file mode 100644 index 00000000000..fa58a7cc84f --- /dev/null +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/01_find_conflict.mdx @@ -0,0 +1,85 @@ +--- +title: "Finding Conflicts" +--- + + + + +Conflicts can be found using the `Conflict History` tab as described in Section [Viewing Conflict History](../../../06_mmr_operation/#view_conflict_history). The following is an example of the Conflict History tab. Click the Refresh button to reveal all of the latest conflicts. + +![Conflict History tab for trigger-based method](/../../../images/image143.png) + +The `Source DB` and `Target DB` columns provide the IP address and database names of the source and target primary nodes involved in the conflict. + +Click the `View Data link` to show the details of the transactions involved in a particular conflict as shown by the following: + +![Conflict Details window](/../../../images/image144.png) + +You can also obtain this information from a SQL query rather than from the xDB Replication Console graphical user interface. The following query can be run from a primary node to display information regarding pending (unresolved) conflicts: + +``` text +SELECT DISTINCT + conflict_type, + t.table_name, + pk_value, + d1.db_host AS src_db_host, + d1.db_port AS src_db_port, + d1.db_name AS src_db_name, + src_rrep_sync_id, + d2.db_host AS target_db_host, + d2.db_port AS target_db_port, + d2.db_name AS target_db_name, + target_rrep_sync_id, + c.notes +FROM _edb_replicator_pub.xdb_conflicts c + JOIN _edb_replicator_pub.xdb_pub_database d1 ON c.src_db_id = d1.pub_db_id + JOIN _edb_replicator_pub.xdb_pub_database d2 ON c.target_db_id = d2.pub_db_id + JOIN _edb_replicator_pub.rrep_tables t ON c.table_id = t.table_id +WHERE resolution_status = 'P' +ORDER BY t.table_name; +``` + +Example output from the query is shown by the following: + +``` text +-[ RECORD 1 ]-------+---------------------------------------------------------------- +conflict_type | II +table_name | dept +pk_value | deptno=50 +src_db_host | 192.168.2.22 +src_db_port | 5444 +src_db_name | edb +src_rrep_sync_id | 2 +target_db_host | 192.168.2.22 +target_db_port | 5444 +target_db_name | MMRnode +target_rrep_sync_id | 0 +notes | ERROR: duplicate key value violates unique constraint "dept_pk" + | Detail: Key (deptno)=(50) already exists. +-[ RECORD 2 ]-------+---------------------------------------------------------------- +conflict_type | II +table_name | dept +pk_value | deptno=50 +src_db_host | 192.168.2.22 +src_db_port | 5444 +src_db_name | MMRnode +src_rrep_sync_id | 1 +target_db_host | 192.168.2.22 +target_db_port | 5444 +target_db_name | edb +target_rrep_sync_id | 0 +notes | ERROR: duplicate key value violates unique constraint "dept_pk" + | Detail: Key (deptno)=(50) already exists. +-[ RECORD 3 ]-------+---------------------------------------------------------------- +conflict_type | DU +table_name | emp +pk_value | +src_db_host | 192.168.2.22 +src_db_port | 5444 +src_db_name | edb +src_rrep_sync_id | 5 +target_db_host | 192.168.2.22 +target_db_port | 5444 +target_db_name | MMRnode +target_rrep_sync_id | 4 +``` diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/02_conflict_resolution_prep.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/02_conflict_resolution_prep.mdx new file mode 100644 index 00000000000..aa4db222129 --- /dev/null +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/02_conflict_resolution_prep.mdx @@ -0,0 +1,39 @@ +--- +title: "Conflict Resolution Preparation" +--- + + + + +The following describes the setup of a database user with certain properties enabling you to modify the publication table rows for the purpose of manual conflict resolution. + +Manual conflict resolution typically requires modification of rows in one or more publication tables to correct erroneous entries. Such changes can be done using a utility such as PSQL or pgAdmin (Postgres Enterprise Manager Client in Advanced Server). + +Manual publication table corrections must usually be isolated – that is, these modifications must be limited to the publication tables you are directly changing and must not be replicated to the other primary nodes as would normally occur in the multi-master replication system. + +To prevent replication of changes to a publication table from occurring, the xDB Replication Server insert, update, and delete triggers on the publication tables must be prevented from firing when you make these corrections to the publication table rows. If any of the insert, update, or delete triggers fire, an entry is added to the publication table’s shadow table. This entry results in a transaction replicated to the other primary nodes the next time synchronization replication occurs. + +To prevent the triggers on the publication tables from firing, during the session in which you modify the publication table rows, the database server configuration parameter session\_replication\_role must be set to a value of `replica`. (The default setting of `session_replication_role` is `origin` in which case the triggers will fire.) + +The suggested method to ensure the `replica` setting is in effect is to create a database user with a default session setting of `replica` for this parameter. Whenever you connect to a database with this database user, the `replica` setting will be in effect during this session. + +Connect to a primary node with this database user whenever you plan to make manual corrections to the publication tables in that particular node that are not to be replicated to the other primary nodes. + +In the following example database superuser `MMRmaint` is created and altered for this purpose: + +``` text +MMRnode_a=# CREATE ROLE MMRmaint WITH LOGIN SUPERUSER PASSWORD 'password'; +CREATE ROLE +MMRnode_a=# ALTER ROLE MMRmaint SET session_replication_role TO replica; +ALTER ROLE +``` + +When connected to a database with this database user, you can confirm this setting is in effect during the session by issuing the following command: + +``` text +MMRnode_a=# SHOW session_replication_role; + session_replication_role +-------------------------- + replica +(1 row) +``` diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/03_overview_correction_strategies.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/03_overview_correction_strategies.mdx new file mode 100644 index 00000000000..32f0ee750e1 --- /dev/null +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/03_overview_correction_strategies.mdx @@ -0,0 +1,146 @@ +--- +title: "Overview of Correction Strategies" +--- + + + + +Before you begin manual resolution correction, it is important to determine the extent of the inconsistencies that may have occurred in the publication tables across the primary nodes of the replication system. + +The Conflict History tab and the SQL query described in Section [Finding Conflicts](../../../06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/#find_conflict) can help determine the source of an initial conflict. + +However, once this conflict has occurred, your replication system may have processed and replicated additional transactions during that synchronization operation. Some of these subsequent replications may have succeeded as expected, but others may have failed or produced unexpected results as a consequence of the prior conflict. + +If you have a replication schedule in effect, additional synchronization operations can occur, which may create additional conflicts. + +Therefore, when you have discovered that a conflict has occurred, it is strongly recommended that you stop the publication server. Use the stop option of the Linux scripts or Windows services described in Step 1 of Section [Registering a Publication Server](../../../05_smr_operation/02_creating_publication/#registering_publication_server). + +In this way, you can carefully analyze the content of the publication tables in question as well as any pending transactions in the shadow tables to determine the best course of action to take without the interference of continuing updates by a running replication system. + +When analyzing your tables you must determine the following: + +- Which publication tables contain inconsistent rows across primary nodes (that is, missing rows on some primary nodes, or rows with different column values for the same primary key on different primary nodes). +- Which pending transactions in the shadow tables have not been applied to the publication tables across all primary nodes. Pending transactions are denoted by a value of P in the `rrep_tx_conflict_status` column of the shadow table. +- Which transactions on the publication tables have occurred and are recorded in the shadow tables following the initial conflict, and whether or not these transactions have been applied completely and correctly to the publication tables across all primary nodes. These transactions may not be marked as pending. Instead their `rrep_tx_conflict_status` column could be set to null meaning that no specific conflict was detected during replication, or the transaction has not yet been replicated. These transactions can be identified because they have a later `rrep_tx_timestamp` value than the transactions causing the initial conflict. + +The general steps to resolving the problem following this analysis are the following: + +**Step 1:** Make the necessary manual corrections to the rows in the publication tables across all primary nodes to get them into an initial, consistent state so each publication table has the same set of identical rows across primary nodes. This may be to a state before the conflicting transactions occurred, depending upon what you determine to be the easiest course of action for fully resolving the conflict. + +**Step 2:** Apply or reapply transactions (either from your application or from the shadow tables) so that all publication tables across all primary nodes are updated consistently according to the desired, expected result of what has been recorded in the shadow tables. + +**Step 3:** In the shadow tables, update certain indicators for conflicting entries to show that these were resolved in Step 2. + +**Step 4:** In the control schema, update certain indicators for the conflicting entries to show that these conflicts have been resolved. This update changes the Resolution Status of these entries to Resolved in the Conflict History tab. These entries will no longer appear in the SQL query described in Section [Finding Conflicts](../../../06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/#find_conflict). + +Perform the Step 4 updates to the control schema of the controller database. The currently designated controller database can be determined from the content of the xDB Replication Configuration file (see Section [xDB Replication Configuration File](../../../02_overview/03_replication_server_components_and_architecture/#xdb_replication_conf_file)). The publication server ensures that the control schema changes made on the controller database are replicated to the control schemas of all publication databases to maintain metadata consistency across all publication databases. + +**Step 5:** Resume operation of your replication system. Start the publication server and recreate the replication schedule if you were using one. + +For accomplishing steps 1 and 2, use some combination of the following methods. Which methods you use depend upon the state of your publication tables and the extent of pending transactions that need to be applied from the shadow tables. + +- Manual Publication Table Correction. Use a utility such as PSQL or pgAdmin (Postgres Enterprise Manager Client in Advanced Server) to manually correct the rows in the publication tables across all primary nodes without replicating these changes. Use the database user with `session_replication_role` set to `replica` for this purpose. +- Correction Using New Transactions. Rerun your application on one primary node to create new transactions that you will allow to replicate to all other primary nodes. Use this method after you have ensured that all publication tables are in a consistent state across all primary nodes. +- Correction Using Shadow Table Transactions. Force the synchronization of transactions already recorded in the shadow tables. Use this method if there are many shadow table transactions that need to be applied, and it is simpler to force the synchronization of these transactions rather than reissuing the transactions from your application. + +Each of these methods is described in more detail in the following sections. + +For purposes of illustration, the following replication environment is used. + +- A 3-node multi-master replication system has been established. The primary node names are `MMRnode_a` (the primary definition node and the controller database), `MMRnode_b`, and `MMRnode_c`. +- The publication is named `emp_pub` and uses the dept and `emp` tables that have been used as examples throughout this document. +- The conflict used to illustrate the first two conflict resolution methods is a uniqueness conflict occurring on the dept table on primary key column `deptno` on value 50 resulting from the `INSERT` statements shown by the following: + +On `MMRnode_a`, the following statement is run: + +``` text +INSERT INTO dept VALUES (50, 'FINANCE', 'CHICAGO'); +``` + +On `MMRnode_b`, the following statement is run: + +``` text +INSERT INTO dept VALUES (50, 'MARKETING', 'LOS ANGELES'); +``` + +A synchronization replication is then performed. + +The following is the content of table dept on `MMRnode_a`: + +``` text +MMRnode_a=# SELECT * FROM dept; + deptno | dname | loc +--------+------------+---------- + 10 | ACCOUNTING | NEW YORK + 20 | RESEARCH | DALLAS + 30 | SALES | CHICAGO + 40 | OPERATIONS | BOSTON + 50 | FINANCE | CHICAGO +(5 rows) +``` + +The following is the content of table dept on `MMRnode_b`: + +``` text +MMRnode_b=# SELECT * FROM dept; + deptno | dname | loc +--------+------------+------------- + 10 | ACCOUNTING | NEW YORK + 20 | RESEARCH | DALLAS + 30 | SALES | CHICAGO + 40 | OPERATIONS | BOSTON + 50 | MARKETING | LOS ANGELES +(5 rows) +``` + +The following is the content of table dept on `MMRnode_c`: + +``` text +MMRnode_c=# SELECT * FROM dept; + deptno | dname | loc +--------+------------+---------- + 10 | ACCOUNTING | NEW YORK + 20 | RESEARCH | DALLAS + 30 | SALES | CHICAGO + 40 | OPERATIONS | BOSTON +(4 rows) +``` + +The Conflict History tab shows the following entry: + +![Conflict History tab with a uniqueness conflict](/../../../images/image145.png) + +The following is the output from the SQL query described in Section [Finding Conflicts](../../../06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/#find_conflict). + +``` text +-[ RECORD 1 ]-------+---------------------------------------------------------------- +conflict_type | II +table_name | dept +pk_value | deptno=50 +src_db_host | 192.168.2.22 +src_db_port | 5444 +src_db_name | MMRnode_a +src_rrep_sync_id | 2 +target_db_host | 192.168.2.22 +target_db_port | 5444 +target_db_name | MMRnode_b +target_rrep_sync_id | 0 +notes | ERROR: duplicate key value violates unique constraint "dept_pk" + | Detail: Key (deptno)=(50) already exists. +-[ RECORD 2 ]-------+---------------------------------------------------------------- +conflict_type | II +table_name | dept +pk_value | deptno=50 +src_db_host | 192.168.2.22 +src_db_port | 5444 +src_db_name | MMRnode_b +src_rrep_sync_id | 1 +target_db_host | 192.168.2.22 +target_db_port | 5444 +target_db_name | MMRnode_a +target_rrep_sync_id | 0 +notes | ERROR: duplicate key value violates unique constraint "dept_pk" + | Detail: Key (deptno)=(50) already exists. +``` + +The following sections describe the application of different methods to resolve this conflict. diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/04_manual_publication_table_correction.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/04_manual_publication_table_correction.mdx new file mode 100644 index 00000000000..c55c2992c27 --- /dev/null +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/04_manual_publication_table_correction.mdx @@ -0,0 +1,387 @@ +--- +title: "Manual Publication Table Correction" +--- + + + + +The first step required in all manual conflict resolutions is to ensure all publication tables are consistent across all primary nodes – that is, all corresponding tables have the same rows with the same column values. + +Once this state is achieved, you can then reapply transactions that may have failed to replicate successfully. + +In the preceding example, the inconsistencies are the following: + +- Primary nodes `MMRnode_a` and `MMRnode_b` each contain a row with primary key value 50, but the other column values in the row are different. +- Primary node `MMRnode_c` does not have a row with primary key value 50. + +Assuming that the correct state of the dept table should be the one in MMRnode\_b, the following options are available to correct the state of all primary nodes: + +- Manually correct the dept table in `MMRnode_a` and `MMRnode_c`. That is, update the row in `MMRnode_a` so it has the correct values, and insert the missing row in `MMRnode_c`. The dept table on all nodes is now consistent and up-to-date. +- Manually delete the row with primary key value 50 from the table on both `MMRnode_a` and `MMRnode_b`. This brings the dept table on all primary nodes back to a prior, consistent state. Then, with the multi-master replication system running, perform the insert transaction again using the correct column values on any one of the primary nodes. +- Manually delete the incorrect row with primary key value 50 from the table on `MMRnode_a`. Leave the correct row in the table in `MMRnode_b`. This simulates the state where the correct transaction was run on `MMRnode_b`, is recorded in the shadow table, but has not yet been replicated, and the incorrect transaction was never run on `MMRnode_a`. Update the shadow table entry in `MMRnode_a` to indicate that it is discarded and to ensure it is not included in any future synchronizations. Update the metadata for the shadow table entry in `MMRnode_b` to force its inclusion in the next synchronization. Perform a synchronization replication so the accepted shadow table entry in `MMRnode_b` is replicated to `MMRnode_a` and `MMRnode_c`. + +After the publication table rows are corrected, update the appropriate control schema table in the publication database currently designated as the controller database to indicate that the conflict has been resolved. + +Each of the methods outlined in the preceding bullet points are described in more detail in the following sections. (The method described by the third bullet point is illustrated using a slightly more complex example on the `emp` table.) + +The method outlined by the first bullet point is accomplished as follows. + +**Step 1:** Manually correct the rows in the publication tables with `session_replication_role` set to `replica`. + +On `MMRnode_a`, correct the erroneous row: + +``` text +MMRnode_a=# SHOW session_replication_role; + session_replication_role +-------------------------- + replica +(1 row) + + +MMRnode_a=# SELECT * FROM dept; + deptno | dname | loc +--------+------------+---------- + 10 | ACCOUNTING | NEW YORK + 20 | RESEARCH | DALLAS + 30 | SALES | CHICAGO + 40 | OPERATIONS | BOSTON + 50 | FINANCE | CHICAGO +(5 rows) + + +MMRnode_a=# UPDATE dept SET dname = 'MARKETING', loc = 'LOS ANGELES' WHERE deptno = 50; +UPDATE 1 +MMRnode_a=# SELECT * FROM dept ORDER BY deptno; + deptno | dname | loc +--------+------------+------------- + 10 | ACCOUNTING | NEW YORK + 20 | RESEARCH | DALLAS + 30 | SALES | CHICAGO + 40 | OPERATIONS | BOSTON + 50 | MARKETING | LOS ANGELES +(5 rows) +``` + +On `MMRnode_c`, insert the missing row: + +``` text +MMRnode_c=# SHOW session_replication_role; + session_replication_role +-------------------------- + replica +(1 row) + + +MMRnode_c=# INSERT INTO dept VALUES (50, 'MARKETING', 'LOS ANGELES'); +INSERT 0 1 +MMRnode_c=# SELECT * FROM dept ORDER BY deptno; + deptno | dname | loc +--------+------------+------------- + 10 | ACCOUNTING | NEW YORK + 20 | RESEARCH | DALLAS + 30 | SALES | CHICAGO + 40 | OPERATIONS | BOSTON + 50 | MARKETING | LOS ANGELES +(5 rows) +``` + +The dept table on `MMRnode_a` and `MMRnode_c` now match the content of the table on `MMRnode_b`: + +``` text +MMRnode_b=# SELECT * FROM dept ORDER BY deptno; + deptno | dname | loc +--------+------------+------------- + 10 | ACCOUNTING | NEW YORK + 20 | RESEARCH | DALLAS + 30 | SALES | CHICAGO + 40 | OPERATIONS | BOSTON + 50 | MARKETING | LOS ANGELES +(5 rows) +``` + +**Step 2:** Update the shadow table entries for the conflicting transactions in the primary nodes to indicate that the conflict has been resolved. In each primary node where a transaction occurred that is involved in the conflict, inspect the shadow table for the publication table in question. Shadow tables are located in each primary node in schema `_edb_replicator_pub`. Shadow tables follow the naming convention `rrst_schema_table` where schema is the name of the schema containing the publication table and table is the name of the publication table. + +Note the following points regarding shadow tables: + +- A row in a shadow table corresponds to an `INSERT, UPDATE`, or `DELETE` statement that is applied to the corresponding publication tables in the other primary nodes. A shadow table row does not necessarily correspond to the SQL statement issued by the user application. For example, a SQL statement issued by a user application that includes a WHERE clause using a range such as greater than or less than, results in multiple, individual entries in the shadow table for each individual row in the result set of the application’s SQL statement. +- The primary key of a shadow table is a program generated, positive integer in `column rrep_sync_id`. The `rrep_sync_id` values are unique amongst all shadow tables within a given primary node. Therefore, the `rrep_sync_id` values for conflicting transactions may or may not have the same value across primary nodes as this depends upon how many prior transactions were recorded in the shadow tables of each primary node. +- A shadow table entry for a transaction involved in a conflict that has not yet been resolved contains a value of P (pending) in column `rrep_tx_conflict_status`. If a transaction is not involved in a conflict, this column is set to null. (The vast majority of shadow table entries should have null in this column.) If a transaction was involved in a conflict that was resolved automatically by the publication server, and this transaction was accepted as being correct, this column contains C (complete/accepted). If a transaction was involved in a conflict that was resolved automatically, and this transaction was deemed incorrect, this column contains D (discarded). + +To find the shadow table entries involved in a conflict, use the Conflict History tab or SQL query as described in Section [Finding Conflicts](../../../06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/#finding_conflict) and shown by the following output: + +``` text +-[ RECORD 1 ]-------+---------------------------------------------------------------- +conflict_type | II +table_name | dept +pk_value | deptno=50 +src_db_host | 192.168.2.22 +src_db_port | 5444 +src_db_name | MMRnode_a +src_rrep_sync_id | 2 +target_db_host | 192.168.2.22 +target_db_port | 5444 +target_db_name | MMRnode_b +target_rrep_sync_id | 0 +notes | ERROR: duplicate key value violates unique constraint "dept_pk" + | Detail: Key (deptno)=(50) already exists. +-[ RECORD 2 ]-------+---------------------------------------------------------------- +conflict_type | II +table_name | dept +pk_value | deptno=50 +src_db_host | 192.168.2.22 +src_db_port | 5444 +src_db_name | MMRnode_b +src_rrep_sync_id | 1 +target_db_host | 192.168.2.22 +target_db_port | 5444 +target_db_name | MMRnode_a +target_rrep_sync_id | 0 +notes | ERROR: duplicate key value violates unique constraint "dept_pk" + | Detail: Key (deptno)=(50) already exists. +``` + +You can then query the shadow table in the desired primary node on its `rrep_sync_id` value. + +The following query is performed on the shadow table for the dept table in `MMRnode_a` on `rrep_sync_id` value 2 obtained from field `src_rrep_sync_id` of RECORD 1 in the preceding output. + +``` text +MMRnode_a=# SELECT * FROM _edb_replicator_pub.rrst_edb_dept WHERE rrep_sync_id = 2; +-[ RECORD 1 ]-----------+-------------------------- +rrep_sync_id | 2 +rrep_common_id | +rrep_operation_type | I +rrep_tx_timestamp | 25-AUG-15 11:39:35.590648 +deptno | 50 +dname | FINANCE +loc | CHICAGO +rrep_old_deptno | +rrep_old_dname | +rrep_old_loc | +rrep_tx_conflict_status | P +``` + +A similar query can locate the pending shadow table entry in `MMRnode_b` by querying on the key value obtained from field `src_rep_sync_id: of RECORD 2:` + +``` text +MMRnode_b=# SELECT * FROM _edb_replicator_pub.rrst_edb_dept WHERE rrep_sync_id = 1; +-[ RECORD 1 ]-----------+-------------------------- +rrep_sync_id | 1 +rrep_common_id | +rrep_operation_type | I +rrep_tx_timestamp | 25-AUG-15 11:39:57.980469 +deptno | 50 +dname | MARKETING +loc | LOS ANGELES +rrep_old_deptno | +rrep_old_dname | +rrep_old_loc | +rrep_tx_conflict_status | P +``` + +
+ +
+ +Note + +
+ +To be certain no pending transactions are overlooked, you should examine the shadow tables in all primary nodes that may have been involved in the conflict and search for entries where `rrep_tx_conflict_status` is set to `P`. + +
+ +The following shows the `rrep_tx_conflict_status` column marked `P` (pending) in the Postgres Enterprise Manager Client. + +![Shadow table entry with pending conflict](/../../../images/image146.png) + +Modify column `rrep_tx_conflict_status` by changing the value to `D` (discarded) to show that the pending conflict has been resolved. A value of D also ensures that the shadow table entry will not be replicated during any future synchronization replications. + +Make this change to the shadow tables in both `MMRnode_a` and `MMRnode_b`. + +![Discarded shadow table entry](/../../../images/image147.png) + +Be sure to qualify the row with the correct `rrep_sync_id` value if you perform the update using a SQL statement such as in the following: + +``` text +UPDATE _edb_replicator_pub.rrst_edb_dept SET rrep_tx_conflict_status = 'D' WHERE rrep_sync_id = 1; +``` + +There is no shadow table entry in `MMRnode_c`, since an insert transaction was not performed in that primary node by the application. + +**Step 3:** In the control schema of the publication database currently designated as the controller database, modify the entries in the `xdb_conflicts table to indicate the conflict has been resolved. Table xdb_conflicts` is located in schema `_edb_replicator_pub`. + +
+ +
+ +Note + +
+ +The entries in table `xdb_conflicts` only affect the data that appears in the Conflict History tab and the SQL query described in Section [Finding Conflicts](../../../06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/#finding_conflict). Changing entries in xdb\_conflicts has no effect on future replication operations, but provides a way to keep a record of how past conflicts were resolved. + +
+ +Note the following points regarding the `xdb_conflicts` table: + +- A row in the xdb\_conflicts table appears as an entry in the Conflict History tab. +- The primary key of the xdb\_conflicts table is comprised of columns `src_db_id, target_db_id`, `src_rrep_sync_id`, and `target_rrep_sync_id`. Column src\_db\_id contains a unique identifier for the primary node in which a transaction occurred that results in a conflict when replicated to the primary node identified by target\_db\_id. `src_rrep_sync_id` is the shadow table identifier of the transaction on the source primary node involved in the conflict while target\_rrep\_sync\_id is the shadow table identifier of the transaction on the target primary node that is involved in the conflict. Note: For uniqueness (insert/insert) conflicts, the `target_rrep_sync_id` value is always set to 0. For a given uniqueness conflict, there are two entries in the xdb\_conflicts table. The `src_rrep_sync_id` value in each of the two entries corresponds to the shadow table identifiers – one for the shadow table identifier associated with the source primary node, the other for the shadow table identifier associated with the target primary node. +- Table `xdb_pub_database` in the control schema associates the database identifiers `src_db_id` and target\_db\_id with the primary node attributes such as the database name, IP address, and port. +- Column table\_id is the identifier of the publication table on which the conflict occurred. Association of the `table_id` value with the publication table attributes such as its name, schema, and shadow table is found in each primary node in `_edb_replicator_pub.rrep_tables`. +- For uniqueness (insert/insert) conflicts only, column pk\_value contains text indicating the primary key value that resulted in the conflict. The text is formatted as column\_name=value. If the primary key is composed of two or more columns, each column and value pair is separated by the keyword AND such as column\_1=value\_1 AND column\_2=value\_2. This provides the primary key of the row in the publication table designated by table\_id that resulted in the conflict. Note: Only uniqueness (insert/insert) conflicts contain the column\_name=value text in the pk\_value column. The pk\_value column is null for all other conflict types (that is, update/update, delete/update, update/delete, and delete/delete conflicts). +- Column resolution\_status indicates the status of the conflict. Possible values are P (pending) or C (completed – the conflict has been resolved). This status appears in the Resolution Status column of the Conflict History tab. +- Column win\_db\_id can be used to record the database identifier of the primary node that contains the `winning` (accepted) transaction. This information appears in the Winning DB column of the Conflict History tab. +- Column `win_rrep_sync_id` can be used to record the shadow table identifier of the winning transaction. + +The following shows the Conflict History tab prior to updating the `xdb_conflicts` table. + +![Pending uniqueness conflict](/../../../images/image145.png) + +The conflict entry for synchronization from `MMRnode_a` to `MMRnode_b` can be located in xdb\_conflicts with the following query for this example: + +``` text +MMRnode_a=# SELECT * FROM _edb_replicator_pub.xdb_conflicts +MMRnode_a-# WHERE src_db_id = 1 +MMRnode_a-# AND target_db_id = 4 +MMRnode_a-# AND src_rrep_sync_id = 2 +MMRnode_a-# AND target_rrep_sync_id = 0; +-[ RECORD 1 ]-------+---------------------------------------------------------------- +src_db_id | 1 +target_db_id | 4 +src_rrep_sync_id | 2 +target_rrep_sync_id | 0 +table_id | 31 +conflict_time | 25-AUG-15 10:40:23.685738 +resolution_status | P +resolution_strategy | +resolution_time | +alert_status | +conflict_type | II +win_db_id | 0 +win_rrep_sync_id | 0 +notes | ERROR: duplicate key value violates unique constraint "dept_pk" + | Detail: Key (deptno)=(50) already exists. + pk_value | deptno=50 +``` + +The conflict entry for synchronization from `MMRnode_b` to `MMRnode_a` can be located in xdb\_conflicts with the following query for this example: + +``` text +MMRnode_a=# SELECT * FROM _edb_replicator_pub.xdb_conflicts +MMRnode_a-# WHERE src_db_id = 4 +MMRnode_a-# AND target_db_id = 1 +MMRnode_a-# AND src_rrep_sync_id = 1 +MMRnode_a-# AND target_rrep_sync_id = 0; +-[ RECORD 1 ]-------+---------------------------------------------------------------- +src_db_id | 4 +target_db_id | 1 +src_rrep_sync_id | 1 +target_rrep_sync_id | 0 +table_id | 31 +conflict_time | 25-AUG-15 10:40:23.726889 +resolution_status | P +resolution_strategy | +resolution_time | +alert_status | +conflict_type | II +win_db_id | 0 +win_rrep_sync_id | 0 +notes | ERROR: duplicate key value violates unique constraint "dept_pk" + | Detail: Key (deptno)=(50) already exists. +pk_value | deptno=50 +``` + +For uniqueness `(insert/insert`) conflicts only, the following query can be used to display both of the preceding entries: + +``` text +MMRnode_a=# SELECT * FROM _edb_replicator_pub.xdb_conflicts +MMRnode_a-# WHERE pk_value = 'deptno=50' +MMRnode_a-# AND conflict_type = 'II' +MMRnode_a-# AND resolution_status = 'P'; +-[ RECORD 1 ]-------+---------------------------------------------------------------- +src_db_id | 1 +target_db_id | 4 +src_rrep_sync_id | 2 +target_rrep_sync_id | 0 +table_id | 31 +conflict_time | 25-AUG-15 10:40:23.685738 +resolution_status | P +resolution_strategy | +resolution_time | +alert_status | +conflict_type | II +win_db_id | 0 +win_rrep_sync_id | 0 +notes | ERROR: duplicate key value violates unique constraint "dept_pk" + | Detail: Key (deptno)=(50) already exists. +pk_value | deptno=50 +-[ RECORD 2 ]-------+---------------------------------------------------------------- +src_db_id | 4 +target_db_id | 1 +src_rrep_sync_id | 1 +target_rrep_sync_id | 0 + table_id | 31 + conflict_time | 25-AUG-15 10:40:23.726889 + resolution_status | P + resolution_strategy | + resolution_time | + alert_status | + conflict_type | II + win_db_id | 0 + win_rrep_sync_id | 0 + notes | ERROR: duplicate key value violates unique constraint "dept_pk" + | Detail: Key (deptno)=(50) already exists. + pk_value | deptno=50 +``` + +These entries appear in the Postgres Enterprise Manager Client as shown by the following: + +![Pending conflict in xdb_conflicts](/../../../images/image147.png) + +Change the value in column resolution\_status from P (pending) to C (completed) to indicate this conflict has been resolved. The value in winning\_db\_id is changed to 4 to indicate primary node `MMRnode_b` contains the winning transaction. The value in `winning_rrep_sync_id` is changed to the value of rrep\_sync\_id for the shadow table entry of the transaction in `MMRnode_b` since this is the one deemed to be correct. + +The SQL statement to perform this update for the `MMRnode_a` to the `MMRnode_b` synchronization conflict is the following: + +``` text +UPDATE _edb_replicator_pub.xdb_conflicts SET + resolution_status = 'C', + win_db_id = 4, + win_rrep_sync_id = 1 +WHERE src_db_id = 1 + AND target_db_id = 4 + AND src_rrep_sync_id = 2 + AND target_rrep_sync_id = 0; +``` + +The SQL statement to perform this update for the `MMRnode_b` to the `MMRnode_a` synchronization conflict is the following: + +``` text +UPDATE _edb_replicator_pub.xdb_conflicts SET + resolution_status = 'C', + win_db_id = 4, + win_rrep_sync_id = 1 +WHERE src_db_id = 4 + AND target_db_id = 1 + AND src_rrep_sync_id = 1 + AND target_rrep_sync_id = 0; +``` + +For uniqueness (`insert/insert`) conflicts only, the following SQL statement can be used to update both of the preceding entries simultaneously: + +``` text +UPDATE _edb_replicator_pub.xdb_conflicts SET + resolution_status = 'C', + win_db_id = 4, + win_rrep_sync_id = 1 +WHERE pk_value = 'deptno=50' + AND conflict_type = 'II' + AND resolution_status = 'P'; +``` + +The following are the updated xdb\_conflicts entries: + +![Resolved conflict in xdb_conflicts](/../../../images/image149.png) + +When viewed in the Conflict History tab, the entries now show Resolved instead of Pending in the Resolution Status column, and the Winning DB column shows the address of primary node `MMRnode_b`. + +![Resolved uniqueness conflict](/../../../images/image150.png) diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/05_correction_using_new_txn.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/05_correction_using_new_txn.mdx new file mode 100644 index 00000000000..ebf8f2316c5 --- /dev/null +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/05_correction_using_new_txn.mdx @@ -0,0 +1,192 @@ +--- +title: "Correction Using New Transactions" +--- + + + + +Another method for bringing all the publication tables to a consistent state is by removing any changes caused by the conflicting transactions and then issuing new, corrected transactions at one primary node, which you allow the multi-master replication system to synchronize to all other primary nodes. + +Referring back to the uniqueness conflict on the dept table, instead of correcting the erroneous row and inserting the row into the primary node where it is missing as described in Section [Manual Publication Table Correction](../../../06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/#manual_publication_table_correction), you can delete the conflicting rows from all primary nodes, then insert the correct row in one primary node and let the multi-master replication system synchronize the correct row to all primary nodes. + +**Step 1:** Manually delete the inserted row from the publication tables in all primary nodes with `session_replication_role` set to `replica`. + +On `MMRnode_a`, delete the erroneous row: + +``` text +MMRnode_a=# SHOW session_replication_role; + session_replication_role +-------------------------- + replica +(1 row) + + + MMRnode_a=# SELECT * FROM dept; + deptno | dname | loc + --------+------------+---------- + 10 | ACCOUNTING | NEW YORK + 20 | RESEARCH | DALLAS + 30 | SALES | CHICAGO + 40 | OPERATIONS | BOSTON + 50 | FINANCE | CHICAGO + (5 rows) + + +MMRnode_a=# DELETE FROM dept WHERE deptno = 50; +DELETE 1 +MMRnode_a=# SELECT * FROM dept; + deptno | dname | loc +--------+------------+---------- + 10 | ACCOUNTING | NEW YORK + 20 | RESEARCH | DALLAS + 30 | SALES | CHICAGO + 40 | OPERATIONS | BOSTON +(4 rows) +``` + +On `MMRnode_b`, delete the row even though the transaction created the correct result: + +``` text +MMRnode_b=# SHOW session_replication_role; + session_replication_role +-------------------------- + replica +(1 row) + + +MMRnode_b=# SELECT * FROM dept; + deptno | dname | loc +--------+------------+------------- + 10 | ACCOUNTING | NEW YORK + 20 | RESEARCH | DALLAS + 30 | SALES | CHICAGO + 40 | OPERATIONS | BOSTON + 50 | MARKETING | LOS ANGELES +(5 rows) + + +MMRnode_b=# DELETE FROM dept WHERE deptno = 50; +DELETE 1 +MMRnode_b=# SELECT * FROM dept; +deptno | dname | loc +--------+------------+---------- + 10 | ACCOUNTING | NEW YORK + 20 | RESEARCH | DALLAS + 30 | SALES | CHICAGO + 40 | OPERATIONS | BOSTON +(4 rows) +``` + +On `MMRnode_c`, no changes are required as the conflicting transaction did not insert a new row into the table on this node: + +``` text +MMRnode_c=# SET search_path TO edb; +SET +MMRnode_c=# SELECT * FROM dept; + deptno | dname | loc +--------+------------+---------- + 10 | ACCOUNTING | NEW YORK + 20 | RESEARCH | DALLAS + 30 | SALES | CHICAGO + 40 | OPERATIONS | BOSTON +(4 rows) +``` + +**Step 2:** Rerun the transaction on one primary node with the multi-master replication system running and with `session_replication_role` set to the default (`origin`). + +For this example, the correct `INSERT` statement is executed on `MMRnode_a`: On `MMRnode_a`: + +``` text +MMRnode_a=# SHOW session_replication_role; + session_replication_role +-------------------------- + origin +(1 row) + + +MMRnode_a=# INSERT INTO dept VALUES (50, 'MARKETING', 'LOS ANGELES'); +INSERT 0 1 +MMRnode_a=# SELECT * FROM dept; + deptno | dname | loc +--------+------------+------------- + 10 | ACCOUNTING | NEW YORK + 20 | RESEARCH | DALLAS + 30 | SALES | CHICAGO + 40 | OPERATIONS | BOSTON + 50 | MARKETING | LOS ANGELES +(5 rows) +``` + +**Step 3:** Perform synchronization replication. + +The same rows now appear in the publication table on all primary nodes. On `MMRnode_a`; + +``` text +MMRnode_a=# SELECT * FROM dept; + deptno | dname | loc +--------+------------+------------- + 10 | ACCOUNTING | NEW YORK + 20 | RESEARCH | DALLAS + 30 | SALES | CHICAGO + 40 | OPERATIONS | BOSTON + 50 | MARKETING | LOS ANGELES +(5 rows) +``` + +On `MMRnode_b`: + +``` text +MMRnode_b=# SELECT * FROM dept; + deptno | dname | loc +--------+------------+------------- + 10 | ACCOUNTING | NEW YORK + 20 | RESEARCH | DALLAS + 30 | SALES | CHICAGO + 40 | OPERATIONS | BOSTON + 50 | MARKETING | LOS ANGELES +(5 rows) +``` + +On `MMRnode_c`: + +``` text +MMRnode_c=# SELECT * FROM dept; + deptno | dname | loc +--------+------------+------------- + 10 | ACCOUNTING | NEW YORK + 20 | RESEARCH | DALLAS + 30 | SALES | CHICAGO + 40 | OPERATIONS | BOSTON + 50 | MARKETING | LOS ANGELES +(5 rows) +``` + +**Step 4:** Update the shadow table entries for the conflicting transactions in the primary nodes to indicate that the conflict has been resolved as in Step 2 of Section [Manual Publication Table Correction](../../../06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/#manual_publication_table_correction). + +Change the `rrep_tx_conflict_status` column from `P` (pending) to `D` (discarded) on all primary nodes. + +The resulting change for the shadow table on `MMRnode_a` is as follows. + +![Discarded shadow table entry](/../../../images/image151.png) + +
+ +
+ +Note + +
+ +The second entry for the accepted transaction you ran in Step 2 where `rrep_tx_conflict_status` is set to null indicating there was no conflict. + +
+ +The resulting change for the shadow table on `MMRnode_b` is as follows. + +![Discarded shadow table entry](/../../../images/image152.png) + +There is no shadow table entry in `MMRnode_c`, since an insert transaction was not performed in that primary node by the application. + +**Step 5:** In the control schema of the publication database currently designated as the controller database, modify the entries in the `xdb_conflicts` table to indicate the conflict has been resolved as in Step 3 of Section [Manual Publication Table Correction](../../../06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/#manual_publication_table_correction). + +![Resolved conflict in xdb_conflicts](/../../../images/image153.png) diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/06_correction_using_shadow_table_txn.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/06_correction_using_shadow_table_txn.mdx new file mode 100644 index 00000000000..86aa1c095b2 --- /dev/null +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/06_correction_using_shadow_table_txn.mdx @@ -0,0 +1,369 @@ +--- +title: "Correction Using Shadow Table Transactions" +--- + + + + +The final method for bringing all publication tables to a consistent state is by removing changes caused by the conflicting transactions and then modifying the publication table’s metadata in such a way that the next synchronization results in the replication of transactions already stored in the shadow tables. + +> Such transactions may not have been successfully replicated to all the other primary nodes in a prior synchronization for various reasons. + +The following is an example of such a case: + +- Applications on two primary nodes insert rows with the same primary key value. This will result in a uniqueness conflict when synchronization replication occurs. +- Following the insert on one primary node, the application continues to apply updates to the newly inserted row. These updates are successfully applied to the row on this primary node and are recorded in the shadow table on this node. +- Synchronization replication is performed. +- Since there is a uniqueness conflict, the rows with the conflicting primary key value are not replicated into the publication tables on the other primary nodes. +- However, the conflicting row on the primary node that was not directly updated will receive those update transactions by the replication, resulting in possibly inconsistent, updated rows on the two primary nodes. + +Instead of manually inserting the missing row into the other primary nodes and manually changing the incorrect row; or instead of rerunning the application to reapply the correct insert and updates, the following option provides a way to reapply the transactions already recorded in the shadow table of the winning primary node. + +The example used to illustrate this method is based upon the following transactions on the `emp` table. + +In `MMRnode_b`, the following row is inserted: + +``` text +INSERT INTO emp (empno,ename,job,deptno) VALUES (9001,'SMITH','ANALYST',20); +``` + +In `MMRnode_c`, the following row is inserted with the same primary key value 9001 in the `empno` column: + +``` text +INSERT INTO emp (empno,ename,job,deptno) VALUES (9001,'JONES','SALESMAN',30); +In MMRnode_c, this is followed by a series of updates to the newly inserted row: +UPDATE emp SET mgr = 7698 WHERE empno = 9001; +UPDATE emp SET sal = 9500 WHERE empno = 9001; +UPDATE emp SET comm = 5000 WHERE empno = 9001; +``` + +Synchronization replication is performed. The resulting content of the `emp` table is as follows: + +On `MMRnode_a` the conflicting row has not been replicated: + +``` text +MMRnode_a=# SELECT * FROM emp; + empno | ename | job | mgr | hiredate | sal | comm | deptno +-------+--------+-----------+------+--------------------+---------+---------+-------- + 7369 | SMITH | CLERK | 7902 | 17-DEC-80 00:00:00 | 800.00 | | 20 + 7499 | ALLEN | SALESMAN | 7698 | 20-FEB-81 00:00:00 | 1600.00 | 300.00 | 30 + 7521 | WARD | SALESMAN | 7698 | 22-FEB-81 00:00:00 | 1250.00 | 500.00 | 30 + 7566 | JONES | MANAGER | 7839 | 02-APR-81 00:00:00 | 2975.00 | | 20 + 7654 | MARTIN | SALESMAN | 7698 | 28-SEP-81 00:00:00 | 1250.00 | 1400.00 | 30 + 7698 | BLAKE | MANAGER | 7839 | 01-MAY-81 00:00:00 | 2850.00 | | 30 + 7782 | CLARK | MANAGER | 7839 | 09-JUN-81 00:00:00 | 2450.00 | | 10 + 7788 | SCOTT | ANALYST | 7566 | 19-APR-87 00:00:00 | 3000.00 | | 20 + 7839 | KING | PRESIDENT | | 17-NOV-81 00:00:00 | 5000.00 | | 10 + 7844 | TURNER | SALESMAN | 7698 | 08-SEP-81 00:00:00 | 1500.00 | 0.00 | 30 + 7876 | ADAMS | CLERK | 7788 | 23-MAY-87 00:00:00 | 1100.00 | | 20 + 7900 | JAMES | CLERK | 7698 | 03-DEC-81 00:00:00 | 950.00 | | 30 + 7902 | FORD | ANALYST | 7566 | 03-DEC-81 00:00:00 | 3000.00 | | 20 + 7934 | MILLER | CLERK | 7782 | 23-JAN-82 00:00:00 | 1300.00 | | 10 +(14 rows) +``` + +On `MMRnode_b` the conflicting row inserted on this node remains, but is updated with the transactions replicated from `MMRnode_c`: + +``` text +MMRnode_b=# SELECT * FROM emp; + empno | ename | job | mgr | hiredate | sal | comm | deptno +-------+--------+-----------+------+--------------------+---------+---------+-------- + 7369 | SMITH | CLERK | 7902 | 17-DEC-80 00:00:00 | 800.00 | | 20 + 7499 | ALLEN | SALESMAN | 7698 | 20-FEB-81 00:00:00 | 1600.00 | 300.00 | 30 + 7521 | WARD | SALESMAN | 7698 | 22-FEB-81 00:00:00 | 1250.00 | 500.00 | 30 + 7566 | JONES | MANAGER | 7839 | 02-APR-81 00:00:00 | 2975.00 | | 20 + 7654 | MARTIN | SALESMAN | 7698 | 28-SEP-81 00:00:00 | 1250.00 | 1400.00 | 30 + 7698 | BLAKE | MANAGER | 7839 | 01-MAY-81 00:00:00 | 2850.00 | | 30 + 7782 | CLARK | MANAGER | 7839 | 09-JUN-81 00:00:00 | 2450.00 | | 10 + 7788 | SCOTT | ANALYST | 7566 | 19-APR-87 00:00:00 | 3000.00 | | 20 + 7839 | KING | PRESIDENT | | 17-NOV-81 00:00:00 | 5000.00 | | 10 + 7844 | TURNER | SALESMAN | 7698 | 08-SEP-81 00:00:00 | 1500.00 | 0.00 | 30 + 7876 | ADAMS | CLERK | 7788 | 23-MAY-87 00:00:00 | 1100.00 | | 20 + 7900 | JAMES | CLERK | 7698 | 03-DEC-81 00:00:00 | 950.00 | | 30 + 7902 | FORD | ANALYST | 7566 | 03-DEC-81 00:00:00 | 3000.00 | | 20 + 7934 | MILLER | CLERK | 7782 | 23-JAN-82 00:00:00 | 1300.00 | | 10 + 9001 | SMITH | ANALYST | 7698 | | 9500.00 | 5000.00 | 20 +(15 rows) +``` + +On `MMRnode_c` the conflicting row inserted on this node remains along with the updates performed on this node: + +``` text +MMRnode_c=# SELECT * FROM emp; + empno | ename | job | mgr | hiredate | sal | comm | deptno +-------+--------+-----------+------+--------------------+---------+---------+-------- + 7369 | SMITH | CLERK | 7902 | 17-DEC-80 00:00:00 | 800.00 | | 20 + 7499 | ALLEN | SALESMAN | 7698 | 20-FEB-81 00:00:00 | 1600.00 | 300.00 | 30 + 7521 | WARD | SALESMAN | 7698 | 22-FEB-81 00:00:00 | 1250.00 | 500.00 | 30 + 7566 | JONES | MANAGER | 7839 | 02-APR-81 00:00:00 | 2975.00 | | 20 + 7654 | MARTIN | SALESMAN | 7698 | 28-SEP-81 00:00:00 | 1250.00 | 1400.00 | 30 + 7698 | BLAKE | MANAGER | 7839 | 01-MAY-81 00:00:00 | 2850.00 | | 30 + 7782 | CLARK | MANAGER | 7839 | 09-JUN-81 00:00:00 | 2450.00 | | 10 + 7788 | SCOTT | ANALYST | 7566 | 19-APR-87 00:00:00 | 3000.00 | | 20 + 7839 | KING | PRESIDENT | | 17-NOV-81 00:00:00 | 5000.00 | | 10 + 7844 | TURNER | SALESMAN | 7698 | 08-SEP-81 00:00:00 | 1500.00 | 0.00 | 30 + 7876 | ADAMS | CLERK | 7788 | 23-MAY-87 00:00:00 | 1100.00 | | 20 + 7900 | JAMES | CLERK | 7698 | 03-DEC-81 00:00:00 | 950.00 | | 30 + 7902 | FORD | ANALYST | 7566 | 03-DEC-81 00:00:00 | 3000.00 | | 20 + 7934 | MILLER | CLERK | 7782 | 23-JAN-82 00:00:00 | 1300.00 | | 10 + 9001 | JONES | SALESMAN | 7698 | | 9500.00 | 5000.00 | 30 +(15 rows) +``` + +In this example, it is assumed that the desired, correct row is on `MMRnode_c`. + +The following are the steps to reproduce the correct row, currently on `MMRnode_c`, to the other primary nodes by synchronizing the shadow table entries that resulted from the original insert and updates to this row on `MMRnode_c`. + +**Step 1:** Manually delete the inserted row from the publication tables on all primary nodes except for `MMRnode_c`, which has the correct row. Be sure `session_replication_role` is set to `replica`. + +On `MMRnode_a`, this row does not exist: + +``` text +MMRnode_a=# SELECT * FROM emp WHERE empno = 9001; + empno | ename | job | mgr | hiredate | sal | comm | deptno +-------+-------+-----+-----+----------+-----+------+-------- +(0 rows) +``` + +On `MMRnode_b`, delete the erroneous row: + +``` text +MMRnode_a=# SHOW session_replication_role; + session_replication_role +-------------------------- + replica +(1 row) + +MMRnode_b=# DELETE FROM emp WHERE empno = 9001; +DELETE 1 +``` + +On `MMRnode_c`, the correct, accepted row is left intact: + +``` text +MMRnode_c=# SELECT * FROM emp WHERE empno = 9001; + empno | ename | job | mgr | hiredate | sal | comm | deptno +-------+-------+----------+------+----------+---------+---------+-------- + 9001 | JONES | SALESMAN | 7698 | | 9500.00 | 5000.00 | 30 +(1 row) +``` + +**Step 2:** On the primary nodes containing the conflicting row that is to be discarded, mark the shadow table entry for that row as discarded. This indicates the conflict on this row has been resolved and ensures this shadow table entry is not replicated in the future. + +Change the `rrep_tx_conflict_status` column from `P` (pending) to `D` (discarded) on the losing node, `MMRnode_b` as shown by the following: + +![Losing shadow table entry](/../../../images/image154.png) + +**Step 3:** On winning node `MMRnode_c`, inspect the shadow table for the `emp` publication table. + +The objective is to use the shadow table entries for the insert and three update transactions that were previously run on this node to replicate to the other primary nodes during the next synchronization. + +The leftmost columns of the shadow table appear as follows: + +![Shadow table with multiple transactions](/../../../images/image155.png) + +Make note of the `rrep_sync_id` values for these four entries, which are 1, 2, 3, and 4 in this example. + +The following shows the rightmost columns of the shadow table from the prior figure. Note the contents of column `rrep_tx_conflict_status` furthest to the right. + +![Shadow table with multiple transactions (continued)](/../../../images/image156.png) + +Make sure the `rrep_tx_conflict_status` column is null for these four entries. In this case, for the insert transaction, you will need to change the `P` (pending) value to null. + +The resulting change for the `rrep_tx_conflict_status` column in the shadow table on `MMRnode_c` is shown by the following: + +![Shadow table transactions set to replicate](/../../../images/image157.png) + +**Step 4:** In order to replicate these four shadow table entries during the next synchronization, one or more entries must be added to the control schema table `_edb_replicator_pub.rrep_MMR_txset` on `MMRnode_c` to indicate pending status for synchronization to the target primary nodes (`MMRnode_a` and `MMRnode_b`) of the four shadow table entries identified by the rrep\_sync\_id values of 1, 2, 3, and 4 noted in Step 3. + +First, you must identify the `pub_id` and target `db_id` values that are to be associated with the pending transactions. To do so, invoke the following query substituting the `rrep_sync_id` values for `sync_id` in the query: + +``` text +SELECT pub_id, db_id AS target_db_id + FROM _edb_replicator_pub.rrep_MMR_txset + WHERE start_rrep_sync_id <= sync_id + AND end_rrep_sync_id >= sync_id; +``` + +In this example, there are four values to be substituted for `sync_id`, which are 1, 2, 3, and 4. + +The results are the following: + +``` text +MMRnode_c=# SELECT pub_id, db_id AS target_db_id +MMRnode_c-# FROM _edb_replicator_pub.rrep_MMR_txset +MMRnode_c-# WHERE start_rrep_sync_id <= 1 AND end_rrep_sync_id >= 1; + pub_id | target_db_id +--------+-------------- + 3 | 1 + 3 | 4 +(2 rows) + +MMRnode_c=# SELECT pub_id, db_id AS target_db_id +MMRnode_c-# FROM _edb_replicator_pub.rrep_MMR_txset +MMRnode_c-# WHERE start_rrep_sync_id <= 2 AND end_rrep_sync_id >= 2; + pub_id | target_db_id +--------+-------------- + 3 | 1 + 3 | 4 +(2 rows) + +MMRnode_c=# SELECT pub_id, db_id AS target_db_id +MMRnode_c-# FROM _edb_replicator_pub.rrep_MMR_txset +MMRnode_c-# WHERE start_rrep_sync_id <= 3 AND end_rrep_sync_id >= 3; + pub_id | target_db_id +--------+-------------- + 3 | 1 + 3 | 4 +(2 rows) + +MMRnode_c=# SELECT pub_id, db_id AS target_db_id +MMRnode_c-# FROM _edb_replicator_pub.rrep_MMR_txset +MMRnode_c-# WHERE start_rrep_sync_id <= 4 AND end_rrep_sync_id >= 4; + pub_id | target_db_id +--------+-------------- + 3 | 1 + 3 | 4 +(2 rows) +``` + +The results indicate that the previously executed synchronization that attempted to apply the shadow table transactions identified by the `rrep_sync_id` values of 1, 2, 3, and 4 were all for the publication identified by `pub_id` of 3. The target primary nodes were identified by `db_id` of 1 (for `MMRnode_a`) and db\_id of 4 (for `MMRnode_b`). + +Thus, at least two entries must be inserted into the control schema table `_edb_replicator_pub.rrep_MMR_txset` on `MMRnode_c`. At least one entry is required for the target `db_id` of 1 and at least one entry for the target db\_id of 4. + +Since each entry in `_edb_replicator_pub.rrep_MMR_txset` consists of a range of `rrep_sync_id` values (identified by columns `start_rrep_sync_id` and `end_rrep_sync_id`) and the desired shadow table `rrep_sync_id` values happen to be contiguous (1 thru 4), a single entry can encompass the four `rrep_sync_id` values for a single target database. + +Thus, in this example, a total of two entries can be added to `_edb_replicator_pub.rrep_MMR_txset` – one for each target database. + +
+ +
+ +Note + +
+ +If there were multiple, non-contiguous `rrep_sync_id` values required for synchronization (for example, 1, 2, 5, and 6), then multiple entries would be required for each target database. The entries would specify `rrep_sync_id` ranges to collectively cover all of the non-contiguous values, but omitting `rrep_sync_id` values that are not to be included in the synchronization (for example, one entry for 1 through 2 and a second entry for 5 through 6). + +
+ +**Step 5:** Insert the entries into the `_edb_replicator_pub.rrep_MMR_txset` control schema table as identified in the preceding step. + +The two `INSERT` statements invoked on `MMRnode_c` are the following: + +``` text +INSERT INTO _edb_replicator_pub.rrep_MMR_txset (set_id, pub_id, db_id, status, start_rrep_sync_id, end_rrep_sync_id) + values (nextval('_edb_replicator_pub.rrep_txset_seq'),3,1,'P',1,4); + +INSERT INTO _edb_replicator_pub.rrep_MMR_txset (set_id, pub_id, db_id, status, start_rrep_sync_id, end_rrep_sync_id) + values (nextval('_edb_replicator_pub.rrep_txset_seq'),3,4,'P',1,4); +``` + +A query of the \_edb\_replicator\_pub.rrep\_MMR\_txset metadata table displays the following: + +``` text +MMRnode_c=# SELECT set_id, pub_id, db_id AS target_db_id, status, +MMRnode_c-# start_rrep_sync_id, end_rrep_sync_id +MMRnode_c-# FROM _edb_replicator_pub.rrep_MMR_txset; + set_id | pub_id | target_db_id | status | start_rrep_sync_id | end_rrep_sync_id +--------+--------+--------------+--------+--------------------+------------------ + 1 | 3 | 1 | C | 1 | 4 + 1 | 3 | 4 | C | 1 | 4 + 2 | 3 | 1 | P | 1 | 4 + 3 | 3 | 4 | P | 1 | 4 +(4 rows) +``` + +There are now two new entries with pending status (P), one for target db\_id 1, the other for target `db_id` 4. Both entries cover the `rrep_sync_id` range of 1 through 4. + +The two entries with completed status (C) are from the synchronization attempt that initially produced the conflict. + +**Step 6:** Perform synchronization replication. + +The insert and three update transactions recorded in the `rrst_edb_emp` shadow table on `MMRnode_c` are replicated to the other primary nodes. + +``` text +On MMRnode_a: +MMRnode_a=# SELECT * FROM emp WHERE empno = 9001; + empno | ename | job | mgr | hiredate | sal | comm | deptno +-------+-------+----------+------+----------+---------+---------+-------- + 9001 | JONES | SALESMAN | 7698 | | 9500.00 | 5000.00 | 30 +(1 row) +On MMRnode_b: +MMRnode_b=# SELECT * FROM emp WHERE empno = 9001; + empno | ename | job | mgr | hiredate | sal | comm | deptno +-------+-------+----------+------+----------+---------+---------+-------- + 9001 | JONES | SALESMAN | 7698 | | 9500.00 | 5000.00 | 30 +(1 row) +``` + +These rows now match the row created by the original transactions on MMRnode\_c: + +``` text +MMRnode_c=# SELECT * FROM emp WHERE empno = 9001; + empno | ename | job | mgr | hiredate | sal | comm | deptno +-------+-------+----------+------+----------+---------+---------+-------- + 9001 | JONES | SALESMAN | 7698 | | 9500.00 | 5000.00 | 30 +(1 row) +``` + +**Step 7:** In the control schema of the publication database currently designated as the controller database, modify the entries in the xdb\_conflicts table to indicate the conflict has been resolved as in Step 3 of Section [Manual Publication Table Correction](../../../06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/#manual_publication_table_correction). + +For a uniqueness (insert/insert) conflict only, the following query on the `xdb_conflicts` table in the controller database can display the conflicts: + +``` text +MMRnode_a=# SELECT * FROM _edb_replicator_pub.xdb_conflicts +MMRnode_a-# WHERE pk_value = 'empno=9001' +MMRnode_a-# AND conflict_type = 'II' +MMRnode_a-# AND resolution_status = 'P'; +-[ RECORD 1 ]-------+--------------------------------------------------------------- +src_db_id | 4 +target_db_id | 56 +src_rrep_sync_id | 1 +target_rrep_sync_id | 0 +table_id | 32 +conflict_time | 25-AUG-15 15:27:20.928679 +resolution_status | P +resolution_strategy | +resolution_time | +alert_status | +conflict_type | II +win_db_id | 0 +win_rrep_sync_id | 0 +notes | ERROR: duplicate key value violates unique constraint "emp_pk" + | Detail: Key (empno)=(9001) already exists. +pk_value | empno=9001 +-[ RECORD 2 ]-------+--------------------------------------------------------------- +src_db_id | 56 +target_db_id | 4 +src_rrep_sync_id | 1 +target_rrep_sync_id | 0 +table_id | 32 +conflict_time | 25-AUG-15 15:27:20.970959 +resolution_status | P +resolution_strategy | +resolution_time | +alert_status | +conflict_type | II +win_db_id | 0 +win_rrep_sync_id | 0 +notes | ERROR: duplicate key value violates unique constraint "emp_pk" + | Detail: Key (empno)=(9001) already exists. +pk_value | empno=9001 +``` + +The following SQL statement changes the value in column resolution\_status from `P (pending)` to `C (completed)` to indicate this conflict has been resolved. The value in winning\_db\_id is changed to 56 to indicate primary node `MMRnode_c` contains the winning transaction. The value in `winning_rrep_sync_id` is changed to the value of `rrep_sync_id` for the shadow table entry of the INSERT transaction in `MMRnode_c` since this is the one deemed to be correct. + +``` text +UPDATE _edb_replicator_pub.xdb_conflicts SET + resolution_status = 'C', + win_db_id = 56, + win_rrep_sync_id = 1 +WHERE pk_value = 'empno=9001' + AND conflict_type = 'II' + AND resolution_status = 'P'; +``` + +When viewed in the Conflict History tab, the entry now shows Resolved in the Resolution Status column, and the Winning DB column shows the address of primary node `MMRnode_c`. + +![Resolved uniqueness conflict](/../../../images/image158.png) diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/index.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/index.mdx new file mode 100644 index 00000000000..9f4ab39bf9a --- /dev/null +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/index.mdx @@ -0,0 +1,41 @@ +--- +title: "Manual Conflict Resolution for the Trigger-Based Method" +--- + + + + +
+ +
+ +Note + +
+ +The manual conflict resolution discussion in this section applies only to multi-master replication systems configured with the trigger-based method of synchronization replication. See [Manual Conflict Resolution for the Log-Based Method](../../06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/#manual_conflict_resolution_log_based_method) for information on manual conflict resolution for multi-master replication systems configured with the log-based method of synchronization replication. + +
+ +As discussed in Section Conflict Prevention – Uniqueness Case <conflict\_prevention\_uniquness> there is no built-in, automatic conflict resolution strategy for the uniqueness (`insert/insert`) conflict. If a uniqueness conflict occurs, then you must modify rows in the publication tables containing the conflict as well as modify rows in the control schema tables in the primary nodes to resolve the conflict. + +Similarly, manual correction must be used for `update/delete` and `delete/update` conflicts. In addition, if the conflict resolution option is set to Manual (see Section [Updating the Conflict Resolution Options](../../06_mmr_operation/#update_conflict_resolution_options)) and a conflict occurs, this conflict must also be resolved in a manual fashion. + +This section describes the updates you must make to the publication tables and the control schema tables in the primary nodes. + +This discussion is divided into the following topics: + +- Finding Conflicts. Locating unresolved conflicts +- Conflict Resolution Preparation. Helpful setup steps to aid in the manual conflict resolution process +- Overview of Correction Strategies. Overview of the methods you can use to perform the corrections +- Manual Publication Table Correction. Manual correction of the publication tables +- Correction Using New Transactions. Using new transactions to bring all primary nodes to a consistent state +- Correction Using Shadow Table Transactions. Using existing shadow table transactions to bring all primary nodes to a consistent state + +The following sections describe these topics in detail. + +
+ +find\_conflict conflict\_resolution\_prep overview\_correction\_strategies manual\_publication\_table\_correction correction\_using\_new\_txn correction\_using\_shadow\_table\_txn + +
diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/01_finding_conflict.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/01_finding_conflict.mdx new file mode 100644 index 00000000000..846a90fc4cb --- /dev/null +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/01_finding_conflict.mdx @@ -0,0 +1,82 @@ +--- +title: "Finding Conflicts" +--- + + + + +Conflicts can be found using the `Conflict History` tab as described in Section [Viewing Conflict History](../../../06_mmr_operation/#view_conflict_history). The following is an example of the Conflict History tab. Click the `Refresh` button to reveal all of the latest conflicts. + +![Conflict History tab for log-based method](/../../../images/image159.png) + +
+ +
+ +Note + +
+ +The `View Data link and Conflict Details` window displayed for multi-master replication systems configured with the trigger-based method of synchronization replication are not available for multi-master replication systems configured with the log-based method of synchronization replication. + +
+ +The `Source DB` and `Target DB` columns provide the IP address and database names of the source and target primary nodes involved in the conflict. + +You can also obtain this information from a SQL query rather than from the xDB Replication Console graphical user interface. The following query can be run from a primary node to display information regarding pending (unresolved) conflicts: + +``` text +SELECT DISTINCT + conflict_type, + t.table_name, + pk_value, + d1.db_host AS src_db_host, + d1.db_port AS src_db_port, + d1.db_name AS src_db_name, + src_rrep_sync_id, + d2.db_host AS target_db_host, + d2.db_port AS target_db_port, + d2.db_name AS target_db_name, + target_rrep_sync_id, + c.notes +FROM _edb_replicator_pub.xdb_conflicts c + JOIN _edb_replicator_pub.xdb_pub_database d1 ON c.src_db_id = d1.pub_db_id + JOIN _edb_replicator_pub.xdb_pub_database d2 ON c.target_db_id = d2.pub_db_id + JOIN _edb_replicator_pub.rrep_tables t ON c.table_id = t.table_id +WHERE resolution_status = 'P' +ORDER BY t.table_name; + + +Example output from the query is shown by the following: + +.. code-block:: text + + + +-[ RECORD 1 ]-------+------------- +conflict_type | II +table_name | dept +pk_value | deptno=50 +src_db_host | 192.168.2.22 +src_db_port | 5444 +src_db_name | edb +src_rrep_sync_id | 41939160 +target_db_host | 192.168.2.22 +target_db_port | 5444 +target_db_name | MMRnode +target_rrep_sync_id | 42289824 +notes | +-[ RECORD 2 ]-------+------------- +conflict_type | DU +table_name | emp +pk_value | empno=9003 +src_db_host | 192.168.2.22 +src_db_port | 5444 +src_db_name | edb +src_rrep_sync_id | 41940704 +target_db_host | 192.168.2.22 +target_db_port | 5444 +target_db_name | MMRnode +target_rrep_sync_id | 42292848 +notes | +``` diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/02_conflict_resolution_for_log_based.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/02_conflict_resolution_for_log_based.mdx new file mode 100644 index 00000000000..fc20956e836 --- /dev/null +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/02_conflict_resolution_for_log_based.mdx @@ -0,0 +1,39 @@ +--- +title: "Conflict Resolution Concept for the Log-Based Method" +--- + + + + +Manual conflict resolution typically requires modification of rows in one or more publication tables to correct erroneous entries. Such changes can be done using a utility such as `PSQL` or `pgAdmin` (Postgres Enterprise Manager Client in Advanced Server). + +Manual publication table corrections must usually be isolated – that is, these modifications must be limited to the publication tables you are directly changing and must not be replicated to the other primary nodes as would normally occur in the multi-master replication system. + +To prevent the xDB Replication Server from replicating changes to one or more publication tables during a synchronization operation, the changes to the publication tables must be made within a transaction block that includes a reference to an xDB control schema table. This reference to the xDB control schema table causes the xDB Replication Server to skip the transaction block when performing a synchronization replication. + +
+ +
+ +Note + +
+ +Not every xDB control schema table prevents this replication of a transaction block. Use the `SQL UPDATE` statement as shown by the following. + +
+ +The `SQL UPDATE` statement shown in the following transaction block is to be included to prevent replication of other publication table changes appearing within the same transaction block: + +``` text +BEGIN; +UPDATE _edb_replicator_pub.rrep_properties SET value = current_timestamp WHERE key = 'last_mcr_timestamp'; + +One or more SQL statements to correct publication tables + +END; +``` + +When such a transaction block is executed within a primary node, the insert, update, or deletion of rows to any publication table within the transaction block are not replicated to any other primary node by the xDB Replication Server when the next synchronization replication occurs. + +As many such transaction blocks can be run on any primary node as necessary to change the publication table rows to resolve the conflicts. The resulting changes are isolated to the primary node on which the transaction block is run, so each primary node can be independently corrected. diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/03_overview_correction_strategies_log_based.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/03_overview_correction_strategies_log_based.mdx new file mode 100644 index 00000000000..bf36b9d98b6 --- /dev/null +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/03_overview_correction_strategies_log_based.mdx @@ -0,0 +1,133 @@ +--- +title: "Overview of Correction Strategies" +--- + + + + +Before you begin manual resolution correction, it is important to determine the extent of the inconsistencies that may have occurred in the publication tables across the primary nodes of the replication system. + +The Conflict History tab and the SQL query described in Section [Finding Conflicts](../../../06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/#find_conflict) can help determine the source of an initial conflict. + +However, once this conflict has occurred, your replication system may have processed and replicated additional transactions during that synchronization operation. Some of these subsequent replications may have succeeded as expected, but others may have failed or produced unexpected results as a consequence of the prior conflict. + +If you have a replication schedule in effect, additional synchronization operations can occur, which may create additional conflicts. + +Therefore, when you have discovered that a conflict has occurred, it is strongly recommended that you stop the publication server. Use the stop option of the Linux scripts or Windows services described in Step 1 of Section [Registering a Publication Server](../../../05_smr_operation/02_creating_publication/#registering_publication_server). In this way, you can carefully analyze the content of the publication tables in question to determine the best course of action to take without the interference of continuing updates by a running replication system. + +When analyzing your tables you must determine which publication tables contain inconsistent rows across primary nodes (that is, missing rows on some primary nodes, or rows with different column values for the same primary key on different primary nodes). + +The general steps to resolving the problem following this analysis are the following: + +**Step 1:** Make the necessary manual corrections to the rows in the publication tables across all primary nodes to get them into an initial, consistent state so each publication table has the same set of identical rows across primary nodes. This may be to a state before the conflicting transactions occurred, depending upon what you determine to be the easiest course of action for fully resolving the conflict. + +**Step 2:** Apply transactions (either from your application or from transaction blocks as defined in Section [Conflict Resolution Concept for the Log-Based Method](../../../06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/#conflict_resolution_for_log_based)) so that all publication tables across all primary nodes are updated consistently according to the desired, expected result. + +**Step 3:** In the control schema, update certain indicators for the conflicting entries to show that these conflicts have been resolved. This update changes the Resolution Status of these entries to Resolved in the Conflict History tab. These entries will no longer appear in the SQL query described in Section [Finding Conflicts](../../../06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/#finding_conflict). + +Perform the Step 3 updates to the control schema of the controller database. The currently designated controller database can be determined from the content of the xDB Replication Configuration file (see Section [xDB Replication Configuration File](../../../02_overview/03_replication_server_components_and_architecture/#xdb_replication_conf_file)). The publication server ensures that the control schema changes made on the controller database are replicated to the control schemas of all publication databases to maintain metadata consistency across all publication databases. + +**Step 4:** Resume operation of your replication system. Start the publication server and recreate the replication schedule if you were using one. + +For accomplishing steps 1 and 2, use some combination of the following methods. Which methods you use depends upon the state of your publication tables. + +- Manual Publication Table Correction. Use a utility such as PSQL or pgAdmin (Postgres Enterprise Manager Client in Advanced Server) to manually correct the rows in the publication tables across all primary nodes without replicating these changes. Apply these manual corrections within the transaction block described in Section [Conflict Resolution Concept for the Log-Based Method](../../../06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/#conflict_resolution_for_log_based). +- Correction Using New Transactions. Rerun your application on one primary node to create new transactions that you will allow to replicate to all other primary nodes. Use this method after you have ensured that all publication tables are in a consistent state across all primary nodes. + +Each of these methods is described in more detail in the following sections. + +For purposes of illustration, the following replication environment is used. + +- A 3-node multi-master replication system has been established. The primary node names are `MMRnode_a` (the primary definition node and the controller database), `MMRnode_b`, and `MMRnode_c`. +- The publication is named `emp_pub` and uses the `dept` and `emp` tables that have been used as examples throughout this document. +- The conflict used to illustrate the conflict resolution methods is a uniqueness conflict occurring on the dept table on primary key column `deptno` on value 50 resulting from the `INSERT` statements shown by the following: + +On `MMRnode_a`, the following statement is run: + +``` text +INSERT INTO dept VALUES (50, 'FINANCE', 'CHICAGO'); +On MMRnode_b, the following statement is run: +INSERT INTO dept VALUES (50, 'MARKETING', 'LOS ANGELES'); +``` + +A synchronization replication is then performed. + +The following is the content of table dept on `MMRnode_a`: + +``` text +MMRnode_a=# SELECT * FROM dept; + deptno | dname | loc +--------+------------+---------- + 10 | ACCOUNTING | NEW YORK + 20 | RESEARCH | DALLAS + 30 | SALES | CHICAGO + 40 | OPERATIONS | BOSTON + 50 | FINANCE | CHICAGO +(5 rows) +``` + +The following is the content of table dept on `MMRnode_b`: + +``` text +MMRnode_b=# SELECT * FROM dept; + deptno | dname | loc +--------+------------+------------- + 10 | ACCOUNTING | NEW YORK + 20 | RESEARCH | DALLAS + 30 | SALES | CHICAGO + 40 | OPERATIONS | BOSTON + 50 | MARKETING | LOS ANGELES +(5 rows) +``` + +The following is the content of table dept on `MMRnode_c`: + +``` text +MMRnode_c=# SELECT * FROM dept; + deptno | dname | loc +--------+------------+---------- + 10 | ACCOUNTING | NEW YORK + 20 | RESEARCH | DALLAS + 30 | SALES | CHICAGO + 40 | OPERATIONS | BOSTON +(4 rows) +``` + +The Conflict History tab shows the following entry: + +![Conflict History tab with a uniqueness conflict](/../../../images/image160.png) + +The following is the output from the SQL query described in Section [Finding Conflicts](../../../06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/#find_conflict). + +``` text +-[ RECORD 1 ]-------+---------------------------------------------------------------- +conflict_type | II +table_name | dept +pk_value | deptno=50 +src_db_host | 192.168.2.22 +src_db_port | 5444 +src_db_name | MMRnode_a +src_rrep_sync_id | 2 +target_db_host | 192.168.2.22 +target_db_port | 5444 +target_db_name | MMRnode_b +target_rrep_sync_id | 0 +notes | ERROR: duplicate key value violates unique constraint "dept_pk" + | Detail: Key (deptno)=(50) already exists. +-[ RECORD 2 ]-------+---------------------------------------------------------------- +conflict_type | II +table_name | dept +pk_value | deptno=50 +src_db_host | 192.168.2.22 +src_db_port | 5444 +src_db_name | MMRnode_b +src_rrep_sync_id | 1 +target_db_host | 192.168.2.22 +target_db_port | 5444 +target_db_name | MMRnode_a +target_rrep_sync_id | 0 +notes | ERROR: duplicate key value violates unique constraint "dept_pk" + | Detail: Key (deptno)=(50) already exists. +``` + +The following sections describe the application of different methods to resolve this conflict. diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/04_manual_publication_table_correction_log_based.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/04_manual_publication_table_correction_log_based.mdx new file mode 100644 index 00000000000..f4481628215 --- /dev/null +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/04_manual_publication_table_correction_log_based.mdx @@ -0,0 +1,176 @@ +--- +title: "Manual Publication Table Correction" +--- + + + + +The first step required in all manual conflict resolutions is to ensure all publication tables are consistent across all primary nodes – that is, all corresponding tables have the same rows with the same column values. + +Once this state is achieved, you can then reapply transactions that may have failed to replicate successfully. + +In the preceding example, the inconsistencies are the following: + +- Primary nodes `MMRnode_a` and `MMRnode_b` each contain a row with primary key value 50, but the other column values in the row are different. +- Primary node `MMRnode_c` does not have a row with primary key value 50. + +Assuming that the correct state of the dept table should be the one in `MMRnode_b`, the following options are available to correct the state of all primary nodes: + +- Manually correct the dept table in `MMRnode_a` and `MMRnode_c`. That is, update the row in `MMRnode_a` so it has the correct values, and insert the missing row in `MMRnode_c`. The dept table on all nodes is now consistent and up-to-date. +- Manually delete the row with primary key value 50 from the table on both `MMRnode_a` and `MMRnode_b`. This brings the dept table on all primary nodes back to a prior, consistent state. Then, with the multi-master replication system running, perform the insert transaction again using the correct column values on any one of the primary nodes. + +After the publication table rows are corrected, update the appropriate control schema table in the publication database currently designated as the controller database to indicate that the conflict has been resolved. + +Each of the methods outlined in the preceding bullet points are described in more detail in the following sections. + +The method outlined by the first bullet point is accomplished as follows. + +**Step 1:** Manually correct the rows in the publication tables with SQL statements incorporated within a transaction block as described in Section [Conflict Resolution Concept for the Log-Based Method](../../../06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/#conflict_resolution_for_log_based). + +On `MMRnode_a`, correct the erroneous row by running the following transaction block: + +``` text +BEGIN; +UPDATE _edb_replicator_pub.rrep_properties SET value = current_timestamp + WHERE key = 'last_mcr_timestamp'; +UPDATE edb.dept SET dname = 'MARKETING', loc = 'LOS ANGELES' + WHERE deptno = 50; +COMMIT; +``` + +This is shown by the following: + +``` text +MMRnode_a=# BEGIN; +BEGIN +MMRnode_a=# UPDATE _edb_replicator_pub.rrep_properties SET value = current_timestamp +MMRnode_a-# WHERE key = 'last_mcr_timestamp'; +UPDATE 1 +MMRnode_a=# UPDATE edb.dept SET dname = 'MARKETING', loc = 'LOS ANGELES' +MMRnode_a-# WHERE deptno = 50; +UPDATE 1 +MMRnode_a=# COMMIT; +COMMIT +MMRnode_a=# SELECT * FROM edb.dept; + deptno | dname | loc +--------+------------+------------- + 10 | ACCOUNTING | NEW YORK + 20 | RESEARCH | DALLAS + 30 | SALES | CHICAGO + 40 | OPERATIONS | BOSTON + 50 | MARKETING | LOS ANGELES +(5 rows) +``` + +On `MMRnode_c`, insert the missing row with the following transaction block: + +``` text +BEGIN; +UPDATE _edb_replicator_pub.rrep_properties SET value = current_timestamp + WHERE key = 'last_mcr_timestamp'; +INSERT INTO edb.dept VALUES (50,'MARKETING','LOS ANGELES'); +COMMIT; +``` + +This is shown by the following: + +``` text +MMRnode_c=# BEGIN; +BEGIN +MMRnode_c=# UPDATE _edb_replicator_pub.rrep_properties SET value = current_timestamp +MMRnode_c-# WHERE key = 'last_mcr_timestamp'; +UPDATE 1 +MMRnode_c=# INSERT INTO edb.dept VALUES (50,'MARKETING','LOS ANGELES'); +INSERT 0 1 +MMRnode_c=# COMMIT; +COMMIT +MMRnode_c=# SELECT * FROM edb.dept; + deptno | dname | loc +--------+------------+------------- + 10 | ACCOUNTING | NEW YORK + 20 | RESEARCH | DALLAS + 30 | SALES | CHICAGO + 40 | OPERATIONS | BOSTON + 50 | MARKETING | LOS ANGELES +(5 rows) +``` + +The dept table on `MMRnode_a` and `MMRnode_c` now match the content of the table on `MMRnode_b`: + +**Step 2:** In the control schema of the publication database currently designated as the controller database, modify the entry in the xdb\_conflicts table to indicate the conflict has been resolved. Table `xdb_conflicts` is located in schema `_edb_replicator_pub`. + +
+ +
+ +Note + +
+ +The entries in table `xdb_conflicts` only affect the data that appears in the Conflict History tab and the SQL query described in Section [Finding Conflicts](../../../06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/#find_conflict). Changing entries in `xdb_conflicts` has no effect on future replication operations, but provides a way to keep a record of how past conflicts were resolved. + +
+ +Note the following points regarding the `xdb_conflicts` table: + +- A row in the `xdb_conflicts` table appears as an entry in the Conflict History tab. +- The primary key of the xdb\_conflicts table is coMMRised of columns `src_db_id`, `target_db_id`, `src_rrep_sync_id`, and `target_rrep_sync_id`. `Column src_db_id` contains a unique identifier for the primary node in which a transaction occurred that results in a conflict when replicated to the primary node identified by target\_db\_id. `src_rrep_sync_id` is the identifier of the transaction on the source primary node involved in the conflict while `target_rrep_sync_id` is the identifier of the transaction on the target primary node that is involved in the conflict. Note: The src\_rrep\_sync\_id and target\_rrep\_sync\_id values are used internally by xDB Replication Server and are not needed for the manual conflict resolution process. +- Table `xdb_pub_database` in the control schema associates the database identifiers `src_db_id` and `target_db_id` with the primary node attributes such as the database name, IP address, and port. +- Column table\_id is the identifier of the publication table on which the conflict occurred. Association of the table\_id value with the publication table attributes such as its name and schema is found in each primary node in `_edb_replicator_pub.rrep_tables`. +- Column `pk_value` contains text indicating the primary key value that resulted in the conflict. The text is formatted as `column_name=value`. If the primary key is composed of two or more columns, each column and value pair is separated by the keyword AND such as column\_1=value\_1 AND column\_2=value\_2. This provides the primary key of the row in the publication table designated by table\_id that resulted in the conflict. +- Column resolution\_status indicates the status of the conflict. Possible values are P (pending) or C (completed – the conflict has been resolved). This status appears in the Resolution Status column of the Conflict History tab. +- `Column win_db_id` can be used to record the database identifier of the primary node that contains the “winning” (accepted) transaction. This information appears in the Winning DB column of the Conflict History tab. + +The following shows the **Conflict History** tab prior to updating the `xdb_conflicts` table. + +![Pending uniqueness conflict](/../../../images/image160.png) + +The entry for the pending insert/insert conflict on the deptno primary key value of 50 can be located in xdb\_conflicts with the following query for this example: + +``` text +MMRnode_a=# SELECT * FROM _edb_replicator_pub.xdb_conflicts +MMRnode_a-# WHERE pk_value = 'deptno=50' +MMRnode_a-# AND conflict_type = 'II' +MMRnode_a-# AND resolution_status = 'P'; +-[ RECORD 1 ]-------+-------------------------- +src_db_id | 1 +target_db_id | 22 +src_rrep_sync_id | 44713808 +target_rrep_sync_id | 44718040 +table_id | 31 +conflict_time | 21-AUG-15 15:34:55.134171 +resolution_status | P +resolution_strategy | +resolution_time | +alert_status | +conflict_type | II +win_db_id | 0 +win_rrep_sync_id | 0 +notes | +pk_value | deptno=50 +``` + +This entry appears in the Postgres Enterprise Manager Client as shown by the following: + +![Pending conflict in xdb_conflicts](/../../../images/image161.png) + +Change the value in column resolution\_status from P (pending) to C (completed) to indicate this conflict has been resolved. The value in winning\_db\_id is changed to 22 to indicate primary node `MMRnode_b` contains the winning transaction. + +The SQL statement to perform this update for the `MMRnode_a` to the `MMRnode_b` synchronization conflict is the following: + +``` text +UPDATE _edb_replicator_pub.xdb_conflicts SET + resolution_status = 'C', + win_db_id = 22 +WHERE pk_value = 'deptno=50' + AND conflict_type = 'II' + AND resolution_status = 'P'; +``` + +The following is the updated xdb\_conflicts entry: + +![Resolved conflict in xdb_conflicts](/../../../images/image162.png) + +When viewed in the **Conflict History** tab, the entry now shows Resolved instead of `Pending` in the **Resolution Status** column, and the **Winning DB** column shows the address of primary node `MMRnode_b`. + +![Resolved uniqueness conflict](/../../../images/image163.png) diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/05_correction_using_new_txn_log_based.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/05_correction_using_new_txn_log_based.mdx new file mode 100644 index 00000000000..16972424783 --- /dev/null +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/05_correction_using_new_txn_log_based.mdx @@ -0,0 +1,147 @@ +--- +title: "Correction Using New Transactions" +--- + + + + +Another method for bringing all the publication tables to a consistent state is by removing any changes caused by the conflicting transactions and then issuing new, corrected transactions at one primary node, which you allow the multi-master replication system to synchronize to all other primary nodes. + +Referring back to the uniqueness conflict on the dept table, instead of correcting the erroneous row and inserting the row into the primary node where it is missing as described in Section [Manual Publication Table Correction](../../../06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/#manual_publication_table_correction_log_based), you can delete the conflicting rows from all primary nodes, then insert the correct row in one primary node and let the multi-master replication system synchronize the correct row to all primary nodes. + +**Step 1:** Manually delete the inserted row from the publication tables in all primary nodes using the transaction block described in Section [Conflict Resolution Concept for the Log-Based Method](../../../06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/#conflict_resolution_for_log_based). + +On `MMRnode_a`, delete the erroneous row with the following transaction block: + +``` text +BEGIN; +UPDATE _edb_replicator_pub.rrep_properties SET value = current_timestamp + WHERE key = 'last_mcr_timestamp'; +DELETE FROM edb.dept WHERE deptno = 50; +COMMIT; +This is shown by the following: +MMRnode_a=# BEGIN; +BEGIN +MMRnode_a=# UPDATE _edb_replicator_pub.rrep_properties SET value = current_timestamp +MMRnode_a-# WHERE key = 'last_mcr_timestamp'; +UPDATE 1 +MMRnode_a=# DELETE FROM edb.dept WHERE deptno = 50; +DELETE 1 +MMRnode_a=# COMMIT; +COMMIT +MMRnode_a=# SELECT * FROM dept; + deptno | dname | loc +--------+------------+---------- + 10 | ACCOUNTING | NEW YORK + 20 | RESEARCH | DALLAS + 30 | SALES | CHICAGO + 40 | OPERATIONS | BOSTON +(4 rows) +``` + +On `MMRnode_b`, delete the row even though the transaction created the correct result: + +``` text +MMRnode_b=# BEGIN; +BEGIN +MMRnode_b=# UPDATE _edb_replicator_pub.rrep_properties SET value = current_timestamp +MMRnode_b-# WHERE key = 'last_mcr_timestamp'; +UPDATE 1 +MMRnode_b=# DELETE FROM edb.dept WHERE deptno = 50; +DELETE 1 +MMRnode_b=# COMMIT; +COMMIT +MMRnode_b=# SELECT * FROM dept; + deptno | dname | loc +--------+------------+---------- + 10 | ACCOUNTING | NEW YORK + 20 | RESEARCH | DALLAS + 30 | SALES | CHICAGO + 40 | OPERATIONS | BOSTON +(4 rows) +``` + +On `MMRnode_c`, no changes are required as the conflicting transaction did not insert a new row into the table on this node: + +``` text +MMRnode_c=# SET search_path TO edb; +SET +MMRnode_c=# SELECT * FROM dept; + deptno | dname | loc +--------+------------+---------- + 10 | ACCOUNTING | NEW YORK + 20 | RESEARCH | DALLAS + 30 | SALES | CHICAGO + 40 | OPERATIONS | BOSTON +(4 rows) +``` + +**Step 2:** Rerun the correct transaction on one primary node with the multi-master replication system running. Do not run this within the transaction block described in Section [Conflict Resolution Concept for the Log-Based Method](../../../06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/#conflict_resolution_for_log_based) as the objective is to synchronize it to all primary nodes. + +For this example, the correct INSERT statement is executed on `MMRnode_a`: + +On `MMRnode_a`: + +``` text +MMRnode_a=# INSERT INTO dept VALUES (50, 'MARKETING', 'LOS ANGELES'); +INSERT 0 1 +MMRnode_a=# SELECT * FROM dept; + deptno | dname | loc +--------+------------+------------- + 10 | ACCOUNTING | NEW YORK + 20 | RESEARCH | DALLAS + 30 | SALES | CHICAGO + 40 | OPERATIONS | BOSTON + 50 | MARKETING | LOS ANGELES +(5 rows) +``` + +**Step 3:** Perform synchronization replication. + +The same rows now appear in the publication table on all primary nodes. + +On `MMRnode_a`; + +``` text +MMRnode_a=# SELECT * FROM dept; + deptno | dname | loc +--------+------------+------------- + 10 | ACCOUNTING | NEW YORK + 20 | RESEARCH | DALLAS + 30 | SALES | CHICAGO + 40 | OPERATIONS | BOSTON + 50 | MARKETING | LOS ANGELES +(5 rows) +``` + +On `MMRnode_b`; + +``` text +MMRnode_b=# SELECT * FROM dept; + deptno | dname | loc +--------+------------+------------- + 10 | ACCOUNTING | NEW YORK + 20 | RESEARCH | DALLAS + 30 | SALES | CHICAGO + 40 | OPERATIONS | BOSTON + 50 | MARKETING | LOS ANGELES +(5 rows) +``` + +On MMRnode\_c; + +``` text +MMRnode_c=# SELECT * FROM dept; + deptno | dname | loc +--------+------------+------------- + 10 | ACCOUNTING | NEW YORK + 20 | RESEARCH | DALLAS + 30 | SALES | CHICAGO + 40 | OPERATIONS | BOSTON + 50 | MARKETING | LOS ANGELES +(5 rows) +``` + +**Step 4:** In the control schema of the publication database currently designated as the controller database, modify the entry in the `xdb_conflicts` table to indicate the conflict has been resolved as in Step 2 of Section [Conflict Resolution Concept for the Log-Based Method](../../../06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/#conflict_resolution_for_log_based). + +![Resolved conflict in xdb_conflicts](/../../../images/image164.png) diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/index.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/index.mdx new file mode 100644 index 00000000000..7b10951c49e --- /dev/null +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/index.mdx @@ -0,0 +1,40 @@ +--- +title: "Manual Conflict Resolution for the Log-Based Method" +--- + + + + +
+ +
+ +Note + +
+ +The manual conflict resolution discussion in this section applies only to multi-master replication systems configured with the log-based method of synchronization replication. See [Manual Conflict Resolution for the Trigger-Based Method](../../06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/#manual_conflict_resolution_trigger_based_method) for information on manual conflict resolution for multi-master replication systems configured with the trigger-based method of synchronization replication. + +
+ +As discussed in Section Conflict Prevention – Uniqueness Case <conflict\_prevention\_uniquness> there is no built-in, automatic conflict resolution strategy for the uniqueness (`insert/insert`) conflict. If a uniqueness conflict occurs, then you must modify rows in the publication tables containing the conflict as well as modify rows in the control schema tables in the primary nodes to resolve the conflict. + +Similarly, manual correction must be used for update/delete and delete/update conflicts. In addition, if the conflict resolution option is set to Manual (see [Updating the Conflict Resolution Options](../../06_mmr_operation/#update_conflict_resolution_options)) and a conflict occurs, this conflict must also be resolved in a manual fashion. + +This section describes the updates you must make to the publication tables and the control schema tables in the primary nodes. + +This discussion is divided into the following topics: + +- Finding Conflicts. Locating unresolved conflicts +- Conflict Resolution Concept for the Log-Based Method. Basic concept on how to run transactions to apply corrections +- Overview of Correction Strategies. Overview of the methods you can use to perform the corrections +- Manual Publication Table Correction. Manual correction of the publication tables +- Correction Using New Transactions. Using new transactions to bring all primary nodes to a consistent state + +The following sections describe these topics in detail. + +
+ +finding\_conflict conflict\_resolution\_for\_log\_based overview\_correction\_strategies\_log\_based manual\_publication\_table\_correction\_log\_based correction\_using\_new\_txn\_log\_based + +
diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/index.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/index.mdx new file mode 100644 index 00000000000..ee02dd65211 --- /dev/null +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/index.mdx @@ -0,0 +1,16 @@ +--- +title: "Conflict Resolution" +--- + + + + +There are certain situations where synchronization replication may result in data conflicts arising from the row changes that took place on different primary nodes. + +Conflict resolution deals with the topic of the types of conflicts that might occur, the strategies for dealing with conflicts, and the options available for automatically resolving such conflicts. + +
+ +configuration\_para\_and table\_setting conflict\_types conflict\_detection conflict\_resolution\_strategies conflict\_prevention\_uniquness conflict\_prevention\_mmr\_ready auto\_conflict\_resolution\_eg custom\_conflict\_handling manual\_conflict\_resolution\_trigger\_based\_method manual\_conflict\_resolution\_log\_based\_method + +
diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/07_view_conflict_history.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/07_view_conflict_history.mdx new file mode 100644 index 00000000000..749d57c80be --- /dev/null +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/07_view_conflict_history.mdx @@ -0,0 +1,68 @@ +--- +title: "Viewing Conflict History" +--- + + + + +Conflict history shows the following types of events that occurred during synchronization replication: + +- Uniqueness conflicts where two or more primary nodes attempted to insert a row with the same primary key value or unique column value. +- `Update/update` conflicts where two or more primary nodes attempted to update the same column of the same row +- `Update/delete` and `delete/update` conflicts where one primary node attempted to update a row that was deleted by another primary node. + +See Section [Conflict Resolution](../06_mmr_operation/06_conflict_resolution/#conflict_resolution) for more information on conflict resolution. + +
+ +
+ +Note + +
+ +The conflict history can be viewed from the Publication node under any primary node in the multi-primary replication system. The history shows conflicts on all publication tables of all primary nodes that occurred during synchronization, and hence, the history appears the same regardless of the primary node under which it is viewed. + +
+ +
+ +
+ +Note + +
+ +For uniqueness (`insert/insert`) conflicts the number of entries appearing under the Conflict History tab differs when the trigger-based method of synchronization replication is used as compared to the log-based method. If the trigger-based method is used, a single insert/insert conflict appears as two entries in the conflict history. Each entry differs in that the source and target database fields for the two conflicting primary nodes are interchanged. If the same conflict occurs when the log-based method is used, only one entry appears in the conflict history. + +
+ +The following steps describe how to view the conflict history. + +**Step 1:** Select any Publication node under a Database node representing a primary node. Tabs labeled `General, Realtime Monitor, Replication History`, and `Conflict History` appear. + +![Selecting a publication on which to view conflict history](/../images/image165.png) + +**Step 2:** Click the `Conflict History` tab to show conflict history. Click `Refresh` to ensure all the conflicts are listed. + +![Conflict History tab](/../images/image166.png) + +**Step 3:** Use the `Conflict Display` Criteria drop-down list to display only conflicts of the chosen status. + +![Selecting conflict history by status](/../images/image167.png) + +**Step 4:** Click the `View Data` link to show the details of a particular conflict. + +
+ +
+ +Note + +
+ +The `View Data` link and `Conflict Details` window are available only for multi-primary replication systems configured with the trigger-based method of synchronization replication. There is no `View Data` link or `Conflict Details` window for multi-primary replication systems configured with the log-based method of synchronization replication. + +
+ +![Conflict Details window](/../images/image168.png) diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/08_update_conflict_resolution_options.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/08_update_conflict_resolution_options.mdx new file mode 100644 index 00000000000..4ff12b1fe16 --- /dev/null +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/08_update_conflict_resolution_options.mdx @@ -0,0 +1,29 @@ +--- +title: "Updating the Conflict Resolution Options" +--- + + + + +A current conflict resolution option on a publication table can be changed. See Section [Conflict Resolution](../06_mmr_operation/06_conflict_resolution/#conflict_resolution) for information on conflict resolution. + +**Step 1:** Make sure the publication server whose node is the parent of the publication you wish to change is running and has been registered in the xDB Replication Console you are using. See Section [Registering a Publication Server](../05_smr_operation/02_creating_publication/#registering_publication_server) for directions on starting and registering a publication server. + +**Step 2:** Select the Publication node under the Publication Database node representing the primary definition node. + +![Selecting a publication in which to update conflict resolution options](/../images/image169.png) + +**Step 3:** Open the `Conflict Resolution Options` dialog box in any of the following ways: + +- From the `Publication` menu, choose `Update Publication`, then `Conflict Resolution Options`. +- Click the secondary mouse button on the `Publication` node, choose `Update Publication`, and then choose `Conflict Resolution Options`. + +![Opening the Conflict Resolution Options dialog box](/../images/image170.png) + +**Step 4:** For each table, you can select the primary conflict resolution strategy and a standby strategy by clicking the master mouse button over the appropriate box to expose a drop-down list of choices. + +![Updating conflict resolution strategies](/../images/image171.png) + +**Step 5:** Click the `Update` button, and then click `OK` in response to Conflict Resolution Options Updated Successfully. + +![Successfully updated conflict resolution options](/../images/image172.png) diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/09_enable_disable_table_filters.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/09_enable_disable_table_filters.mdx new file mode 100644 index 00000000000..8ccd6de77b6 --- /dev/null +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/09_enable_disable_table_filters.mdx @@ -0,0 +1,80 @@ +--- +title: "Enabling/Disabling Table Filters on a Primary node" +--- + + + + +Table filters must first be defined in a set of available table filters in the publication before they can be enabled on a primary node. See Section [Adding a Publication](../06_mmr_operation/#add_pub_mmr) for information on defining table filters in a multi-master replication system. + +
+ +
+ +Note + +
+ +See Section [Table Settings and Restrictions for Table Filters](../02_overview/02_replication_concepts_and_definitions/#table_settings_and_restrictions_for_table_filters) for table setup requirements for a log-based replication system as well as general restrictions on the use of table filters. + +
+ +The following are the steps for enabling or disabling table filters on an existing primary node. + +**Step 1:** Make sure the publication server whose node is the parent of the primary nodes of the replication system is running and has been registered in the xDB Replication Console you are using. See Section [Registering a Publication Server](../05_smr_operation/02_creating_publication/#registering_publication_server) for directions on starting and registering a publication server. + +**Step 2:** Select the Publication Database node corresponding to the primary node on which you wish to enable or disable individual filter rules. + +![Selecting a primary node on which to enable or disable filter rules](/../images/image173.png) + +**Step 3:** Click the secondary mouse button on the Publication Database node and choose `Update Filter Rule`. + +![Opening the Filter Rules tab on a primary node](/../images/image174.png) + +
+ +
+ +Note + +
+ +If you wish to enable or disable filter rules on the current primary definition node, you must first switch the role of the primary definition node to another primary node in order to expose the Update Filter Rule option in the primary node context menu. See Section [Switching the Primary definition node](../06_mmr_operation/#switching_pdn) for directions on switching the primary definition node. + +
+ +The primary node you choose as the new primary definition node should contain a superset of, or at least an equivalent set of data as the current primary definition node. The reason for this is to ensure that the former primary definition node contains the complete set of data satisfying the filtering criteria after you take a snapshot from the new primary definition node to the former primary definition node on which you just enabled the table filters. + +**Step 4:** In the `Filter Rules` tab check or uncheck the boxes to specify the filter rules to enable or disable on the primary node. At most one filter rule may be enabled on any given table. Click the `Save` button. + +![Filter Rules tab](/../images/image175.png) + +**Step 5:** A confirmation box appears presenting a warning message and a recommendation to perform a snapshot replication to any primary node on which you changed the filtering criteria. + +Click the `Ok` button in the confirmation box to proceed with the update to the filter rule selections. Click the Cancel button to return to the Filter Rules tab if you wish to modify your filter rule selections. + +![Change filter rule confirmation](/../images/image176.png) + +**Step 6:** If you clicked the `Ok` button in the preceding step, the Filter Rules updated successfully confirmation message appears if the update was successful. + +![Successful update of filter rules](/../images/image177.png) + +If you clicked the `Cancel` button in the preceding step, the Filter Rules tab reopens. You can modify your filter rule selections by repeating Step 4, or you can click the `Cancel` button in the Filter Rules tab to abort the filter rule updates on the primary node. + +**Step 7:** It is strongly recommended that a snapshot replication be performed to the primary node that contains tables on which the filtering criteria has changed. + +A snapshot ensures that the content of the primary node tables is consistent with the updated filtering criteria. See Section [Performing Snapshot Replication](../06_mmr_operation/#perform_snapshot_replication_mmr) for information on performing a snapshot replication. + +
+ +
+ +Note + +
+ +The primary definition node, which provides the source of the table content for a snapshot, should contain a superset of all the data contained in the other primary nodes of the multi-master replication system. This ensures that the target of the snapshot receives all of the data that satisfies the updated filtering criteria. + +
+ +On the contrary, if the primary definition node contains only a subset of all the data contained in the other primary nodes, then a snapshot to another primary node may not result in the complete set of data that is required for that target primary node. diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/10_switching_pdn.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/10_switching_pdn.mdx new file mode 100644 index 00000000000..556a61c568e --- /dev/null +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/10_switching_pdn.mdx @@ -0,0 +1,54 @@ +--- +title: "Switching the Primary definition node" +--- + + + + +After the multi-master replication system is created, you can switch the role of the primary definition node with another primary node. + +**Step 1:** Make sure the publication server whose node is the parent of the primary nodes of the replication system is running and has been registered in the xDB Replication Console you are using. See Section [Registering a Publication Server](../05_smr_operation/02_creating_publication/#registering_publication_server) for directions on starting and registering a publication server. + +**Step 2:** Select the Publication Database node corresponding to the primary node that you wish to set as the primary definition node. + +![Selecting the primary node to set as the master definition node](/../images/image178.png) + +**Step 3:** Click the secondary mouse button on the Publication Database node and choose `Set as PDN`. + +![Setting the master definition node](/../images/image179.png) + +**Step 4:** In the `Set as PDN` confirmation box, click the `Yes` button. + +![Set as PDN confirmation](/../images/image180.png) + +**Step 5:** The selected master node is now the master definition node. + +![Database promoted to master definition node](/../images/image181.png) + +**Step 6:** The value `Yes` in the PDN field of the Property window indicates this database is the primary definition node. + +
+ +
+ +Note + +
+ +The new primary definition node is moved to the top of the replication tree in the xDB Replication Console. + +
+ +![Master definition node (PDN) indicated by ‘Yes’ in the Property window](/../images/image182.png) + +
+ +
+ +Note + +
+ +You should now perform a synchronization replication to ensure that the new primary definition node is synchronized with the other primary nodes. See [Performing Synchronization Replication](../06_mmr_operation/#perform_synchronization_replication_mmr) for directions on performing a synchronization replication. + +
diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/11_ensuring_ha.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/11_ensuring_ha.mdx new file mode 100644 index 00000000000..abd1c410c7d --- /dev/null +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/11_ensuring_ha.mdx @@ -0,0 +1,84 @@ +--- +title: "Ensuring High Availability" +--- + + + + +In a multi-master replication system, the primary nodes participating in replication can reside on separate physical hosts. If any primary node goes offline, the primary nodes on the other hosts continue to synchronize transactions amongst themselves thereby ensuring consistency of the publication tables on the remaining active primary nodes. When an offline primary node is brought back online, pending transactions involving that primary node are synchronized with the other primary nodes of the replication system. No transaction data is lost between the primary nodes. + +Thus, an inherent characteristic of multi-master replication systems is that each primary node serves as a backup for the other nodes, and any such node can provide consistent publication data to applications. + +Similarly, the complete, multi-master replication system configuration information (that is, the control schema and its control schema objects) is stored in each publication database (that is, every primary node) of the multi-master replication system. + +Thus, should any primary node go offline, the configuration information stored in the control schema is always available to the publication server in order to continue operation of the replication system. + +Though every publication database contains a copy of the control schema, the publication database designated as the controller database has special significance to the operation of the replication system. + +The significance of the controller database and its proper usage to ensure high availability of the replication system are discussed in the following sections. + +## Significance of the Controller Database + +At any given point in time during operation of the replication system, one of the publication databases of the primary nodes is designated as the controller database. + +The controller database can be identified in either of the following ways: + +- In the xDB Replication Console, when a primary node is selected, the Controller database field in the Property window is set to `Yes` if this primary node is the current controller database. +- In the xDB Replication Configuration file, the authentication and connection parameters are set to the controller database. See Section [xDB Replication Configuration File](../02_overview/03_replication_server_components_and_architecture/#xdb_replication_conf_file) for information on the xDB Replication Configuration file. + +When a replication system is in use, the xDB Replication Server, and particularly, the publication server component, accesses the currently designated controller database for any configuration information. + +Any changes that you make to the replication system configuration using the xDB Replication Console or the xDB Replication Server CLI are first updated in the control schema of the controller database, and then replicated by the xDB Replication Server to the other publication databases to keep such information consistent. + +
+ +
+ +Note + +
+ +Replication history may take a longer period of time to replicate from the controller database to the other publication databases, therefore it is possible that some replication history may be lost if access to the controller database fails, and a switchover is made to another publication database to act as the controller database. See Section [Viewing Replication History](../07_common_operations/#view_replication_history) for information on replication history. + +
+ +Therefore it is important that the controller database be accessible whenever the replication system is use. + +There may be circumstances where access to the controller database cannot be maintained such as scheduled maintenance that must be performed on the database server hosting the controller database or an unexpected network or system problem. + +Such circumstances are addressed in the following sections. + +## Automatic Switchover of the Controller Database + +If the publication server is currently running with its connection to the controller database, and that database suddenly becomes inaccessible such as with a network or system problem, the xDB Replication Server automatically performs a connection to another online publication database to act as the controller database. + +Thus, there is no apparent disruption in the operation of the xDB Replication Server. + +The controller database authentication and connection information is modified accordingly in the xDB Replication Configuration file (see Section [xDB Replication Configuration File](../02_overview/03_replication_server_components_and_architecture/#xdb_replication_conf_file)). Thus, any subsequent startups of the publication and subscription servers use this newly designated controller database. + +The controller database can be subsequently changed to use another publication database as described in sections [Switching an Active Controller Database](../06_mmr_operation/#switching_active_controller_db) and [Restarting with an Alternate Controller Database](../06_mmr_operation/#restart_with_alternate_controller_db). + + + +## Switching an Active Controller Database + +If at some point, the database server hosting the controller database must be taken offline for maintenance or some other reasons you can switch the role of the controller database to another publication database. + +If the publication server is currently running, this switch can be made using the xDB Replication Console (see Section [Switching the Controller Database](../07_common_operations/#switching_controller_db)) or the xDB Replication Server CLI (see Section Setting the Controller (setascontroller) <set\_controller>). + +After the switch has occurred, you can take the former controller database offline. Any pending transactions involving the former controller database will be applied after it is brought back online. + +If the publication server is not running, you can still change the controller database so that the publication server connects to a newly designated controller database when the publication server is started. See Section [Restarting with an Alternate Controller Database](../06_mmr_operation/#restart_with_alternate_controller_db) for information on this method. + + + +## Restarting with an Alternate Controller Database + +If for some reason the currently designated controller database cannot be accessed by the publication server, certain symptoms may occur such as the following: + +- The xDB Replication Console is unresponsive or the xDB Replication Server CLI commands fail unpredictably. +- The publication server is not running and it cannot be successfully started. + +If it is determined that the controller database is inaccessible, then you can switch the controller database role to another publication database by editing the xDB Replication Configuration file so it contains the connection information of another primary node in the replication system. See Section [xDB Replication Configuration File](../02_overview/03_replication_server_components_and_architecture/#xdb_replication_conf_file) for information on the xDB Replication Configuration file. + +After the xDB Replication Configuration file has been modified, restart the publication server along with the subscription server if you are using that as well. See Section [Registering a Publication Server](../05_smr_operation/02_creating_publication/#registering_publication_server) for instructions on starting the publication server. See Section [Registering a Subscription Server](../05_smr_operation/03_creating_subscription/#registering_subscription_server) for instructions on starting the subscription server. diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/12_optimizing_performance_mmr.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/12_optimizing_performance_mmr.mdx new file mode 100644 index 00000000000..fa5bef90adc --- /dev/null +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/12_optimizing_performance_mmr.mdx @@ -0,0 +1,52 @@ +--- +title: "Optimizing Performance" +--- + + + + +Various publication server configuration options are available to optimize the performance of multi-master replication systems. + +Almost all publication server performance related configuration options for single-master replication systems are equally applicable to multi-master replication systems (except when they are database produce specific, such as for Oracle). See [Optimizing Performance](../05_smr_operation/08_optimizing_performance/#optimizing_performance) for a discussion of these options. + +The publication server configuration options are set in the publication server configuration file. See Section [Publication and Subscription Server Configuration Options](../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/#publications_and_subscriptions_server_conf_options) for a detailed explanation of how to set the configuration options in this file. + +In addition, for configuration options specifically applicable to publication databases configured with the log-based method of synchronization replication, see Section [Log-Based Method of Synchronization Options](../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/#log_based_sync_options). + +The following are some additional configuration options applicable to multi-master replication systems only. + +`uniquenessConflictDetection` + +The `uniquenessConflictDetection` option determines if uniqueness conflict needs to be detected at data load time or should be deferred to when data is applied against a target primary node. Possible values are `EAGER` and `LAZY`. Set it to `EAGER` if there is a high probability of duplicate inserts across primary nodes. + +When the number of primary nodes is equal to two, then the conflict detection is performed in the default `LAZY` mode. + +When the number of primary nodes is greater than two, then the conflict detection is always performed in EAGER mode. (A `LAZY` mode setting is ignored.) This is primarily required to avoid removing the already replicated conflicted changes from a target node, which otherwise is an expensive option. + +`uniquenessConflictDetection={EAGER | LAZY}` + +The default value is `LAZY` when the number of primary nodes is two. + +`skipConflictDetection` + +The `skipConflictDetection` option controls whether or not to skip conflict detection during synchronization replication. The default is false and should be changed only when the probability of data conflict across primary nodes is zero. For example if each primary node operates on an independent set of data then turning on this option `iMMRoves` the replication time. + +`skipConflictDetection={true | false}` + +The default value is false. + +`deadlockRetryCount` + +In a multi-master replication system, if a deadlock is detected on a target primary node, the `deadlockRetryCount` option controls the number of times the publication server attempts to retry application of the changes in the current replication cycle after waiting for the number of milliseconds specified by `deadlockWaitTime`. Set `deadlockRetryCount` to 0 to turn off this option in which case the failed changes are attempted in the next replication cycle. + +`deadlockRetryCount=n` + +The default value for n is 1. + +`deadlockWaitTime` + +The `deadlockWaitTime` option is used with the `deadlockRetryCount` option to set the wait time in milliseconds before the publication server attempts to retry application of the changes on the target primary node. + +`deadlockRetryCount=n`\` + +The default value for n is 1000. diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/index.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/index.mdx new file mode 100644 index 00000000000..2b8d9d7764d --- /dev/null +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/index.mdx @@ -0,0 +1,16 @@ +--- +title: "Multi-Master Replication Operation" +--- + + + + +This chapter describes how to configure and run xDB Replication Server for multi-master replication systems. + +For configuration and management of your replication system, the xDB Replication Console graphical user interface is used to illustrate the steps and examples in this chapter. The same steps can be performed from the operating system command line using the xDB Replication Server Command Line Interface (CLI). The commands of the xDB Replication Server CLI utility are described in Chapter [xDB Replication Server Command Line Interface](08_xdb_cli/#xdb_cli). + +
+ +pre\_steps creating\_publication\_mmr creating\_primary\_nodes control\_schema\_created\_in\_primary\_nodes on\_demand\_replication\_mmr conflict\_resolution view\_conflict\_history update\_conflict\_resolution\_options enable\_disable\_table\_filters switching\_pdn ensuring\_ha optimizing\_performance\_mmr + +
diff --git a/product_docs/docs/eprs/6.2/07_common_operations/01_select_tables_wildcard_selector.mdx b/product_docs/docs/eprs/6.2/07_common_operations/01_select_tables_wildcard_selector.mdx new file mode 100644 index 00000000000..325a2646399 --- /dev/null +++ b/product_docs/docs/eprs/6.2/07_common_operations/01_select_tables_wildcard_selector.mdx @@ -0,0 +1,151 @@ +--- +title: "Selecting Tables with the Wildcard Selector" +--- + + + + +When selecting tables for creating a publication for a single-master replication system (see [Adding a Publication](../05_smr_operation/02_creating_publication/#adding_publication)) or a multi-master replication system (see [Adding a Publication](../06_mmr_operation/#add_pub_mmr)), there may be cases where the number of available tables for selection is so large that simply choosing them from a checklist becomes a difficult and time-consuming process. + +This difficulty can also be encountered when adding tables to an existing publication (see [Adding Tables to a Publication](../07_common_operations/06_managing_publication/#add_tables_to_pub)) or deleting tables from an existing publication (see [Removing Tables from a Publication](../07_common_operations/06_managing_publication/#remove_tables_from_pub)). + +In such cases, the wildcard selector provides the capability to choose a set of tables by using pattern matching similar to the technique used by the SQL statement `LIKE` clause. + + + +## Wildcard Selector Patterns + +`Pattern matching` as performed by the wildcard selector is the process in which the eligible tables for an operation are returned in a filtered list if their schema and table name combination match a character string called a pattern. Matching a pattern means that the schema and table name combined in a string formatted as `schema_name.table_name` matches the pattern, character by character, according to the rules designated for the characters appearing in the pattern. + +If the schema\_name.table\_name string matches the pattern, then the schema and table are displayed in the filtered list for that pattern, which is the `Available Tables` field of the `Wildcard Selector` dialog box. You can then selectively choose the tables from the filtered list to be added to a local list, which contains the potential, candidate tables for the operation for which you are using the wildcard selector. + +Similarly, you can remove tables from the local list that had been previously selected if you decide that you do not want these particular tables applied for the operation. + +With the exception of characters called wildcards, characters appearing in a pattern require that the character in the corresponding position in the `schema_name.table_name` string must match the pattern character in a case insensitive manner (that is, the letters A or a, match both A and a). + +The pattern characters called wildcard characters or simply wildcards are interpreted in a special manner when compared to the corresponding character position of the `schema_name.table_name` character string. + +Interpretation of pattern characters is described by the following: + +- `?` – Single-character wildcard specifies that any single character may exist in its position of the pattern. (The SQL LIKE clause uses the underscore character (\_) for this purpose.) +- `%` - Multi-character wildcard specifies that any combination of multiple characters, including the absence of any character, may exist in its position of the pattern. +- `[abc...]` – List wildcard specifies that any one of the characters listed within the brackets may exist in its position of the pattern. +- `[a-d]` – Range wildcard specifies that any one character that is greater than or equal to the character preceding the hyphen (-) and less than or equal to the character following the hyphen may exist in its position of the pattern. +- `[abcd-f...]` – List and range combination wildcard specifies that any character that matches any of the list or range wildcard descriptions as described in the previous two bullet points may exist in its position of the pattern. +- Any character specified in the pattern other than `?, %, [, ],` and the characters enclosed within the square brackets of a list or range wildcard must exist in its position of the pattern. Pattern matching of such characters is case insensitive (for example, a pattern of `edb.dept` matches a schema and table with the name `EDB.Dept`). +- `NOT pattern, !pattern, ! pattern` – Exclusive pattern specifies that tables that match the pattern string indicated by pattern are omitted from the filtered list. Tables that do not match pattern are included in the filtered list. The keyword NOT may be in uppercase, lowercase, or mixed case, but must be followed by a single space character preceding pattern. !pattern specifies that pattern immediately follows the exclamation point (!) with no intervening space character. ! pattern specifies that a single space character exists between pattern and the exclamation point (!). +- `pattern*` - Specify the asterisk (\*) immediately following the pattern with no intervening space character if you want to include tables in the filtered list that match pattern and have been previously selected (that is, the local list tables) along with tables that have not been selected. In the filtered list, each previously selected, local list table is displayed with a check mark in its check box. Each filtered list table that was not previously selected has no check mark in its check box. By default when the asterisk is omitted, only tables that have not been previously selected are returned in the filtered list. Using the asterisk is useful for removing currently selected tables from the local list. + +The wildcard pattern definitions and examples can be seen from a help screen displayed by clicking the secondary mouse button on the Filter Pattern text field of the Wildcard Selector dialog box: + +![Filter Pattern Help screen](/../images/image183.png) + +The following section describes the basic steps for using the wildcard selector. + +## Using the Wildcard Selector + +This section describes the basic process of using the wildcard selector. The following terms are used in the Wildcard Selector dialog box and the description of the wildcard selector feature: + +- `Calling Dialog Box`. This is the dialog box of the operation from which you invoke the Wildcard Selector dialog box. The final set of tables from the wildcard selector is applied to the operation managed by the calling dialog box. Possible calling dialog boxes are the Create Publication dialog box (see [Adding a Publication](../05_smr_operation/02_creating_publication/#adding_publication) for a single-master replication system or [Adding a Publication](../06_mmr_operation/#add_pub_mmr) for a multi-master replication system), the `Add Tables` dialog box (see [Adding Tables to a Publication](../07_common_operations/06_managing_publication/#add_tables_to_pub)), and the `Remove Tables` dialog box (see Section [Removing Tables from a Publication](../07_common_operations/06_managing_publication/#remove_tables_from_pub)). +- `Table List`. This is the list of currently selected tables displayed in the calling dialog box. Each selected table has a check mark in its check box. +- `Local List`. This is a temporary, internal copy of the table list managed by the wildcard selector. The wildcard selector allows you to add tables to the local list and to remove tables from the local list. When you click the Done button of the Wildcard Selector dialog box, the local list becomes the table list. In other words, the local list tables appear as the selected tables of the calling dialog box. +- `Unselected Tables`. These are the tables eligible for, but have not been selected for the operation with which you are using the wildcard selector. When you click the Filter List button, the unselected tables that match the filter pattern are listed in the Available Tables field of the Wildcard Selector dialog box. To list all unselected tables, use the percent sign (`%`) for the filter pattern. +- `Selected Tables`. These are the tables you have selected for the operation with which you are using the wildcard selector. That is, these are the tables comprising the local list. To display selected tables that match a filter pattern, add the asterisk character (`*`) immediately after the filter pattern. Each selected table has a check mark in its check box. + +The following describes the steps for using the wildcard selector. + +**Step 1:** Prior to opening the Wildcard Selector dialog box, you may start selecting tables from the list of available tables of the calling dialog box by adding a check mark to the check box of each such table. + +From the calling dialog box, click the `Use Wildcard Selection` button to open the `Wildcard Selector` dialog box. + +The tables that you have preselected are included in the local list used by the wildcard selector to manage the addition or removal of tables. + +For example, the following is the Create Publication dialog box from which the wildcard selector can be used: + +![Invoking the wildcard selector from a calling dialog box](/../images/image184.png) + +**Step 2:** The Available Tables field displays the filtered list matching the pattern used in the Filter Pattern text field. + +When the Wildcard Selector dialog box is initially opened, the default filter pattern is the percent sign (`%`), which returns all eligible, unselected tables. + +![Wildcard Selector dialog box](/../images/image185.png) + +**Step 3:** Enter a pattern in the `Filter Pattern` text field to narrow down your desired table selection. Click the `Filter List` button to display the tables that match the pattern. + +![Tables matching a filter pattern](/../images/image186.png) + +**Step 4:** Select tables from the `Available Tables` list that you want to add to the local list by placing a check mark in each such table’s check box. You can also click the Select `All` check box to select all tables and then individually deselect certain tables by removing its check mark. + +![Tables selected for the local list](/../images/image187.png) + +**Step 5:** Click the `Apply Selections to Local List button` to add the selected tables to the local list. + +The following example shows that the selected tables have been removed from the Available Tables list after the Apply Selections to Local List button was clicked since they are no longer unselected. + +![Selected tables added to the local list](/../images/image188.png) + +
+ +
+ +Note + +
+ +You can click the `Cancel` button at any time to terminate the wildcard selector without applying the local list changes to the table list of the calling dialog box. + +
+ +**Step 6:** As many times as desired, repeat steps 3 through 5 using the filter patterns needed to add all of your desired tables to the local list. + +The following example shows a second filter pattern and the returned filter list. + +![Tables matching a second filter pattern](/../images/image189.png) + +All tables are then selected from this filtered list by clicking the `Select All` check box. + +![Select all tables](/../images/image190.png) + +The `Apply Selections to Local List` button is clicked to add all tables to the local list. After applying the selections, there are no unselected tables remaining that match the filter pattern. + +![All filter list tables added to the local list](/../images/image191.png) + +By using the asterisk after the pattern, you can display previously selected tables comprising the local list. Each selected table has a check mark its check box. + +![Display selected and unselected tables matching the filter pattern](/../images/image192.png) + +You can remove selected tables from the local list by clicking on each such table’s check box to remove the check mark. + +The following filter pattern includes the tables to be removed from the local list. + +![List selected tables to be removed](/../images/image193.png) + +The check marks are removed from the selected tables to be removed from the local list. + +![Deselect tables to be removed from the local list](/../images/image194.png) + +The removal of the deselected tables from the local list occurs along with the addition of any newly selected tables when you click the `Apply Selections to Local List` button. + +![Deselected tables removed from the local list now shown as unselected](/../images/image195.png) + +The deselected tables still appear in the Available Tables list since they still match the pattern, but as unselected tables (that is, with no check mark in each such table’s check box). + +**Step 7:** When the local list contains all of your desired, selected tables, click the Done button. The Wildcard Selector dialog box closes, and the local list becomes the list of selected tables displayed by the calling dialog box. + +![Create Publication calling dialog box with applied local list](/../images/image196.png) + +![Create Publication calling dialog box with applied local list (continued)](/../images/image197.png) + +Alternatively, if you decide that you do not wish to apply the local list, click the `Cancel` button. The local list changes are discarded and the table list of the calling dialog box remains unchanged. + +**Step 8:** You can invoke the wildcard selector again and repeat the process to add tables to, or remove tables from the table list by beginning with Step 1. + +The following example verifies that if you were to invoke the wildcard selector a second time, the local list includes the table list created from the prior closure of the wildcard selector. + +![Local list includes selected tables from the calling dialog box table list](/../images/image198.png) + +**Step 9:** When the calling dialog box contains the complete list of your desired tables, click the appropriate button of the calling dialog box to complete the operation with the selected tables. + +The following shows the publication created from the selected tables. + +![Publication created with the selected tables](/../images/image199.png) diff --git a/product_docs/docs/eprs/6.2/07_common_operations/02_creating_schedule.mdx b/product_docs/docs/eprs/6.2/07_common_operations/02_creating_schedule.mdx new file mode 100644 index 00000000000..e8244263583 --- /dev/null +++ b/product_docs/docs/eprs/6.2/07_common_operations/02_creating_schedule.mdx @@ -0,0 +1,114 @@ +--- +title: "Creating a Schedule" +--- + + + + +A schedule establishes recurring points in time when replication is to occur. + +
+ +
+ +Note + +
+ +(For MMR only): Be sure an initial snapshot replication has been performed from the primary definition node to every other primary node in the multi-master replication system. If a newly added primary node did not undergo an initial snapshot, any subsequent synchronization replication initiated by a schedule may fail to apply the transactions to that primary node. The initial snapshot could be taken when the primary node is first added (see [Creating Additional Primary nodes](../06_mmr_operation/#creating_primary_nodes)) or by performing an on demand snapshot (see [Performing Snapshot Replication](../06_mmr_operation/#perform_snapshot_replication_mmr)). + +
+ +In a single-master replication system, once a schedule is created the subscription server initiates replications according to the schedule until either the schedule is changed or removed. In a multi-master replication system, the publication server handles this process. + +See [Managing a Schedule](../07_common_operations/#managing_schedule) for changing or removing a schedule. + +When a scheduled replication is to take place, all components of the replication system must be running: + +- Publication database server +- Subscription database server (applies only to single-master replication systems) +- Publication server +- Subscription server (applies only to single-master replication systems) + +If any of the preceding components are not running at the time of a scheduled replication, then replication does not occur at that point in time. The replication occurs at the next scheduled replication time when all applicable replication system components are running. + +For synchronization replications with the trigger-based method, changes that have occurred on the source tables that were not replicated due to a skipped, scheduled replication are maintained as pending transactions in the shadow tables of the source database. + +For synchronization replications with the log-based method, changes that have been extracted from the WAL files to in-memory structures, but have not been applied are persisted using Java object serialization to files on the host running the publication server. + +All changes since the last successful replication are applied whenever the next scheduled replication occurs. Thus, accumulated changes are never lost due to a missed replication. + +For snapshot replications, skipped, scheduled replications present no problem since a snapshot replication replaces all of the data in the target tables with the current source data. + +**Step 1 (For SMR only):** Select the Subscription node of the subscription for which you wish to create a schedule. + +![Selecting a subscription on which to set a schedule](/../images/image109.png) + +**Step 1 (For MMR only):** Select the Publication Database node designated as the controller database. (The Controller database field in the Property window is set to Yes for the controller database.) + +![Selecting the controller database on which to set a schedule](/../images/image200.png) + +**Step 2 (For SMR only):** Open the Scheduled Task Wizard dialog box in any of the following ways: + +![Opening the Scheduled Task Wizard dialog box on a subscription](/../images/image201.png) + +- From the `Subscription` menu, choose `Schedule`, then `Configure Schedule`. +- Click the secondary mouse button on the Subscription node and choose `Configure Schedule`. +- Click the primary mouse button on the `Configure Schedule` icon. + +**Step 2 (For MMR only):** Open the `Scheduled Task Wizard` dialog box in any of the following ways: + +- Click the secondary mouse button on the Publication Database node and choose `Configure Schedule`. +- Click the primary mouse button on the `Configure Schedule icon`. + +![Opening the Scheduled Task Wizard dialog box on a subscription](/../images/image202.png) + +**Step 3:** In the `Scheduled Task Wizard` dialog box, select the radio button for either synchronization replication or snapshot replication. + +
+ +
+ +Note + +
+ +If the publication associated with this subscription is a snapshot-only publication, then only Snapshot may be chosen. + +
+ +
+ +
+ +Note + +
+ +In a multi-master replication system, only Synchronize may be chosen. + +
+ +![Scheduled Task Wizard dialog box](/../images/image203.png) + +**Step 4:** Step 4: Select the radio button for the scheduled replication frequency, or select `Cron Expression` to write your own cron expression. The frequency choices have the following meanings: + +- `Continuously`. Schedules replication to run continuously at an interval in seconds that you specify. Select this option if the source tables change frequently during the day and the target tables must be kept up-to-date throughout the course of the day. +- `Daily`. Schedules replication to run once a day at the time you choose. Select this option if the target tables need to be refreshed daily. +- `Weekly`. Schedules replication to run once a day at the time you choose, but only on the specific days of the week you choose. Select this option if you need more flexibility than a daily schedule, and the target tables do not have to be refreshed every day. +- `Monthly`. Schedules replication to run one day per month on the day of the month and time you choose, but only on the specific months you choose. Select this option if updates to the source tables are not very frequent, and the target tables can be out-of-date by a month or more. The Monthly option allows you to schedule replication for as frequently as once a month or infrequently as once a year. +- `Cron` Expression. Provides additional flexibility for specifying a schedule beyond the four preceding radio button choices. See appendix [Writing a Cron Expression](../10_appendix/04_miscellaneous_xdb_processing_topics/#writing_cron_exp) for directions on writing a cron expression. + +The following example shows the selection of a weekly schedule. + +![Selecting a weekly schedule](/../images/image204.png) + +**Step 5:** After completing the `Scheduled Task Wizard` dialog box, click the `Next` button. + +**Step 6:** Your selected schedule will appear. Click the `Finish` button to accept the schedule. + +![Scheduled Task Wizard summary](/../images/image205.png) + +If you click the `Refresh` icon, you will see the schedule properties in the `General` tab. + +![Information window with the replication schedule](/../images/image206.png) diff --git a/product_docs/docs/eprs/6.2/07_common_operations/03_managing_schedule.mdx b/product_docs/docs/eprs/6.2/07_common_operations/03_managing_schedule.mdx new file mode 100644 index 00000000000..9c7a81b873e --- /dev/null +++ b/product_docs/docs/eprs/6.2/07_common_operations/03_managing_schedule.mdx @@ -0,0 +1,83 @@ +--- +title: "Managing a Schedule" +--- + + + + +Once a schedule has been created, xDB Replication Server performs replications according to the schedule until the schedule is updated or removed. + +The updating or removal of a schedule has no effect on a replication that has already been started. If a replication is in progress when the schedule is updated or removed, the in progress replication continues until completion. + +## Updating a Schedule + +The following steps illustrate how to change an existing schedule. + +**Step 1 (For SMR only):** Make sure the subscription server whose node is the parent of the subscription you wish to change is running and has been registered in the xDB Replication Console you are using. See [Registering a Subscription Server](../05_smr_operation/03_creating_subscription/#registering_subscription_server) for directions on starting and registering a subscription server. + +**Step 1 (For MMR only):** Make sure the publication server whose node is the parent of the controller database you wish to change is running and has been registered in the xDB Replication Console you are using. See [Registering a Publication Server](../05_smr_operation/02_creating_publication/#registering_publication_server) for directions on starting and registering a publication server. + +**Step 2 (For SMR only):** Select the Subscription node of the subscription for which you wish to update the schedule. + +![Selecting a subscription whose schedule is to be updated](/../images/image207.png) + +**Step 2 (For MMR only):** Select the Publication Database node designated as the controller database for which you wish to update the schedule. + +![Selecting the controller database whose schedule is to be updated](/../images/image208.png) + +**Step 3 (For SMR only):** Open the `Scheduled Task Wizard` dialog box in any of the following ways: + +- From the `subscription` menu, choose `Schedule`, then `Configure Schedule`. +- Click the secondary mouse button on the Subscription node and choose `Configure Schedule`. +- Click the primary mouse button on the `Configure Schedule` icon. + +**Step 3 (For MMR only):** Open the `Scheduled Task Wizard` dialog box in any of the following ways: + +- Click the secondary mouse button on the Publication Database node and choose `Configure Schedule`. +- Click the primary mouse button on the `Configure Schedule` icon. + +![Opening the Scheduled Task Wizard dialog box from the tool bar](/../images/image209.png) + +**Step 4:** The `Configure Scheduler` confirmation box appears. Click the `Yes` button. + +![Configure Scheduler confirmation](/../images/image210.png) + +**Step 5:** In the Scheduled Task Wizard dialog box, create the new schedule. See Step 3 of Section [Creating a Schedule](../07_common_operations/#creating_schedule) for details on how to create a new schedule. + +![Scheduled Task Wizard dialog box](/../images/image211.png) + + + +## Removing a Schedule + +If you no longer wish replication to take place automatically, you must remove the schedule. You can always re-add a schedule or perform on demand replication. + +**Step 1 (For SMR only):** Make sure the subscription server whose node is the parent of the subscription you wish to change is running and has been registered in the xDB Replication Console you are using. See Section [Registering a Subscription Server](../05_smr_operation/03_creating_subscription/#registering_subscription_server) for directions on starting and registering a subscription server. + +**Step 1 (For MMR only):** Make sure the publication server whose node is the parent of the controller database you wish to change is running and has been registered in the xDB Replication Console you are using. See Section [Registering a Publication Server](../05_smr_operation/02_creating_publication/#registering_publication_server) for directions on starting and registering a publication server. + +**Step 2 (For SMR only):** Select the Subscription node of the subscription for which you wish to remove the schedule. + +![Selecting a subscription for removal of a schedule](/../images/image207.png) + +**Step 2 (For MMR only):** Select the Publication Database node designated as the controller database for which you wish to remove the schedule. + +![Selecting the controller database for removal of a schedule](/../images/image208.png) + +**Step 3 (For SMR only):** Remove the schedule in any of the following ways: + +- From the Subscription menu, choose Schedule, then Remove Schedule. +- Click the secondary mouse button on the Subscription node and choose Remove Schedule. +- Click the primary mouse button on the Remove Schedule icon. + +**Step 3 (For MMR only):** Remove the schedule in any of the following ways: \* Click the secondary mouse button on the Publication Database node and choose Remove Schedule. \* Click the primary mouse button on the Remove Schedule icon. + +![Removing the schedule](/../images/image212.png) + +**Step 4:** In the Removing Schedule confirmation box, click the `Yes` button. + +![Removing Schedule confirmation](/../images/image213.png) + +If you click the `Refresh` icon in the tool bar, you will notice that schedule information no longer appears in the information window. + +![- Information window after schedule removal](/../images/image214.png) diff --git a/product_docs/docs/eprs/6.2/07_common_operations/04_view_replication_history.mdx b/product_docs/docs/eprs/6.2/07_common_operations/04_view_replication_history.mdx new file mode 100644 index 00000000000..511af1e9ecf --- /dev/null +++ b/product_docs/docs/eprs/6.2/07_common_operations/04_view_replication_history.mdx @@ -0,0 +1,131 @@ +--- +title: "Viewing Replication History" +--- + + + + +A summary of replications performed on each subscription or primary node can be viewed in the xDB Replication Console. A detailed replication history showing each insert, update, and deletion made against each target table can be viewed as well. See Section [Synchronization Replication with the Trigger-Based Method](../02_overview/02_replication_concepts_and_definitions/#sync_replication_trigger_based) for a discussion on how changes are applied to target tables for the target-based method of synchronization replication. See [Synchronization Replication with the Log-Based Method](../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#sync_replication_log_based) for information on the log-based method of synchronization replication. + +
+ +
+ +Note + +
+ +(For SMR Only): The replication history can be viewed from the Publication node as well as from the Subscription node. The history shown for a Publication node is actually the exact same set of inserts, updates, and deletions made on the subscription tables by the publication server during synchronization. The history shown for a Publication node does not show the actual SQL statements processed on the publication tables that originated from user applications. + +
+ +
+ +
+ +Note + +
+ +(For MMR only): The replication history can be viewed from the Publication node under any primary node in the multi-master replication system. The history shown includes inserts, updates, and deletions made on all publication tables of all primary nodes by the publication server during synchronization, and hence, the history appears the same regardless of the primary node under which the history is viewed. + +
+ +## All Replication History + +Replication history shows the following types of events that occur on a given subscription or primary node: + +- Snapshot replications +- Synchronization replications where at least one change (insert, update, or deletion) was applied to a target table +- Synchronization replications where no updates were applied to any of the target tables since the last restart of the publication server + +The following steps describe how to view the replication history of the events in the preceding list. + +**Step 1 (For SMR only):** Select the node beneath the Subscription node. Tabs labeled `General, Realtime Monitor`, and `Replication History` appear. + +![Selecting a subscription on which to view replication history](/../images/image215.png) + +**Step 1 (For MMR only):** Select any Publication node under a Database node representing a primary node. Tabs labeled `General, Realtime Monitor, Replication History`, and `Conflict History` appear. + +![Selecting a publication on which to view replication history](/../images/image216.png) + +**Step 2:** Click the `Replication History` tab to show a history of replications. + +![Selecting a publication on which to view replication history](/../images/image217.png) + +
+ +
+ +Note + +
+ +Every snapshot replication and each synchronization replication with at least one update produces a history record that is maintained in replication history tables in the control schema. Over time the size of the replication history tables will grow. Replication history records can be periodically deleted. See Section [Cleaning Up Replication History](../07_common_operations/#clean_up_replication_history) for information on cleaning up replication history. + +
+ +## Hiding Synchronizations With Zero Transaction Counts + +You may notice synchronization replications with transaction counts of zero. These records indicate that there were no changes to synchronize at the time the replication occurred. For scheduled replications that occur frequently, this may result in a large number of lines in the `Replication History` tab, thus obscuring the more meaningful replications with non-zero transaction counts as shown below. + +![Replication history with zero transaction counts](/../images/image218.png) + +While viewing the `Replication History` tab, you can hide the records with zero transaction counts as follows: + +**Step 1:** Check the `Show History With Transactions Count > 0` check box located at the bottom of the `Replication History` tab. + +![Setting replication history to hide zero transaction count records](/../images/image219.png) + +**Step 2:** The next time the `Replication History` tab refreshes, only the replications with non-zero transaction counts appear in the `Replication History`. + +
+ +
+ +Note + +
+ +Zero transaction count replication records are maintained in the publication server memory. By default, they are not permanently stored on disk. Therefore when the publication server is shut down, the in-memory zero transaction count replication records are no longer available. + +
+ +When the publication server starts running again, zero transaction count replication records will appear on the `Replication History` tab as zero transaction count replications occur. + +If you wish to permanently store zero transaction count replication records to disk, set the publication server configuration option `persistZeroTxRepEvent` to true. See Section [Replacing Null Characters](../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/#replacing_null_characters) for further information. + + + +## Shadow Table History + +Expanding the nodes under the Subscription node of a single-master replication system, or the Publication node of a multi-master replication system provides more information about the subscription or publication. + +Step 1: Select a table to reveal tabs that contain general information about the table and the replication history of the table. Expand a Table node to reveal the columns in the table. + +![Table properties and columns](/../images/image220.png) + +Step 2: Click the `Replication History` tab to show a history of replications for this table. + +![Table replication history tab](/../images/image221.png) + +**Step 3:** Click the `View Data` link to show a list of each change made to the table during the synchronization replication. The `Synchronize History` window shows two update operations followed by one insert operation against the `emp` target table that correspond to the following set of SQL statements executed on the `emp` source table: + +``` text +UPDATE emp SET hiredate = TO_DATE('07-JUN-15'), mgr = 7698 WHERE empno IN (9001, 9002); +INSERT INTO emp (empno, ename, job, mgr, deptno) VALUES (9003, 'JOHNSON', 'SALESMAN', 7698, 30); +``` + +![Synchronize History window](/../images/image222.png) + +
+ +
+ +Note + +
+ +Since all insert, update, and delete operations on all source tables are recorded in shadow tables, the size of the shadow tables may grow considerably over time for volatile source tables. The rows shown in the Synchronize History window are obtained from these shadow tables. Rows in the shadow tables can be periodically deleted. See [Cleaning Up Shadow Table History](../08_xdb_cli/03_xdb_cli_commands/#clean_shadow_table_history) for information on cleaning up the shadow tables. + +
diff --git a/product_docs/docs/eprs/6.2/07_common_operations/05_managing_history.mdx b/product_docs/docs/eprs/6.2/07_common_operations/05_managing_history.mdx new file mode 100644 index 00000000000..3e419c4f93e --- /dev/null +++ b/product_docs/docs/eprs/6.2/07_common_operations/05_managing_history.mdx @@ -0,0 +1,234 @@ +--- +title: "Managing History" +--- + + + + +xDB Replication Server maintains three types of history: + +- Shadow Table History. Records of each change (insert, update, or delete) that was applied to each target table during synchronization replications using the trigger-based method. There is no shadow table history for synchronization replications using the log-based method. +- Replication History. Summary records of each replication. +- Event History. Records of each change that was applied to various control schema tables. + +The size of the control schema tables that store these history records grows over time, and thus there are a number of methods referred to as cleanup to delete such history records. + +Shadow table history cleanup information is described in sections [Scheduling Shadow Table History Cleanup](../07_common_operations/#schedule_shadow_table_history_cleanup) and [Cleaning Up Shadow Table History](../08_xdb_cli/03_xdb_cli_commands/#clean_shadow_table_history). For replication history cleanup, see [Cleaning Up Replication History](../08_xdb_cli/03_xdb_cli_commands/#clean_replication_history). + +For event history cleanup, see [Cleaning Up Event History](../07_common_operations/#clean_event_history). + + + +## Scheduling Shadow Table History Cleanup + +A preference can be set for each publication database definition to determine if and when shadow table history cleanup should be scheduled for all publications appearing under its corresponding Publication Database node. Shadow table history cleanup has no benefit for snapshot-only publications so if all of your publications under a Publication Database node are snapshot-only publications, then scheduled shadow table history cleanup should be disabled following steps 1 through 4. + +Replication history is not deleted by scheduling shadow table history cleanup. Whenever a new publication database definition is created, there is a scheduled default setting of every Sunday at 12:00 AM midnight for shadow table history cleanup. + +
+ +
+ +Note + +
+ +A configuration option is available to force shadow table history cleanup after every synchronization replication. See [Forcing Immediate Shadow Table Cleanup](../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/#forcing_shadow_table_cleanup) for information on this option. + +
+ +
+ +
+ +Note + +
+ +The cleanup of certain processed rows in the shadow tables may be delayed beyond the next scheduled cleanup, but will eventually be removed in subsequent cleanup events. + +
+ +**For Oracle only:** For scheduling of shadow table history cleanup on an Oracle publication database, the Oracle DBMS\_JOB package on the Oracle database server is used. The time you specify in the schedule for cleanup is passed and stored in `DBMS_JOB` without time zone translation. + +For example, assume the publication server is running on a host in New York and the Oracle publication database is on a server in California, which has a 3-hour time difference. If you set shadow table history cleanup to run at 12:00 AM midnight according to the New York based publication server, the cleanup job on the California based Oracle database will start at 12:00 AM midnight Pacific Time (in California), which would be 3:00 AM Eastern Time (in New York). + +**For SQL Server only:** For scheduling of shadow table history cleanup on a SQL Server publication database, SQL Server Agent is used on the host running SQL Server. The time you specify in the schedule for cleanup is passed to SQL Server Agent without time zone translation. The effect is the same as described for Oracle in the preceding example. + +**For Postgres only:** For scheduling of shadow table history cleanup on a Postgres publication database, the Quartz scheduler is used on the host running the publication server based on the location of the controller database. + +For example, assume the publication server is running on a host in New York and the Postgres publication database on which cleanup is to be scheduled is also the controller database and is on a host in California. If you set shadow table history cleanup to run at 12:00 AM midnight according to the New York based publication server, the cleanup job on the California based Postgres database will start at 12:00 AM midnight Pacific Time (in California), which would be 3:00 AM Eastern Time (in New York). + +By contrast, assume the publication server is running on a host in New York along with the controller database, and the Postgres publication database on which cleanup is to be scheduled is on a host in California. If you set shadow table history cleanup to run at 12:00 AM midnight according to the New York based publication server and controller database, the cleanup job on the California based Postgres database will start at 12:00 AM midnight Eastern Time (in New York), which would be 9:00 PM Pacific Time (in California). + +**For Oracle only:** The cleanup job on an Oracle publication database runs independently of the publication server, so the cleanup job will run regardless of whether or not the publication server is running. + +**For Postgres only:** The publication server must be running in order for the cleanup job to run on a Postgres publication database. + +
+ +
+ +Note + +
+ +An alternative to using the Quartz scheduler when Postgres is the publication database, is to use pgAgent job scheduling instead. See [Using pgAgent Job Scheduling](../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/#using_pgagent_job_scheduling) for information on how to use pgAgent job scheduling and the advantages, thereof. + +
+ +The following steps show how to alter the default setting. + +**Step 1:** Make sure the publication server whose node is the parent of the publication database definition whose cleanup scheduling preference you want to set is running and has been registered in the xDB Replication Console you are using. See [Registering a Publication Server](../05_smr_operation/02_creating_publication/#registering_publication_server) for directions on starting and registering a publication server. + +**Step 2:** Select the Publication Database node for which you want to set the cleanup scheduling preference. + +![Selecting the publication database for cleanup scheduling](/../images/image223.png) + +**Step 3:** From the `Publication` menu, choose `Preferences`. Alternatively, click the secondary mouse button on the Publication Database node and choose `Preferences`. The `Publication Server Preferences` dialog box appears. + +![Publication Server Preferences dialog box](/../images/image224.png) + +**Step 4:** In the `Publication Server Preferences` dialog box, uncheck the box if you do not want to run a scheduled shadow table history cleanup job. Click the `OK` button and skip the remaining steps. + +![Disabled schedule for shadow table history cleanup](/../images/image225.png) + +**Step 5:** If you want to schedule shadow table history cleanup, make sure the Run Cleanup Job check box is selected. Select the radio button for the cleanup frequency. The frequency choices have the following meanings: + +- Every number of minutes/hours. Schedules shadow table history cleanup to run continuously at an interval in either minutes or hours that you specify. Select this option if there are huge volumes of updates to the publication tables during the course of the day, every day. +- Every Day at hour of day. Schedules shadow table history cleanup to run once a day on the hour you choose. Select this option if updates to the publication tables are frequent enough to require more than once a week cleanup, but not needed more than once a day. +- Every selected day of week at hour of day. Schedules shadow table history cleanup to run once a week on the day and at the hour you choose. Select this option if updates to the publication tables are infrequent and you do not want to run cleanup manually. +- Cron Expression. Provides additional flexibility for specifying a schedule beyond the three preceding radio button choices. See appendix [Writing a Cron Expression](../10_appendix/04_miscellaneous_xdb_processing_topics/#writing_cron_exp) for directions on writing a cron expression. + +
+ +
+ +Note + +
+ +A configuration option is available to force shadow table history cleanup after every synchronization replication. See [Forcing Immediate Shadow Table Cleanup](../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/#forcing_shadow_table_cleanup) for information on this option. + +
+ +![Cleanup Job dialog box](/../images/image226.png) + +**Step 6:** Click the `OK` button to accept the schedule. + + + +## Cleaning Up the Shadow Table History + +Non snapshot-only publications (that is, publications on which synchronization replications occur) whose tables experience frequent changes should have their shadow table history cleaned up periodically, otherwise the amount of disk space consumed by the shadow tables in the publication database may grow too rapidly. + +When shadow table history is cleaned up, the rows in the following xDB Replication Server metadata tables are deleted: + +- `RREP_TXSET` +- `RREP_TXSET_LOG` +- `RRST_schema_table` + +**For Oracle only:** When Oracle is the publication database, these tables are located in the publication database in the schema of the publication database user. + +For SQL Server only: When SQL Server is the publication database, these tables are located in the publication database in the schema you chose during Step 5 of Section [SQL Server Publication Database](../05_smr_operation/01_prerequisites/#sql_server_pub_db). + +**For Postgres only:** When Postgres is the publication database, these tables are located in the publication database in schema `_edb_replicator_pub`. Shadow table history cleanup can be scheduled to run periodically (see [Scheduling Shadow Table History Cleanup](../07_common_operations/#schedule_shadow_table_history_cleanup)) or it can be run on demand. + +
+ +
+ +Note + +
+ +The cleanup of certain processed rows in the shadow tables may not occur during an on demand cleanup or may be delayed beyond the next scheduled cleanup, but will eventually be removed in subsequent cleanup events. + +
+ +The following are the steps to run shadow table history cleanup on demand for a chosen publication. + +**Step 1:** Make sure the publication server whose node is the parent of the publication whose shadow table history you wish to clean up is running and has been registered in the xDB Replication Console you are using. See [Registering a Publication Server](../05_smr_operation/02_creating_publication/#registering_publication_server) for directions on starting and registering a publication server. + +**Step 2:** Select the Publication node of the publication for which you want to clean up the shadow table history. + +![Selecting a publication for shadow table history cleanup](/../images/image227.png) + +**Step 3:** From the `Publication` menu, choose `Cleanup Shadow Table History`. Alternatively, click the secondary mouse button on the Publication node and choose `Cleanup Shadow Table History`. The `Cleanup Synchronization History` confirmation box appears. + +![Cleaning up shadow table history](/../images/image228.png) + +**Step 4:** Click the `Yes` button in the `Cleanup Synchronization History` confirmation box. + +![Cleanup Synchronization History confirmation](/../images/image229.png) + +**Step 5:** Click the `Yes` button in response to `Shadow Table’s Transaction History Removed Successfully`. + +![Successful cleanup of shadow table history](/../images/image230.png) + +After shadow table history cleanup, if you click the `View Data` link of the `Replication History` tab, an information message appears stating that there is no synchronization history to view. + +![View Data link after shadow table history cleanup](/../images/image231.png) + + + +## Cleaning Up Replication History + +Cleaning up replication history deletes rows from the following tables in the control schema: + +- `xdb_pub_replog` +- `xdb_pub_table_replog` + +The following are the steps to run replication history cleanup for a chosen publication. + +**Step 1:** Make sure the publication server whose node is the parent of the publication whose replication history you wish to cleanup is running and has been registered in the xDB Replication Console you are using. See [Registering a Publication Server](../05_smr_operation/02_creating_publication/#registering_publication_server) for directions on starting and registering a publication server. + +**Step 2:** Select the Publication node of the publication for which you want to clean up replication history. + +![Selecting a publication for replication history cleanup](/../images/image227.png) + +**Step 3:** From the `Publication` menu, choose `Cleanup Replication History`. Alternatively, click the secondary mouse button on the Publication node and choose Cleanup Replication History. The `Cleanup Replication History` confirmation box appears. + +![Cleaning up replication history](/../images/image232.png) + +**Step 4:** Click the `Yes` button in the Cleanup Replication History confirmation box. + +![Cleanup Replication History confirmation](/../images/image233.png) + +**Step 5:** Click the `Yes` button in response to Replication History Has Been Removed. + +![Successful cleanup of replication history](/../images/image234.png) + +After replication history cleanup, if you click the `Replication History` tab, no history records appear. + +![Successful cleanup of replication history](/../images/image235.png) + + + +## Cleaning Up Event History + +Unlike shadow table history (Section [Cleaning Up Shadow Table History](../08_xdb_cli/03_xdb_cli_commands/#clean_shadow_table_history)) and replication history (Section [Cleaning Up Replication History](../07_common_operations/#clean_up_replication_history)), event history is neither viewable nor removable using the xDB Replication Console. + +Event history is a recording of various updates to the control schema tables that occur during xDB Replication Server processing. Hence, the event history content grows significantly over time. + +The tables containing event history, and thus the tables to be cleaned up are the following: + +- `xdb_events` +- `xdb_events_status` + +In addition, the replication history tables are cleaned up as well. These tables can also be manually cleaned up as described in Section [Cleaning Up Replication History](../07_common_operations/#clean_up_replication_history). + +- `xdb_pub_replog` +- `xdb_pub_table_replog` + +For Oracle, these tables are located in the schema of the publication database user. + +For SQL Server and Postgres, these tables are located in schema `_edb_replicator_pub`. + +The event history and replication history data in the control schema are deleted on a scheduled, daily basis at 12 AM, thus reducing the number of rows in tables `xdb_events, xdb_events_status, xdb_pub_replog`, and `xdb_pub_table_replog`. + +Publication server configuration option `historyCleanupDaysThreshold` provides the capability to designate how old the completed data must reach before its removal. The default setting is that completed data must be older than seven days before it is deleted during the daily 12 AM cleanup process. + +In order to cleanup all completed event and replication history regardless of its age, set `historyCleanupDaysThreshold` to a value of 0, then restart the publication server. The cleanup occurs during the next scheduled 12 AM cleanup process. + +See [Setting Event History Cleanup Threshold](../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/#setting_event_history_cleanup) for the `historyCleanupDaysThreshold` option. diff --git a/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/01_updating_publication_server.mdx b/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/01_updating_publication_server.mdx new file mode 100644 index 00000000000..29c4a96f76e --- /dev/null +++ b/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/01_updating_publication_server.mdx @@ -0,0 +1,103 @@ +--- +title: "Updating a Publication Server" +--- + + + + +There are two aspects of metadata related to the publication server that may need to be updated depending upon the change in the host environment: + +- If the network location (IP address or port number), admin user name, or password of the publication server changes, and if you have saved this information in the server login file, you need to update the server login file with the new information. +- If the network location (IP address or port number) of a subscription server changes, then for each publication server managing a publication associated with a subscription of the changed subscription server, you must update the publication server’s metadata with the subscription server’s new network location. This type of update applies only to single-master replication systems. + +The first type of update is discussed in the following section. The second type of update is discussed in Section [Subscription Server Network Location](../../07_common_operations/06_managing_publication/#sub_server_network_loc). + +## Publication Server Login File + +When you register a publication server in the xDB Replication Console, you may choose to save the publication server’s network location, admin user name, and encrypted password in a server login file on the computer on which you are running the xDB Replication Console. See [Saving Server Login Information](../../#saving_server_login_info) for information on saving the login information. + +The steps described in this section show you how to update the publication server’s login information in the server login file. + +It is assumed that the xDB Replication Console is open on your computer and the publication server whose login information you wish to alter in the server login file, appears as a Publication Server node in the xDB Replication Console’s replication tree. + +![Publication Server node](/../../images/image236.png) + +You can perform the following actions on the server login file: + +- Change the publication server’s login information (`host IP address, port number, admin user name`, and `password`) that you last saved in the server login file. +- Delete the publication server’s login information that is currently saved in the server login file. This is the default action, which will require you to register the publication server again the next time you open the xDB Replication Console. +- Resave the publication server’s login information in the server login file. Each time you open the Update Publication Server dialog box, you must choose to save the login information if you want it recorded in the server login file. + +The following steps change only the content of the server login file residing on the host under the current xDB Replication Console user’s home directory. These changes do not alter any characteristic of the actual publication server daemon (on Linux) or service (on Windows). These changes affect only how a publication server is viewed through the xDB Replication Console on this host by this user. + +**Step 1:** The publication server whose login information you want to save, change, or delete in the server login file must be running before you can make any changes to the file. See Step 1 of Section [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server) for directions on starting the publication server. + +**Step 2:** Click the secondary mouse button on the Publication Server node and choose Update. The `Update Publication Server` dialog box appears. + +![Update Publication Server dialog box](/../../images/image237.png) + +**Step 3:** Complete the fields in the dialog box according to your purpose for updating the server login file: + +- If the publication server now runs on a host with a different IP address or port number than what is shown in the dialog box, enter the correct information. You must also enter the admin user name and password saved in the xDB Replication Configuration file that resides on the host identified by the IP address you entered in the Host field. Check the Save Login Information box if you want the new login information saved in the server login file, otherwise leave the box unchecked in which case, access to the publication server is available for the current session, but subsequent sessions will require you to register the publication server again. +- If you want to delete previously saved login information, make sure the network location shown in the dialog box is still correct. Re-enter the admin user name and password saved in the xDB Replication Configuration file that resides on the host identified by the IP address in the Host field. Leave the Save Login Information box unchecked. Access to the publication server is available for this session, but subsequent sessions will require you to register the publication server again. +- If you want to save the current login information shown in the dialog box, make sure the network location shown in the dialog box is correct. Re-enter the admin user name and password saved in the xDB Replication Configuration file that resides on the host identified by the IP address in the Host field. Check the Save Login Information box. + +![Updated publication server location](/../../images/image238.png) + +**Step 4:** Click the `Update` button. If the dialog box closes, then the update to the server login file was successful. Click the `Refresh` icon in the xDB Replication Console tool bar to show the updated Publication Server node. + +If an error message appears after clicking the Update button, the server login file is not modified. Investigate and correct the cause of the error. Repeat steps 1 through 4. + + + +## Subscription Server Network Location + +
+ +
+ +Note + +
+ +This section applies only to single-master replication systems. + +
+ +Part of the metadata stored for each publication server is the network location of subscription servers that manage subscriptions associated with the publication server’s publications. + +This network information enables the publication server to communicate with the subscription server. + +If the network location of a subscription server changes after subscriptions have been created, the publication server metadata must be updated with the new network location, otherwise a communication failure occurs between the publication server and the subscription server that is made apparent by the following message that appears when you open the xDB Replication Console. + +![Subscription server connection failure](/../../images/image239.png) + +The following are the steps to update the subscription server network location within a publication server’s metadata. + +**Step 1:** The publication server whose metadata you want to change must be running. See Step 1 of Section [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server) for directions on starting the publication server. + +**Step 2:** Click the secondary mouse button on the Publication Server node and choose Update Subscription Servers. The `Update Subscription Servers` dialog box appears. + +
+ +
+ +Note + +
+ +If the error message box reappears, click the `OK` button and repeat Step 2. + +
+ +![Update Subscription Servers dialog box](/../../images/image240.png) + +**Step 3:** Enter the new network location for each subscription server in the list whose network location has changed. + +![Updated subscription server location](/../../images/image241.png) + +**Step 4:** Click the `Update` button. If the dialog box closes, then the update to the publication server’s metadata was successful. + +If an error message appears, investigate and correct the cause of the error. Repeat steps 1 through 4. + +**Step 5:** If the subscription server with the new network location manages subscriptions associated with publications in other publication servers, repeat steps 1 through 4 for these other publication servers. diff --git a/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/02_updating_pub_database.mdx b/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/02_updating_pub_database.mdx new file mode 100644 index 00000000000..faa07775564 --- /dev/null +++ b/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/02_updating_pub_database.mdx @@ -0,0 +1,60 @@ +--- +title: "Updating a Publication Database" +--- + + + + +When you create a publication database definition, you save the publication database server’s network location (IP address and port number), the database identifier, a database login user name, and the user’s password in the control schema accessed by the publication server. This login information is used whenever a session needs to be established with the publication database. See [Adding a Publication Database](../../05_smr_operation/02_creating_publication/#adding_pub_database) for information on creating a publication database definition for a single-master replication system. See sections [Adding the Primary definition node](../../06_mmr_operation/#adding_pdn) and [Creating Additional Primary nodes](../../06_mmr_operation/#creating_primary_nodes) for a multi-master replication system. + +The steps described in this section show you how to update the publication database login information stored in the control schema should any of these attributes of the actual, physical database change. + +
+ +
+ +Note + +
+ +Depending upon the database type (Oracle, SQL Server, or Postgres), certain attributes must not be changed. You must not change any attribute that alters access to the schema where the control schema objects were created when you originally added this publication database definition. See [Control Schema Objects Created for a Publication](../../05_smr_operation/02_creating_publication/#control_schema_objects_created_for_publication) for the location of the control schema objects. + +
+ +Attributes you must not change include the following: + +- The Oracle login user name of an Oracle publication database as the control schema objects already reside in this Oracle user’s schema +- The database server network location if the new network location references a database server that does not access the publication database where the control schema objects are stored +- The database identifier if the new database identifier references a different physical database than where the control schema objects are stored + +Attributes you may change include the following: + +- The login user name’s password to match a changed database user password +- The database server network location if the corresponding location change was made to the database server that accesses the publication database +- The database identifier such as the Oracle service name, SQL Server database name, or Postgres database name if the corresponding name change was made on the database server + +**Step 1:** Make sure the database server that you ultimately wish to save as the publication database definition is running and accepting client connections. + +**Step 2:** Make sure the publication server whose node is the parent of the publication database definition you wish to change is running and has been registered in the xDB Replication Console you are using. See [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server) for directions on starting and registering a publication server. + +**Step 3:** Select the Publication Database node corresponding to the publication database definition that you wish to update. + +![Selecting a publication database definition for update](/../../images/image242.png) + +**Step 4:** From the `Publication` menu, choose `Publication Database`, and then choose `Update Database`. Alternatively, click the secondary mouse button on the Publication Database node and choose Update Database. The `Update Database Source` dialog box appears. + +**Step 5:** Enter the desired changes. See Step 3 of [Adding a Publication Database](../../05_smr_operation/02_creating_publication/#adding_pub_database) for the precise meanings of the fields for a single-master replication system. See sections [Adding the Primary definition node](../../06_mmr_operation/#adding_pdn) and [Creating Additional Primary nodes](../../06_mmr_operation/#creating_primary_nodes) for a multi-master replication system. + +![Update Database Source dialog box for a single-master replication system](/../../images/image243.png) + +**Step 6:** Click the `Test` button. If `Test Result: Success` appears, click the `OK` button, then click the `Save` button. + +If an error message appears investigate the cause of the error, correct the problem, and repeat steps 1 through 6. + +![Successful publication database test](/../../images/image244.png) + +**Step 7:** Restart the publication server. See [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server) for directions on restarting the publication server. + +**Step 8:** Click the `Refresh` icon in the xDB Replication Console tool bar to show the updated Publication Database node and any of its publications. + +![Updated publication database](/../../images/image245.png) diff --git a/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/03_updating_pub.mdx b/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/03_updating_pub.mdx new file mode 100644 index 00000000000..dc6f7b52479 --- /dev/null +++ b/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/03_updating_pub.mdx @@ -0,0 +1,128 @@ +--- +title: "Updating a Publication" +--- + + + + +Existing publications can be updated in the following ways: + +- Tables can be added to the publication +- Tables can be removed from the publication +- Filter rules can be updated on publication tables + + + +## Adding Tables to a Publication + +For a single-master replication system, you can add tables to a publication, even while there are existing subscriptions associated with the publication. Similarly for a multi-master replication system, you can add tables to a publication while there are additional primary nodes in the replication system. + +The following are the steps to add tables to an existing publication. + +**Step 1:** Make sure the publication server whose node is the parent of the publication you wish to change is running and has been registered in the xDB Replication Console you are using. See [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server) for directions on starting and registering a publication server. + +**Step 2 (For SMR only):** Select the Publication node of the publication to which you wish to add tables. + +**Step 2 (For MMR only):** Select the Publication node under the Publication Database node representing the primary definition node. + +![Selecting a publication to which to add tables](/../../images/image246.png) + +**Step 3:** Open the Add Tables dialog box in any of the following ways: + +- From the Publication menu, choose Update Publication, then Add Tables. +- Click the secondary mouse button on the Publication node, choose Update Publication, and then choose Add Tables. +- Click the primary mouse button on the Add Publication Tables icon. + +![Opening the Add Tables dialog box](/../../images/image247.png) + +**Step 4:** Fill in the following fields in the Add Tables tab of the Add Tables dialog box: + +- Add. Check the boxes next to the table names from the Available Tables list that are to be added to the publication. If the publication is a snapshot-only publication, then views would appear in the Available Tables list as well. The Available Tables list contains only tables and views that are not already members of other publications under the same Publication Database node. Alternatively or in addition, click the `Use Wildcard Selection` button to use wildcard pattern matching for selecting tables to be added to the publication. +- Select All. Check this box if you want to include all tables and views in the Available Tables list in the publication. +- Use Wildcard Selection. Click this button to use the wildcard selector to choose tables for the publication. See [Selecting Tables with the Wildcard Selector](../../07_common_operations/#select_tables_wildcard_selector) for information on the wildcard selector. + +![Add Tables dialog box](/../../images/image248.png) + +If you wish to omit certain rows of the publication tables or views from being replicated follow the directions in the next step to create a filter, otherwise go on to Step 6. + +**Step 5 (Optional):** If you want to filter the rows of the publication tables or views, click the Table Filters tab. Define filter rules by entering a unique, descriptive filter name and an appropriate `SQL WHERE` clause in the Filter dialog box to select the rows you want to replicate. + +For a single-master replication system, see [Adding a Publication](../../05_smr_operation/02_creating_publication/#adding_publication) for information on defining table filters on a publication table. + +For a multi-master replication system, see [Adding a Publication](../../06_mmr_operation/#add_pub_mmr). + +**Step 6 (For SMR only):** Click the `Add Tables` button. If Publication Updated Successfully appears, click the `OK` button, otherwise investigate the error and make the necessary corrections. + +![Successfully added tables to publication](/../../images/image249.png) + +**Step 6 (For MMR only):** Click the `Add Tables` button. The `Data Sync Check` dialog box appears warning you that synchronization replication is performed before the table is added. + +If you wish to perform synchronization at some later point in time then add the table, click the No button. + +If you wish to proceed, click the `Yes` button. If Publication Updated Successfully appears, click the `OK` button, otherwise investigate the error and make the necessary corrections. + +![Data Sync Check dialog box](/../../images/image250.png) + +**Step 7:** The replication tree appears as follows with the newly added table under the Publication node. Click the `Refresh` icon. The newly added table appears under the Subscription nodes of a single-master replication system or the additional primary nodes of a multi-master replication system. + +![Publication and subscription with added table](/../../images/image251.png) + +**Step 8 (For MMR only):** If you want to modify or see the default conflict resolution options assigned to the newly added table, follow the directions in Section [Updating the Conflict Resolution Options](../../06_mmr_operation/#update_conflict_resolution_options). + +**Step 9 (Optional):** If you defined table filters on the newly added table, and you wish to use these filters on any subscriptions or primary nodes, you must enable the filters on the table within the desired subscriptions or primary nodes. + +For a single-master replication system, see Enabling/Disabling Table Filters on a Subscription <enable\_filters\_on\_subscription> for directions on enabling table filters on a subscription. + +For a multi-master replication system, see Enabling/Disabling Table Filters on a Primary node <enable\_disable\_table\_filters> for directions on enabling table filters on a primary node. + + + +## Removing Tables from a Publication + +You can remove one or more tables from a publication, but only if the following condition is true: + +- The tables to be removed are not parent tables referenced by foreign key constraints of child tables that are not selected for removal as well. + +![Entity relationship diagram of tables with foreign key constraints](/../../images/image252.png) + +In the preceding entity relationship diagram, the `emp` table has a foreign key constraint referencing the dept table, and the `jobhist` table has two foreign key constraints. One constraint references the `emp` table and the other references the `dept` table. + +If all three tables are in the publication, then you can remove the following combinations of tables: + +- Remove the `jobhist` table only. +- Remove both the `jobhist` table and the `emp` table. + +**Step 1:** Make sure the publication server whose node is the parent of the publication you wish to change is running and has been registered in the xDB Replication Console you are using. See [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server) for directions on starting and registering a publication server. + +**Step 2 (For SMR only):** Select the Publication node of the publication from which you wish to remove tables. + +**Step 2 (For MMR only):** Select the Publication node under the Publication Database node representing the primary definition node. + +![Selecting a publication from which to remove tables](/../../images/image253.png) + +**Step 3:** Open the `Remove Tables` dialog box in any of the following ways: + +- From the `Publication` menu, choose `Update Publication`, then `Remove Tables`. +- Click the secondary mouse button on the Publication node, choose `Update Publication`, and then choose `Remove Tables`. +- Click the primary mouse button on the `Remove Publication Tables` icon. + +![Opening the Remove Tables dialog box by clicking the toolbar icon](/../../images/image254.png) + +**Step 4:** Use the `Remove Tables` dialog box as follows: + +![Remove Tables dialog box](/../../images/image255.png) + +- Remove. Check the boxes next to the table names from the Available Tables list that are to be removed from the publication. If the publication is a snapshot-only publication, then views would appear in the Available Tables list as well. Alternatively or in addition, click the `Use Wildcard Selection` button to use wildcard pattern matching for selecting tables to be removed from the publication. +- Use Wildcard Selection. Click this button to use the wildcard selector to choose tables to remove from the publication. See [Selecting Tables with the Wildcard Selector](../../07_common_operations/#select_tables_wildcard_selector) for information on the wildcard selector. + +**Step 5:** Click the `Remove` button, then click the `Yes` button of the confirmation box. + +![Remove Tables dialog box](/../../images/image256.png) + +**Step 6:** Click the `OK` button in response to Tables Removed Successfully. + +![Successfully removed tables from publication](/../../images/image257.png) + +The replication tree appears as follows without the removed table under the Publication node. + +![Publication minus removed table](/../../images/image258.png) diff --git a/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/04_updating_table_filters_in_pub.mdx b/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/04_updating_table_filters_in_pub.mdx new file mode 100644 index 00000000000..1b824843087 --- /dev/null +++ b/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/04_updating_table_filters_in_pub.mdx @@ -0,0 +1,63 @@ +--- +title: "Updating the Set of Available Table Filters in a Publication" +--- + + + + +Once a set of available table filters has been defined in the publication of a single-master replication system or a multi-master replication system, the set can subsequently be updated by adding new filter rules, removing existing filter rules, or modifying existing filter rules. + +
+ +
+ +Note + +
+ +See [Table Settings and Restrictions for Table Filters](../../02_overview/02_replication_concepts_and_definitions/#table_settings_and_restrictions_for_table_filters) for table setup requirements for a log-based replication system as well as general restrictions on the use of table filters. + +
+ +See [Adding a Publication](../../05_smr_operation/02_creating_publication/#adding_publication) for information on using table filters in a single-master replication system and Section [Adding a Publication](../../06_mmr_operation/#add_pub_mmr) for a multi-master replication system. Updating the set of available table filters in a publication has the following implications: + +- After you have added new filter rules to a publication, you must then enable these newly added filter rules on the subscriptions or primary nodes on which you want these filter rules to have an effect. See Enabling/Disabling Table Filters on a Subscription <enable\_filters\_on\_subscription> for directions on enabling filter rules on a subscription. See Section Enabling/Disabling Table Filters on a Primary node <enable\_disable\_table\_filters> for enabling filter rules on a primary node. +- After you have removed existing filter rules from a publication, the removed filter rules are automatically deleted from any associated subscription or primary node on which they had been enabled. That is, you do not need to modify the subscriptions or primary nodes to disable the filter rules once they have been removed from the publication. +- After you have modified existing filter rules (that is, changed the filter name or filter clause), the modifications are automatically applied to any subscriptions or primary nodes on which the filter rules had been enabled. That is, you do not need to make any changes in the associated subscriptions or primary nodes. + +After your updates to the set of available table filters in the publication have been completed, and the filter rules have been enabled or disabled on the target subscriptions or primary nodes, a snapshot replication should be performed on any subscription or primary node affected by an updated filter rule to ensure that the content of the targeted subscription tables or primary node tables is consistent with the current set of filter rules enabled on those tables. + +The following are the steps to update the set of available filter rules in a publication. + +**Step 1:** Make sure the publication server whose node is the parent of the publication you wish to change is running and has been registered in the xDB Replication Console you are using. See [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server) for directions on starting and registering a publication server. + +**Step 2 (For SMR only):** Select the Publication node of the publication in which you wish to update the set of available table filters. + +**Step 2 (For MMR only):** Select the Publication node under the Publication Database node representing the primary definition node. + +![Selecting a publication in which to update the set of available table filters](/../../images/image259.png) + +**Step 3:** Open the **Update Filters** dialog box in any of the following ways: + +- From the **Publication** menu, choose **Update Publication**, then **Update Filters**. +- Click the secondary mouse button on the Publication node, choose **Update Publication**, and then choose **Update Filters**. + +![Opening the Update Filters dialog box](/../../images/image260.png) + +**Step 4:** The set of all available filter rules defined in the publication are listed under the **Table Filters** tab. + +![- Set of all available filter rules](/../../images/image261.png) + +To add a new filter rule, from the Table/View drop-down list select the table or view for which you wish to add a filter and click the Add Filter button. Fill in the information in the dialog box that appears. (See [Adding a Publication](../../05_smr_operation/02_creating_publication/#adding_publication) for more details on adding individual filter rules in a single-master replication system. See [Adding a Publication](../../06_mmr_operation/#add_pub_mmr) for a multi-master replication system.) + +To remove a filter rule, click the primary mouse button on the filter rule you wish to remove so the entry is highlighted and click the Remove Filter button. You may also modify the filter name or filter clause of a filter rule listed in the Table Filters tab by double-clicking on the cell of the filter name or filter clause you wish to change. When the cursor appears in the cell, enter the text for the desired change. + +When you are satisfied with the updated set of available table filters, click the Update button. + +**Step 5:** A confirmation box appears presenting a warning message and a recommendation to perform a snapshot replication to any subscription or primary node on which you intend to enable the change in filtering criteria. + +Click the **Ok** button in the confirmation box to proceed with the update to the filter rules. Click the **Cancel** button to return to the **Filter Rules** tab if you wish to modify your filter rule updates. + +![Change filter rule confirmation](/../../images/image262.png) + +**Step 6:** You may selectively enable any new filter rules to the corresponding tables of the associated subscriptions or primary nodes. See Enabling/Disabling Table Filters on a Subscription <enable\_filters\_on\_subscription> for information on enabling table filters on a subscription. See Enabling/Disabling Table Filters on a Primary node <enable\_disable\_table\_filters> for enabling table filters on a primary node. diff --git a/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/05_validating_publication.mdx b/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/05_validating_publication.mdx new file mode 100644 index 00000000000..31e3a2e8b73 --- /dev/null +++ b/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/05_validating_publication.mdx @@ -0,0 +1,161 @@ +--- +title: "Validating a Publication" +--- + + + + +Once a publication is created, do not directly change the definitions of the tables belonging to the publication. Doing so may cause a failure during the replication process. Examples of table definitions that must not be altered include: + +- Adding or removing columns to a table +- Renaming columns +- Changing the data types of columns +- Changing the lengths of columns +- Changing a not nullable column to nullable or a nullable column to not nullable +- Adding or removing uniqueness constraints +- Adding or removing check constraints + +In a single-master replication system, xDB Replication Server does not propagate table definition changes to the subscription tables once the subscription tables are created. Rows that may be allowed in an altered publication table may be illegal in the unaltered subscription table and will cause an error during replication. + +Similarly, in a multi-master replication system, table definition changes are not propagated from one primary node to another except when a new primary node is added, and you choose to replicate the schema definition from the primary definition node. + +In addition, for synchronization replication with the trigger-based method, triggers are generated on the publication tables that use certain attributes of these tables. If the table definition is changed, the trigger may no longer function properly. + +
+ +
+ +Note + +
+ +Do not change the triggers generated by xDB Replication Server. If it becomes necessary to regenerate the triggers, you must remove the associated publication and then recreate the publication. + +
+ +
+ +
+ +Note + +
+ +Certain table definition changes can be made and propagated by xDB Replication Server by using the DDL change replication feature. See Section [Replicating DDL Changes](../../07_common_operations/08_replicating_ddl_changes/#replicating_ddl_changes) for information on the DDL change replication feature. + +
+ +If you do not use the DDL change replication feature, then the following general steps must be taken if table definition changes are made. + +In a single-master replication system, if changes were made to the definitions of one or more publication tables, the resolution to the problem must be handled on a case by case basis as it depends upon the type of changes that were made. In the worst case scenario, the subscription and publication must be removed and recreated as follows: + +- Remove the subscription that is associated with the publication. See [Removing a Subscription](../../05_smr_operation/05_managing_subscription/#removing_subscription) for directions to remove a subscription. +- Remove the subscription tables from the subscription database. This is done with `SQL DROP TABLE` statements in the database system. +- Remove the publication. See [Removing a Publication](../../07_common_operations/06_managing_publication/#removing_pub) for directions to remove a publication. +- Re-add the publication. See [Adding a Publication](../../05_smr_operation/02_creating_publication/#adding_publication) for directions to add a publication. +- Re-add the subscription. See [Adding a Subscription](../../05_smr_operation/03_creating_subscription/#adding_subscription) for directions to add a subscription. + +In a multi-master replication system, if changes were made to the definitions of one or more publication tables on one or more primary nodes, the resolution to the problem involves: + +- Making sure the table definitions are updated on all primary nodes so that they are identical, or updating the table definition on the primary definition node so it can be replicated to the other primary nodes. +- Recreating the publication database definitions of the primary nodes. + +The general steps are the following: + +- Remove the publication database definitions of all primary nodes except for the primary definition node. See [Removing a Publication Database](../../07_common_operations/06_managing_publication/#removing_pub_database) for directions to remove a publication database definition. +- Remove the publication. See [Removing a Publication](../../07_common_operations/06_managing_publication/#removing_pub) for directions to remove a publication. +- Remove the publication database definition of the primary definition node. See [Removing a Publication Database](../../07_common_operations/06_managing_publication/#removing_pub_database) for directions to remove a publication database definition. +- At this point all of the triggers, shadow tables, and metadata have been removed from the primary nodes. +- With respect to the publication table definitions, you can either: 1) update the table definitions on all primary nodes so that they are identical, or 2) assume the table definitions on the primary definition node are up-to-date, and delete the out-of-date table definitions on all other primary nodes. +- Re-add the publication database definition for the primary definition node. + +See [Adding the Primary definition node](../../06_mmr_operation/#adding_pdn) for directions to add the primary definition node. + +- Re-add the publication. See [Adding a Publication](../../06_mmr_operation/#add_pub_mmr) for directions to add a publication. +- Re-add additional primary nodes. See [Creating Additional Primary nodes](../../06_mmr_operation/#creating_primary_nodes) for directions to add an additional primary node. When creating a primary node, uncheck the `Replicate Publication Schema` check box if you have already created the table definitions on all primary nodes. Check the `Replicate Publication Schema` check box if you want to propagate the table definitions from the primary definition node to all other primary nodes. A snapshot reloads the primary node tables from the primary definition node. + +## Validating a Single Publication + +xDB Replication Server provides a way to verify that certain characteristics of publication tables have not been altered since the publication was created. Note: This validation feature is only available for publications using the trigger-based method of synchronization replication. This validation feature is not available for publications using the log-based method of synchronization replication. + +The validation operation described here and in Section [Validating All Publications](../../07_common_operations/06_managing_publication/#validate_all_pub) can check for the following types of table modifications: + +- Addition of columns to a table +- Removal of columns from a table +- Renaming of columns + +
+ +
+ +Note + +
+ +In a multi-master replication system, publication tables in only the primary definition node are validated. The validation operation does not check if table definitions have changed in other primary nodes. + +
+ +The following steps show how to validate a single publication: + +**Step 1:** Make sure the publication server whose node is the parent of the publication you wish to validate is running and has been registered in the xDB Replication Console you are using. See [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server) for directions on starting and registering a publication server. + +**Step 2 (For SMR only):** Select the Publication node of the publication you want to validate. + +**Step 2 (For MMR only):** Select the Publication node under the Publication Database node representing the primary definition node. + +**Step 3:** From the `Publication` menu, choose `Validate Publication`. Alternatively, click the secondary mouse button on the Publication node and choose `Validate Publication`. + +![Validating a selected publication](/../../images/image263.png) + +**Step 4:** If All Schema of Published Tables in Publication 'publication\_name' Are Up-To-Date appears, click the `OK` button. If an error appears, determine which tables were changed and what changes were made to the table definitions. These issues need to be resolved on a case by case basis as discussed earlier in this section. + +![Successful validation of all tables in the selected publication](/../../images/image264.png) + + + +## Validating All Publications + +All publications under a single Publication Database node can be validated in one operation. + +
+ +
+ +Note + +
+ +This validation feature is only available for publications using the trigger-based method of synchronization replication. This validation feature is not available for publications using the log-based method of synchronization replication. + +
+ +
+ +
+ +Note + +
+ +In a multi-master replication system, publication tables in only the primary definition node are validated. The validation operation does not check if table definitions have changed in other primary nodes. + +
+ +**Step 1:** Make sure the publication server whose node is the parent of the publications you wish to validate is running and has been registered in the xDB Replication Console you are using. See [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server) for directions on starting and registering a publication server. + +**Step 2 (For SMR only):** Select the Publication Database node under which you want to validate all publications. + +**Step 2 (For MMR only):** Select the Publication Database node representing the primary definition node. + +**Step 3:** From the `Publication` menu, choose `Validate All Publications`. Alternatively, click the secondary mouse button on the Publication Database node and choose `Validate All Publications`. + +![Validating all publications subordinate to a selected publication database](/../../images/image265.png) + +**Step 4:** If there were no modified tables, click the `OK` button. + +![Successful validation of all tables in all publications subordinate to a selected publication database](/../../images/image266.png) + +If there were modified tables, a list of publications that contain the modified tables is displayed. Determine which tables were changed and what changes were made to the table definitions. These issues need to be resolved on a case by case basis as discussed earlier in this section. + +![List of publications with modified tables](/../../images/image267.png) diff --git a/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/06_removing_pub.mdx b/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/06_removing_pub.mdx new file mode 100644 index 00000000000..60b9f22b7a7 --- /dev/null +++ b/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/06_removing_pub.mdx @@ -0,0 +1,38 @@ +--- +title: "Removing a Publication" +--- + + + + +In a single-master replication system, a publication can be removed before its associated subscriptions are removed. See [Removing a Subscription](../../05_smr_operation/05_managing_subscription/#removing_subscription) for directions to remove a subscription. + +In a multi-master replication system, the publication is removed from under the Publication Database node representing the primary definition node. Before a publication can be removed, all non-PDN nodes must be removed. See [Removing a Publication Database](../../07_common_operations/06_managing_publication/#removing_pub_database) for directions to remove a publication database definition of a primary node. + +Removing a publication does not delete the publication tables in the publication database. It removes the identity and association of these tables to xDB Replication Server so the tables remain in the database until the DBA deletes them with the `DROP TABLE SQL` statement. + +The publication database user name is also left intact along with some of the xDB Replication Server metadata database objects. Shadow tables and triggers associated with the publication tables that were created by the publication server are deleted when the publication is removed. The remaining metadata database objects are deleted when the publication database definition is removed. + +**Step 1:** Make sure the publication server whose node is the parent of the publication you wish to remove is running and has been registered in the xDB Replication Console you are using. See [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server) for directions on starting and registering a publication server. + +**Step 2 (For SMR only):** Select the Publication node of the publication that you wish to remove. + +**Step 2 (For MMR only):** Select the Publication node under the Publication Database node representing the primary definition node. + +![Selecting a publication to remove](/../../images/image268.png) + +**Step 3:** Remove the publication in any of the following ways: + +- Choose **Remove Publication** from the **Publication8** menu. +- Click the secondary mouse button on the Publication node and choose **Remove Publication**. +- Click the primary mouse button on the **Remove Publication** icon. + +![Removing the publication using the menu bar](/../../images/image269.png) + +**Step 4:** In the **Remove Publication** confirmation box, click the **Yes** button. + +![Remove Publication confirmation](/../../images/image270.png) + +The Publication node no longer appears under the Publication Database node. + +![Replication tree after removing a publication](/../../images/image271.png) diff --git a/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/07_removing_pub_database.mdx b/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/07_removing_pub_database.mdx new file mode 100644 index 00000000000..b6146aac3c5 --- /dev/null +++ b/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/07_removing_pub_database.mdx @@ -0,0 +1,54 @@ +--- +title: "Removing a Publication Database" +--- + + + + +Deleting a publication database definition from xDB Replication Server is equivalent to removing its Publication Database node. + +If the Publication Database node to be removed is currently designated as the controller database, and there are additional publication databases in other single-master or multi-master replication systems, then you must first switch the controller database role to another publication database. See [Switching the Controller Database](../../07_common_operations/#switching_controller_db) for information on switching the controller database. + +If the Publication Database node to be removed is the only remaining publication database (that is, there are no other single-master or multi-master replication systems), then this database can remain as the controller database since there is no other publication database available to be designated as the controller database. However, any existing subscription database definition must be removed before removing the last Publication Database node. + +In a single-master replication system, before a Publication Database node can be removed, all publications under that Publication Database node must be removed. See [Removing a Publication](../../07_common_operations/06_managing_publication/#removing_pub) for directions on removing a publication. + +In a multi-master replication system, removing a Publication Database node representing a primary node (other than the primary definition node), eliminates that node’s future participation in the replication system. Synchronization replications no longer involve tables in the removed primary node. + +In a multi-master replication system, removing the Publication Database node representing the primary definition node removes the remaining metadata database objects of that particular multi-master replication system, effectively removing the multi-master replication system (except for the database objects comprising the publication tables). + +Removing the Publication Database node representing the primary definition node entails the following steps: + +- If the multi-master replication system is the only xDB replication system (that is, there are no single-master replication systems), then switch the controller database to the primary definition node if the designated controller database is not currently the same database as the primary definition node. +- If there are one or more single-master replication systems in addition to the multi-master replication system, switch the controller database to a Postgres publication database of a single-master replication system. If none of the single-master publication databases is of type Postgres, and there are more than one Oracle or SQL Server publication databases, then you must create a Postgres publication database for a single-master replication system just for the purpose of designating it as the controller database. +- All Publication Database nodes representing non-PDN nodes must be removed. Repeat the process described in this section for each such primary node. +- The publication under the Publication Database node representing the primary definition node must be removed. See [Removing a Publication](../../07_common_operations/06_managing_publication/#removing_pub) for directions on removing a publication. +- Remove the Publication Database node representing the primary definition node using the process described in this section. + +Removing a Publication Database node does not delete the physical database from the database server. It removes the identity and association of the database to xDB Replication Server so no further replications can originate from tables in the database unless there are other publication database definitions in xDB Replication Server with the same host and database identifier. The physical database can only be removed using the database management system’s database removal procedures. + +The publication database user name is also left intact. + +All xDB Replication Server metadata database objects created for that publication database definition are deleted. + +**For Oracle and SQL Server:** All metadata database objects under the publication database user’s schema are deleted. + +**For Postgres only:** The schema `_edb_replicator_pub` and all of its database objects are deleted from the publication database. + +The following are the steps to remove the Publication Database node and equivalently, the publication database definition: + +**Step 1:** Make sure the publication server whose node is the parent of the publication database definition you wish to remove is running and has been registered in the xDB Replication Console you are using. See [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server) for directions on starting and registering a publication server. + +**Step 2:** Select the Publication Database node that you wish to remove. + +![Selecting a publication to remove](/../../images/image271.png) + +**Step 3:** From the Publication menu, choose Publication Database, then Remove Database. Alternatively, click the secondary mouse button on the Publication Database node and choose Remove Database. The **Remove Publication** Database confirmation box appears. + +**Step 4:** In the **Remove Publication Database** confirmation box, click the **Yes** button. + +![Remove Publication confirmation](/../../images/image273.png) + +The Publication Database node no longer appears under the Publication Server node. + +![Replication tree after removing a publication database](/../../images/image274.png) diff --git a/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/index.mdx b/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/index.mdx new file mode 100644 index 00000000000..a3ceb3ae2b6 --- /dev/null +++ b/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/index.mdx @@ -0,0 +1,18 @@ +--- +title: "Managing a Publication" +--- + + + + +After a publication has been created, certain aspects of the underlying replication system environment might be subsequently altered for any number of reasons. Attributes that might change include the network location of the publication database server, the network location of the host running the publication server, database or operating system user names and passwords, and so forth. + +The aforementioned information is saved in the replication system metadata when a publication is created. Changes to these attributes result in inaccurate replication system metadata, which in turn may result in errors during subsequent replication attempts or replication system administration. + +This section describes how to update the metadata stored for the publication server, the publication database definition, and publications in order to keep the information consistent with the actual replication system environment. + +
+ +updating\_publication\_server updating\_pub\_database updating\_pub updating\_table\_filters\_in\_pub validating\_publication removing\_pub removing\_pub\_database + +
diff --git a/product_docs/docs/eprs/6.2/07_common_operations/07_switching_controller_db.mdx b/product_docs/docs/eprs/6.2/07_common_operations/07_switching_controller_db.mdx new file mode 100644 index 00000000000..1032ae9583b --- /dev/null +++ b/product_docs/docs/eprs/6.2/07_common_operations/07_switching_controller_db.mdx @@ -0,0 +1,69 @@ +--- +title: "Switching the Controller Database" +--- + + + + +The controller database is designated in the xDB Replication Configuration file and determines the publication database to which the publication server and subscription server initially connect upon startup. See [Controller Database](../02_overview/03_replication_server_components_and_architecture/#controller_database) for information on the controller database. See [xDB Replication Configuration File](../02_overview/03_replication_server_components_and_architecture/#xdb_replication_conf_file) for information on the xDB Replication Configuration file. + +The current controller database cannot be removed from a replication system unless it is the last publication database remaining subordinate to the publication server. (That is, there are no other publication databases managed by the publication server.) + +If there are more than one publication databases, and you wish to remove the publication database currently designated as the controller database, you must first set another publication database as the controller, and then you can remove the publication database previously designated as the controller. + +The publication database used as the controller can be the primary database of any single-master replication system or any primary node of a multi-master replication system. Any database type (Oracle, SQL Server, or Postgres) is acceptable as the controller database. + +
+ +
+ +Note + +
+ +If the controller database is an Oracle or a SQL Server publication database, then a second Oracle or SQL Server publication database cannot be added to create a second single-master replication system. In order for xDB Replication Server to run more than one single-master replication systems consisting of Oracle or SQL Server publication databases, a Postgres publication database must be designated as the controller database. + +
+ +Once you have multiple Oracle or SQL Server publication databases set up in single-master replication systems with a Postgres controller database, do not switch the controller database to an Oracle or SQL Server publication database. + +Upon switching the controller database, the publication server updates the xDB Replication Configuration file so the parameters user, password, host, port, database, and type are set to the connection and authentication settings for the selected publication database. + +The following are the steps to set another publication database as the controller database. + +**Step 1:** Make sure the publication server whose node is the parent of the publication databases is running and has been registered in the xDB Replication Console you are using. See [Registering a Publication Server](../05_smr_operation/02_creating_publication/#registering_publication_server) for directions on starting and registering a publication server. + +**Step 2:** Select the Publication Database node corresponding to the publication database that you wish to set as the controller database. + +![Selecting the publication database to set as the controller database](/../images/image275.png) + +Step 3: Click the secondary mouse button on the Publication Database node and choose Set as Controller database. + +![Setting the controller database](/../images/image276.png) + +Step 4: In the Set as Controller database confirmation box, click the `Yes` button. + +![Set as Controller database confirmation](/../images/image277.png) + +Step 5: The selected publication database has now been set as the controller database. + +![Publication database promoted to controller database](/../images/image278.png) + +Step 6: The value Yes in the Controller database field of the `Property` window indicates this database is the controller database. + +![Controller database indicated by Yes in the Property window](/../images/image279.png) + +The following shows the xDB Replication Configuration file after the controller database has been switched to the primary node database `MMRnode_b`. + +``` text +#xDB Replication Server Configuration Properties +#Thu Oct 15 14:42:35 GMT-05:00 2015 +port=5444 +admin_password=ygJ9AxoJEX854elcVIJPTw\=\= +user=MMRuser +admin_user=admin +type=enterprisedb +database=MMRnode_b +password=ygJ9AxoJEX854elcVIJPTw\=\= +host=192.168.2.22 +``` diff --git a/product_docs/docs/eprs/6.2/07_common_operations/08_replicating_ddl_changes/01_ddl_change_replication.mdx b/product_docs/docs/eprs/6.2/07_common_operations/08_replicating_ddl_changes/01_ddl_change_replication.mdx new file mode 100644 index 00000000000..2bbe0c2bea2 --- /dev/null +++ b/product_docs/docs/eprs/6.2/07_common_operations/08_replicating_ddl_changes/01_ddl_change_replication.mdx @@ -0,0 +1,35 @@ +--- +title: "DDL Change Replication Process" +--- + + + + +The DDL statement is executed in a controlled manner such that the target table is exclusively locked (by the default setting of configuration option `ddlChangeTableLock)` during the course of the operation. This is done to avoid loss of any transactions while the replication triggers and shadow table are modified by the DDL change replication process. Only one target table is locked at a time while DDL change replication takes place on that table, its triggers, and shadow table. + +If there is a backlog of pending transactions, it is recommended to perform an explicit synchronization replication before performing DDL change replication to avoid prolonging the DDL change replication process for a longer period of time. + +DDL change replication should be performed when the OLTP rate is very low (near zero). + +
+ +
+ +Note + +
+ +Exclusive acquisition of each target table during the DDL change replication process can be turned off by setting `ddlChangeTableLock` to false. However, this should be done only when there are no write transactions taking place against the target table, otherwise transactions may not be recorded by the replication system. See [DDL Change Replication Table Locking](../../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/#ddl_change_replication_table_locking) for additional information on the `ddlChangeTableLock` configuration option. + +
+ +The following is the series of steps that occur during the DDL change replication process. + +- The publication server performs a health check across all databases in the replication system to ensure they can be accessed. If any database is not available the DDL change replication process is aborted with a notification to the user. +- If the publication server configuration option `ddlChangeTableLock` is set to its default value of true, an exclusive table lock is requested on the table to which the DDL change is to be applied. If another application already has a lock on the table, there is a wait time of 2 minutes after which the DDL change replication process is aborted if the lock is not released before then. If `ddlChangeTableLock` is set to false, an exclusive table lock is not requested. +- The DDL statement is executed against the target table. The replication triggers and shadow table are modified accordingly. If an error occurs, the user is informed and the operation is aborted. If `ddlChangeTableLock` is set to true, the exclusive lock is released. +- The preceding two bullet points are repeated on the target table for each database in the replication system. +- The in-memory table metadata definition is refreshed to reflect the DDL change. The user is informed of successful completion of the operation. +- If an error occurs during the prior steps, any changes up to that point are rolled back so that the publication table, replication triggers, and shadow table are reverted back to their original state prior to the start of this operation. If one or more databases goes down before completion of the operation, the publication is marked as dirty to avoid further replication events. + +The following section describes how to initiate DDL change replication using the xDB Replication Console. diff --git a/product_docs/docs/eprs/6.2/07_common_operations/08_replicating_ddl_changes/02_ddl_change_replication_using_xdb_console.mdx b/product_docs/docs/eprs/6.2/07_common_operations/08_replicating_ddl_changes/02_ddl_change_replication_using_xdb_console.mdx new file mode 100644 index 00000000000..9593e22342d --- /dev/null +++ b/product_docs/docs/eprs/6.2/07_common_operations/08_replicating_ddl_changes/02_ddl_change_replication_using_xdb_console.mdx @@ -0,0 +1,38 @@ +--- +title: "DDL Change Replication Using the xDB Replication Console" +--- + + + + +DDL change replication can be applied using the xDB Replication Console as follows. + +**Step 1:** If you plan to use a file to supply the ALTER TABLE statements to a publication table, prepare the text file. Make sure this text file is accessible by the operating system account with which you will open the xDB Replication Console. + +Alternatively, you can copy and paste, or directly type in the `ALTER TABLE` statements into the Alter Publication Table dialog box without having to save the statements in a file. + +**Step 2:** Make sure the publication server whose node is the parent of the publication containing the table you wish to change is running and has been registered in the xDB Replication Console you are using. See [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server) for directions on starting and registering a publication server. + +**Step 3:** Under the publication database of a single-master replication system, or under the primary definition node of a multi-master replication system, open the Alter Publication Table dialog box by clicking the secondary mouse button on the Table node of the table to be modified and choose Alter Table. + +![Selecting a table to alter](/../../images/image280.png) + +**Step 4:** In the `Alter Publication Table` dialog box, if you saved the `ALTER TABLE` statements in a text file, make sure the DDL Script File option is selected, browse for this file, and click the `OK` button. + +![Alter Publication Table dialog box with DDL script file](/../../images/image281.png) + +Alternatively, if you are directly entering the `ALTER TABLE` statements, select the DDL Script option instead of the DDL Script File option. Directly type in, or copy and paste the ALTER TABLE statements from your source into the text box. Click the `OK` button. + +![Alter Publication Table dialog box with copy and paste](/../../images/image282.png) + +**Step 5:** If the `DDL replicated successfully message` box appears, the DDL change was successful across all databases. Click the `OK` button. + +![DDL replicated successfully](/../../images/image283.png) + +If DDL replication was not successful, the problem must be investigated and resolved on a case by case basis. Factors to look for include the following: + +- Were the modifications in the `ALTER TABLE` statements successfully applied to the target table in each database of the replication system? +- For the trigger-based method, were the replication triggers on the target table modified to account for the `ALTER TABLE` statements? +- For the trigger-based method, was the shadow table `RRST_schema_table` located in the `_edb_replicator_pub` schema in each database of the replication system modified to account for the `ALTER TABLE` statements? + +If it is apparent that the replication system is not in a consistent state regarding the table definitions, see the beginning of Section [Validating a Publication](../../07_common_operations/06_managing_publication/#validating_publication) for guidance on how to deal with such issues. diff --git a/product_docs/docs/eprs/6.2/07_common_operations/08_replicating_ddl_changes/index.mdx b/product_docs/docs/eprs/6.2/07_common_operations/08_replicating_ddl_changes/index.mdx new file mode 100644 index 00000000000..efc15ab5334 --- /dev/null +++ b/product_docs/docs/eprs/6.2/07_common_operations/08_replicating_ddl_changes/index.mdx @@ -0,0 +1,262 @@ +--- +title: "Replicating DDL Changes" +--- + + + + +Once a replication system has been created and is in operation, there may be occasions where it is necessary to make changes to the publication table definitions. These data definition language (DDL) changes may include the following: + +- Adding new columns to a table +- Renaming existing columns +- Modifying a column data type +- Modifying a column constraint +- Removing columns + +
+ +
+ +Note + +
+ +See [Validating a Publication](../07_common_operations/06_managing_publication/#validating_publication) for information on dealing with other types of table definition changes. + +
+ +Table definition changes are generally implemented using the `SQL ALTER TABLE` statement, which is issued in an SQL command line utility program such as PSQL. + +The DDL change replication feature accepts one or more `ALTER TABLE` statements. The statements may be provided by means of a text file or by entering them directly into the Alter Publication Table dialog box. The latter can be done by copying and pasting the statements into the dialog box, or by directly typing in the statements. The DDL change replication feature then performs the following actions: + +- Applies the `ALTER TABLE` statements to the appropriate target table in the publication and subscription databases of a single-master replication system, or in all primary nodes (including the primary definition node) of a multi-master replication system. +- For the trigger-based method of synchronization replication, modifies the insert/update/delete triggers that add data into the shadow table whenever a transaction occurs on the target table. +- For the trigger-based method of synchronization replication, modifies the shadow table to properly accommodate the target table changes. + +The DDL change replication feature is supported for Oracle and SQL Server subscription databases as well as Postgres subscription databases. However, the publication database must always be a Postgres database. + +The syntax of the `ALTER TABLE` statement accepted by the DDL change replication features is as follows: + +``` text +ALTER TABLE schema.table_name action +``` + +where `action` can be any of the following: + +Rename an existing column: + +``` text +RENAME [ COLUMN ] column_name TO new_column_name +``` + +Add a column to the table: + +``` text +ADD [ COLUMN ] column_name data_type +[ DEFAULT dflt_expr ] +[ column_constraint_1 [ column_constraint_2 ] ...] +``` + +Drop a column from the table: + +``` text +DROP [ COLUMN ] column_name [ RESTRICT ] +``` + +Change the data type of a column: + +``` text +ALTER [ COLUMN ] column_name [ SET DATA ] TYPE data_type +[ COLLATE "collation" ] +[ USING data_type_expr ] +``` + +Set the DEFAULT value of a column: + +``` text +ALTER [ COLUMN ] column_name SET DEFAULT dflt_expr +``` + +
+ +
+ +Note + +
+ +The SET DEFAULT clause is not supported when Oracle or SQL Server is the subscription database. + +
+ +Drop the DEFAULT value of a column: + +``` text +ALTER [ COLUMN ] column_name DROP DEFAULT +``` + +
+ +
+ +Note + +
+ +The DROP DEFAULT clause is not supported when Oracle or SQL Server is the subscription database. + +
+ +Set the column to reject null values: + +``` text +ALTER [ COLUMN ] column_name SET NOT NULL +``` + +
+ +
+ +Note + +
+ +The SET NOT NULL clause is not supported when SQL Server is the subscription database. + +
+ +Allow the column to accept null values: + +``` text +ALTER [ COLUMN ] column_name DROP NOT NULL +``` + +
+ +
+ +Note + +
+ +The DROP NOT NULL clause is not supported when SQL Server is the subscription database. + +
+ +The following restrictions apply to the manner in which the `ALTER TABLE` statements are specified whether it is in a text file or entered directly into the dialog box: + +- Each `ALTER TABLE` statement must be terminated by a semicolon and begin on a separate line. +- Although the Postgres `ALTER TABLE` statement allows multiple actions per statement, the xDB DDL change replication feature permits only one action per ALTER TABLE statement. +- The target table of all `ALTER TABLE` statements must be the same. +- The `DROP COLUMN` action cannot be specified for a column that comprises part of the table’s primary key. + +**Parameters** + +`schema` + +> The name of the schema containing table\_name. This value is case-sensitive. + +`table_name` + +> The name of the table containing the column to be added, modified, or dropped. This value is case-sensitive. + +`column_name` + +> The name of the column to be added, modified, or dropped. + +`new_column_name` + +> The new name of the column specified in the `RENAME COLUMN` clause. + +`data_type` + +> The data type of the column. + +`dflt_expr` + +> An expression for the default value of the column. + +`column_constraint_n` + +A column constraint such as a UNIQUE or CHECK constraint. For additional information on column constraints see the CREATE TABLE SQL command in the PostgreSQL Core Documentation located at: + + + +`RESTRICT` + +> In the DROP COLUMN clause, do not drop the column if there are objects dependent upon it. This is the default. Note: You cannot specify the CASCADE option as it is not supported by the DDL change replication feature. + +`collation` + +> Collation assigned to the column. If omitted, the column data type’s default collation is used. Examples of collation are default, C, POSIX, en\_US, en\_GB, or de\_DE. + +`data_type_expr` + +> An expression specifying how the column value with the new data type is to be converted from the column value with the old data type. This expression may reference other columns in the same table. If omitted, the default conversion is an assignment cast from the old data type to the new data type. + +**Examples** + +The following are examples of `ALTER TABLE` statements that can be used by the DDL change replication feature. + +The following set of ALTER TABLE statements, either specified by a text file or entered directly into the dialog box, adds columns to the `edb.emp` table. + +``` text +ALTER TABLE edb.emp ADD COLUMN gender CHAR(1) CHECK(gender IN ('M','F')); +ALTER TABLE edb.emp ADD COLUMN gradelevel VARCHAR2(4); +ALTER TABLE edb.emp ADD COLUMN title VARCHAR2(10); +``` + +The following ALTER TABLE statement changes the data type length of the title column and sets its values with the USING `data_type_expr clause`. + +``` text +ALTER TABLE edb.emp + ALTER COLUMN title SET DATA TYPE VARCHAR(25) USING + CASE job + WHEN 'CLERK' THEN 'ADMINISTRATIVE ASSISTANT' + WHEN 'ANALYST' THEN 'R & D SPECIALIST' + WHEN 'SALESMAN' THEN 'MARKETING REPRESENTATIVE' + WHEN 'MANAGER' THEN 'SUPERVISOR' + WHEN 'PRESIDENT' THEN 'CHIEF EXECUTIVE OFFICER' + END; +``` + +The following query shows the values assigned to the title column after the DDL change replication feature applies the preceding ALTER TABLE statement to the `edb.emp` table. This change to the title column and assignment of values occurs in all the subscription databases of a single-master replication system or in all the primary nodes of a multi-master replication system. + +``` text +edb=# SELECT empno, ename, job, title FROM emp; + empno | ename | job | title +-------+--------+-----------+-------------------------- + 7369 | SMITH | CLERK | ADMINISTRATIVE ASSISTANT + 7499 | ALLEN | SALESMAN | MARKETING REPRESENTATIVE + 7521 | WARD | SALESMAN | MARKETING REPRESENTATIVE + 7566 | JONES | MANAGER | SUPERVISOR + 7654 | MARTIN | SALESMAN | MARKETING REPRESENTATIVE + 7698 | BLAKE | MANAGER | SUPERVISOR + 7782 | CLARK | MANAGER | SUPERVISOR + 7788 | SCOTT | ANALYST | R & D SPECIALIST + 7839 | KING | PRESIDENT | CHIEF EXECUTIVE OFFICER + 7844 | TURNER | SALESMAN | MARKETING REPRESENTATIVE + 7876 | ADAMS | CLERK | ADMINISTRATIVE ASSISTANT + 7900 | JAMES | CLERK | ADMINISTRATIVE ASSISTANT + 7902 | FORD | ANALYST | R & D SPECIALIST + 7934 | MILLER | CLERK | ADMINISTRATIVE ASSISTANT +(14 rows) +``` + +The following set of ALTER TABLE statements drops the columns that were added in the first example. + +``` text +ALTER TABLE edb.emp DROP COLUMN gender; +ALTER TABLE edb.emp DROP COLUMN gradelevel; +ALTER TABLE edb.emp DROP COLUMN title; +``` + +The DDL change replication feature can be invoked from either the xDB Replication Console (see [DDL Change Replication Using the xDB Replication Console](../07_common_operations/08_replicating_ddl_changes/#ddl_change_replication_using_xdb_console)) or the xDB Replication Server CLI (see Replicating DDL Changes (replicateddl) <replicating\_ddl\_changes\_cli>). + +The next section describes the process that occurs during DDL change replication. + +
+ +ddl\_change\_replication ddl\_change\_replication\_using\_xdb\_console + +
diff --git a/product_docs/docs/eprs/6.2/07_common_operations/09_offline_snapshot.mdx b/product_docs/docs/eprs/6.2/07_common_operations/09_offline_snapshot.mdx new file mode 100644 index 00000000000..647feb9455c --- /dev/null +++ b/product_docs/docs/eprs/6.2/07_common_operations/09_offline_snapshot.mdx @@ -0,0 +1,205 @@ +--- +title: "Loading Tables From an External Data Source (Offline Snapshot)" +--- + + + + +There may be circumstances when you want to initially load your target tables (subscription tables of a single-master replication system, or non-PDN nodes of a multi-master replication system) using a method other than the snapshot replication functionality of xDB Replication Server. This is referred to as using an offline snapshot. + +For example, you might initially load the tables by running the Migration Toolkit from the command line or by using a backup from an external data source. When you load the target tables using an offline snapshot, special preparations must be taken to account for the following deviations from the default target table creation and loading process: + +- In the typical, default scenario xDB Replication Server creates the target table definitions when you define the subscription in a single-master replication system, or add an additional primary node in a multi-master replication system. When using an offline snapshot, creation of the target table definitions is expected to be your responsibility. You must therefore prevent xDB Replication Server from creating the target table definitions. +- In the typical, default scenario xDB Replication Server performs synchronization replication using batches of SQL statements. If any statement in a batch results in an error, all statements in the batch are rolled back. When using an offline snapshot, if there is the possibility that the external data source used to load the target tables already has transactions applied to it that are also recorded in the shadow tables of the source tables, then you must perform the first synchronization replication in non-batch mode. This is because the batch of synchronization transactions may include SQL statements that have already been applied to the target, which may result in a statement failure in certain cases. + +This section discusses how to deal with the preceding two points for both a single-master and a multi-master replication system. + +First, non-batch mode synchronization and why it must be used in certain cases is explained in more detail in the following section. + + + +## Non-Batch Mode Synchronization + +Synchronization replications are done in batches of updates, each batch committed in a separate transaction. Therefore if any single update in a batch fails, all the updates in the batch are rolled back. + +This process has the following implications. + +Prior to and during the time when the offline snapshot is in progress, there may be updates to the source tables, which are recorded in the source tables’ shadow tables. After the offline snapshot completes, there may be additional updates to the source tables that are also recorded in the shadow tables. + +Since xDB Replication Server has no knowledge of the external data source used to load the target tables, it is unknown to xDB Replication Server whether or not any of the updates made to the source tables during or after the offline snapshot, have already been included in the data used to load the target tables. + +As a result, the shadow tables may include a mixture of duplicate updates that have already been applied to the target tables, as well as new updates that have not been applied to the target tables. + +If you then perform synchronization replication, the publication server attempts to apply all updates recorded in the shadow tables in batches. + +If one of the updates had been an insertion of a new row, and this new row is already in the target table loaded from the offline snapshot, a duplicate key error results when the publication server attempts to apply the batch containing the `INSERT` statement for this row. The duplicate key error forces the rollback of the entire batch. This causes the exclusion of updates in the batch that may not yet have been carried over to the target tables. The source tables and target tables are now inconsistent since there were updates to the source tables that have not been applied to the target tables. + +
+ +
+ +Note + +
+ +The effects of applying `UPDATE` and `DELETE` statements in the batch to a target table that already has been changed by these updates does not cause the same problem as repeated application of INSERT statements. The UPDATE statement would just change the row to the same values a second time. When a DELETE statement affects no rows, this is not considered an error by the database server, and therefore, no rollback of the batch occurs. + +
+ +The solution to the potential rollback of a batch is to apply the shadow table updates in non-batch mode. That is, each SQL statement is individually committed. In that way, if an insertion of a row fails due to a duplicate key error, that statement alone is rolled back. The error does not affect the other shadow table updates that must be applied since all updates are enclosed within their own, individual transactions. + +The `batchInitialSync` configuration option controls whether the first synchronization replication occurs in batch or non-batch mode. If you are using an offline snapshot in an active replication system where updates are occurring to the source tables and transactions are thus accumulating in the shadow tables for the trigger-based method, it is advisable to set `batchInitialSync` to false to perform the first synchronization replication in non-batch mode. + +
+ +
+ +Note + +
+ +An offline snapshot cannot be used to add a subscription or a primary node to an active replication system that uses the log-based method. For the log-based method, offline snapshots can only be used to initially configure the system, and not to update it with additional nodes after the publication database or primary node is actively receiving transactions. + +
+ +If you are using offline snapshots to initially create the entire replication system that has yet to be activated, and the content of the offline snapshots are all assumed to be consistent for the source and target tables, then `batchInitialSync` can be left with its default setting of true since it is assumed that the first synchronization replication will not apply any duplicate updates. + +## Offline Snapshot Configuration Options + +The following are the configuration options that you need to modify when using an offline snapshot. + +
+ +
+ +Note + +
+ +These options apply to the publication server only. + +
+ +`offlineSnapshot` + +> The `offlineSnapshot` option must be set to true before creating the subscription for a single-master replication system, or before adding the primary node for a multi-master replication system. + +`offlineSnapshot={true | false}` + +> The default value is false. +> +> When set to true, the `offlineSnapshot` option prevents the usual creation of the subscription schema and table definitions when the subscription is defined in a single-master replication system since it is assumed that you are creating the subscription table definitions and loading them from an external source other than the publication. +> +> When adding the primary node in a multi-master replication system, leave the Replicate Publication Schema and Perform Initial Snapshot boxes unchecked (see [Creating Additional Primary nodes](../06_mmr_operation/#creating_primary_nodes)). +> +> When `offlineSnapshot` is set to true, this has the direct effect within the control schema by setting column has\_initial\_snapshot to a value of O indicating an offline snapshot is used for the target subscription or primary node represented by the row. Column has\_initial\_snapshot is set in table `xdb_publication_subscriptions` for a single-master replication system and in table `xdb_MMR_pub_group` for a multi-master replication system. + +The setting of has\_initial\_snapshot influences the behavior of the `batchInitialSync` option as explained in the following section. + +After the first replication completes to the target subscription or primary node, has\_initial\_snapshot is changed to Y by xDB Replication Server. + +`batchInitialSync` + +> The `batchInitialSync` option is used to control whether the first synchronization after loading the target tables from an offline snapshot is done in batch mode (the default) or non-batch mode. +> +> Set the `batchInitialSync` option to false to perform synchronization replication in non-batch mode. +> +> The offlineSnapshot configuration option must have first been set to true prior to creating the subscription or adding the additional primary node. A non-batch mode synchronization occurs only if batchInitialSync is false and the has\_initial\_snapshot column in the control schema is set to a value of O as described for the offlineSnapshot option. + +`batchInitialSync={true | false}` + +The default value is true. + + + +## Single-Master Replication Offline Snapshot + +An offline snapshot can be used to initially load the subscription tables of a single-master replication system. For a publication that is intended to have multiple subscriptions, it is possible to create some of the subscriptions using the default xDB Replication Server snapshot replication process as described in Section [Performing Snapshot Replication](../05_smr_operation/04_on_demand_replication/#perform_replication), while other subscriptions can be created from an offline snapshot. + +The following steps describe how to create a subscription from an offline snapshot. + +**Step 1:** Register the publication server, add the publication database definition, and create the publication as described in Section [Creating a Publication](../05_smr_operation/02_creating_publication/#creating_publication). + +**Step 2:** Register the subscription server and add the subscription database definition as described in sections [Registering a Subscription Server](../05_smr_operation/03_creating_subscription/#registering_subscription_server) and [Adding a Subscription Database](../05_smr_operation/03_creating_subscription/#adding_subscription_database), respectively. + +
+ +
+ +Note + +
+ +Steps 3 and 4 must be performed before creating the subscription. Steps 3 through 9 can be repeated each time you wish to create an additional subscription from an offline snapshot. + +
+ +**Step 3:** Modify the publication server configuration file if these options are not already set as described by the following: + +- Change the `offlineSnapshot` option to true. When the publication server is restarted, `offlineSnapshot` set to `true` has the effect that: 1) creating a subscription does not create the schema and subscription table definitions in the subscription database as is done with the default setting, and 2) creating a subscription sets a column in the control schema indicating an offline snapshot is used to load this subscription. +- Set the `batchInitialSync` option to the appropriate setting for your particular situation as discussed at the end of Section [Non-Batch Mode Synchronization](../07_common_operations/#non_batch_mode_sync). + +**Step 4:** Restart the publication server if the publication server configuration file was modified in Step 3. See Section [Registering a Publication Server](../05_smr_operation/02_creating_publication/#registering_publication_server) for directions on restarting a publication server. + +**Step 5:** In the subscription database, create the schema, the subscription table definitions, and load the subscription tables from your offline data source. The subscription database user name used in Section [Adding a Subscription Database](##adding_subscription_database) must have full privileges over the database objects created in this step. Also review the beginning of Section [Adding a Subscription Database](##adding_subscription_database) regarding the rules as to how xDB Replication Server creates the subscription definitions from the publication for each database type as you must follow these same conventions when you create the target definitions manually. + +**Step 6:** Add the subscription as described in Section [Adding a Subscription](../05_smr_operation/03_creating_subscription/#adding_subscription). + +**Step 7:** Perform an on demand synchronization replication. See [Performing Synchronization Replication](../05_smr_operation/04_on_demand_replication/#perform_sync_replication) for directions on performing an on demand synchronization replication. + +**Step 8:** If you are not planning to load any other subscriptions using an offline snapshot at this time, change the `offlineSnapshot` option back to false and the `batchInitialSync` option to true in the publication server configuration file. + +**Step 9:** Restart the publication server if you modified the publication server configuration file in Step 8. + +## Multi-Master Replication Offline Snapshot + +An offline snapshot can be used to initially load the primary nodes of a multi-master replication system. It is possible to load some of the primary nodes using the xDB Replication Server snapshot replication functionality when defining the primary node as described in Section [Creating Additional Primary nodes](../06_mmr_operation/#creating_primary_nodes) or by using an on demand snapshot as described in Section [Performing Snapshot Replication](../06_mmr_operation/#perform_snapshot_replication_mmr), while other primary nodes can be loaded from an offline snapshot. + +
+ +
+ +Note + +
+ +Offline snapshots are not supported for a multi-master replication system that is actively in use. Any changes on an active primary node will be lost during the offline snapshot process of dumping or restoring the data of another node. + +
+ +The following steps describe how to create a primary node from an offline snapshot. + +**Step 1:** Register the publication server, add the primary definition node, and create the publication as described in Section [Creating a Publication](../06_mmr_operation/#creating_publication_mmr). + +
+ +
+ +Note + +
+ +The following steps must be performed before adding a primary node that is to be loaded by an offline snapshot. Steps 2 through 10 can be repeated each time you wish to create an additional primary node from an offline snapshot. + +
+ +**Step 2:** Be sure there is no schedule defined on the replication system, otherwise remove the schedule for the duration of the following steps. See [Removing a Schedule](../07_common_operations/#remove_schedule) for directions on removing a schedule. + +**Step 3:** Modify the publication server configuration file if these options are not already set as described by the following: + +- Change the `offlineSnapshot` option to true. When the publication server is restarted, `offlineSnapshot` set to true has the effect that adding a primary node sets a column in the control schema indicating an offline snapshot is used to load this primary node. +- Set the `batchInitialSync` option to the appropriate setting for your particular situation as discussed at the end of Section [Non-Batch Mode Synchronization](../07_common_operations/#non_batch_mode_sync). + +**Step 4:** Restart the publication server if the publication server configuration file was modified in Step 3. See Section [Registering a Publication Server](../05_smr_operation/02_creating_publication/#registering_publication_server) for directions on restarting a publication server. + +**Step 5:** In the database to be used as the new primary node, create the schema, the table definitions, and load the tables from your offline data source. + +**Step 6:** Add the primary node as described in Section [Creating Additional Primary nodes](../06_mmr_operation/#creating_primary_nodes) with options Replicate Publication Schema and Perform Initial Snapshot unchecked. + +**Step 7:** Perform an initial on demand synchronization. See Section [Performing Synchronization Replication](../06_mmr_operation/#perform_synchronization_replication_mmr) for directions on performing an on demand synchronization. + +**Step 8:** If you are not planning to load any other primary nodes using an offline snapshot at this time, change the `offlineSnapshot` option back to false and the `batchInitialSync` option to true in the publication server configuration file. + +**Step 9:** Restart the publication server if you modified the publication server configuration file in Step 8. + +**Step 10:** Re-add the schedule if one had been removed in Step 2. See Section [Creating a Schedule](../07_common_operations/#creating_schedule) for directions on creating a schedule. diff --git a/product_docs/docs/eprs/6.2/07_common_operations/10_replicating_postgres_partitioned_tables.mdx b/product_docs/docs/eprs/6.2/07_common_operations/10_replicating_postgres_partitioned_tables.mdx new file mode 100644 index 00000000000..88a050e12f9 --- /dev/null +++ b/product_docs/docs/eprs/6.2/07_common_operations/10_replicating_postgres_partitioned_tables.mdx @@ -0,0 +1,345 @@ +--- +title: "Replicating Postgres Partitioned Tables" +--- + + + + +Both PostgreSQL and Advanced Server support partitioned tables, which can be replicated with xDB Replication Server in either a single-master or multi-master replication system. + +The following are the various partitioning techniques: + +- Advanced Server partitioning compatible with Oracle databases +- Postgres declarative partitioning (applies to both PostgreSQL and Advanced Server version 10 and later) +- Postgres table inheritance (applies to both PostgreSQL and Advanced Server) + +If you are using Advanced Server, partitioned tables can be created using the `CREATE TABLE` statement with partitioning syntax compatible with Oracle databases. For information on partitioning compatible with Oracle databases, see Chapter 10 *Table Partitioning* in the *EDB Postgres Advanced Server 10.0 Database Compatibility for Oracle Developers Guide* available from the EnterpriseDB website located at: + +> + +If you are using version 10 or later of PostgreSQL or Advanced Server, declarative partitioning can be used to create partitioned tables. The `CREATE TABLE` syntax for creating a declarative partitioned table is similar to the partitioning compatible with Oracle databases, but the individual partitions of the declarative partitioned table must be separately created with their own CREATE TABLE statements. + +If you are using native PostgreSQL version 9.6 or earlier, you must use a technique called table inheritance where you first create a parent table from which you then create one or more child tables that inherit the columns of the parent. Each child is an independent table in its own right except that it includes the column definitions of its parent. You then define a trigger on the parent table to direct which child table an inserted row is to be stored. Table inheritance can be used on Advanced Server as well. + +For information on declarative partitioning and table inheritance, see the PostgreSQL core documentation available at: + +> + +Regardless of the partitioning method, the resulting partitioned table is comprised of a parent table with a set of child tables. + +Replication of these Postgres partitioned tables in a single-master or multi-master replication system is accomplished in the same manner. + +Note the following general restrictions when the publication contains a partitioned table: + +- SQL Server cannot be used as a subscription database. +- When using table inheritance, the subscription databases must be Postgres – they cannot be Oracle or SQL Server. + +All three partitioning techniques are illustrated on the `emp` table used as an example throughout this document. The partitioned table is then used in a publication of a multi-master replication system in the following sections: + +- For creating a publication in Postgres 9.x, see [Creating a Postgres 9.x Partitioned Table Publication](../07_common_operations/#create_pg9_x_partition_table_pub). +- For creating a publication in Postgres 10 or later, see Section [Creating a Postgres Version 10 or Later Partitioned Table Publication](../07_common_operations/#create_pgv10_or_later_partition_table_pub). + +The following creates the partitioned table in Advanced Server using partitioning compatible with Oracle databases: + +``` text +CREATE TABLE emp ( + empno NUMERIC(4) PRIMARY KEY, + ename VARCHAR(10), + job VARCHAR(9), + mgr NUMERIC(4), + hiredate DATE, + sal NUMERIC(7,2), + comm NUMERIC(7,2), + deptno NUMERIC(2) +) +PARTITION BY LIST(deptno) +( + PARTITION dept_10 VALUES (10), + PARTITION dept_20 VALUES (20), + PARTITION dept_30 VALUES (30) +); +-- Load the 'emp' table +-- +INSERT INTO emp VALUES (7369,'SMITH','CLERK',7902,'17-DEC-80',800,NULL,20); +INSERT INTO emp VALUES (7499,'ALLEN','SALESMAN',7698,'20-FEB-81',1600,300,30); +INSERT INTO emp VALUES (7521,'WARD','SALESMAN',7698,'22-FEB-81',1250,500,30); +INSERT INTO emp VALUES (7566,'JONES','MANAGER',7839,'02-APR-81',2975,NULL,20); +INSERT INTO emp VALUES (7654,'MARTIN','SALESMAN',7698,'28-SEP-81',1250,1400,30); +INSERT INTO emp VALUES (7698,'BLAKE','MANAGER',7839,'01-MAY-81',2850,NULL,30); +INSERT INTO emp VALUES (7782,'CLARK','MANAGER',7839,'09-JUN-81',2450,NULL,10); +INSERT INTO emp VALUES (7788,'SCOTT','ANALYST',7566,'19-APR-87',3000,NULL,20); +INSERT INTO emp VALUES (7839,'KING','PRESIDENT',NULL,'17-NOV-81',5000,NULL,10); +INSERT INTO emp VALUES (7844,'TURNER','SALESMAN',7698,'08-SEP-81',1500,0,30); +INSERT INTO emp VALUES (7876,'ADAMS','CLERK',7788,'23-MAY-87',1100,NULL,20); +INSERT INTO emp VALUES (7900,'JAMES','CLERK',7698,'03-DEC-81',950,NULL,30); +INSERT INTO emp VALUES (7902,'FORD','ANALYST',7566,'03-DEC-81',3000,NULL,20); +INSERT INTO emp VALUES (7934,'MILLER','CLERK',7782,'23-JAN-82',1300,NULL,10); +``` + +The following creates the partitioned table in PostgreSQL or Advanced Server 10 or later using declarative partitioning: + +
+ +
+ +Note + +
+ +When creating a declarative partitioned table that is to be replicated using xDB Replication Server, the PRIMARY KEY constraint must be included in the CREATE TABLE statements of the individual partitions, not in the CREATE TABLE statement of the parent table to be partitioned. + +
+ +``` text +CREATE TABLE emp ( + empno NUMERIC(4), + ename VARCHAR(10), + job VARCHAR(9), + mgr NUMERIC(4), + hiredate DATE, + sal NUMERIC(7,2), + comm NUMERIC(7,2), + deptno NUMERIC(2) +) +PARTITION BY LIST(deptno); +-- +-- Create the partitions +-- +-- The partitions must contain the PRIMARY KEY constraint +-- +CREATE TABLE emp_dept_10 PARTITION OF emp (empno PRIMARY KEY) + FOR VALUES IN (10); +CREATE TABLE emp_dept_20 PARTITION OF emp (empno PRIMARY KEY) + FOR VALUES IN (20); +CREATE TABLE emp_dept_30 PARTITION OF emp (empno PRIMARY KEY) + FOR VALUES IN (30); +-- +-- Load the 'emp' table +-- +INSERT INTO emp VALUES (7369,'SMITH','CLERK',7902,'17-DEC-80',800,NULL,20); +INSERT INTO emp VALUES (7499,'ALLEN','SALESMAN',7698,'20-FEB-81',1600,300,30); +INSERT INTO emp VALUES (7521,'WARD','SALESMAN',7698,'22-FEB-81',1250,500,30); +INSERT INTO emp VALUES (7566,'JONES','MANAGER',7839,'02-APR-81',2975,NULL,20); +INSERT INTO emp VALUES (7654,'MARTIN','SALESMAN',7698,'28-SEP-81',1250,1400,30); +INSERT INTO emp VALUES (7698,'BLAKE','MANAGER',7839,'01-MAY-81',2850,NULL,30); +INSERT INTO emp VALUES (7782,'CLARK','MANAGER',7839,'09-JUN-81',2450,NULL,10); +INSERT INTO emp VALUES (7788,'SCOTT','ANALYST',7566,'19-APR-87',3000,NULL,20); +INSERT INTO emp VALUES (7839,'KING','PRESIDENT',NULL,'17-NOV-81',5000,NULL,10); +INSERT INTO emp VALUES (7844,'TURNER','SALESMAN',7698,'08-SEP-81',1500,0,30); +INSERT INTO emp VALUES (7876,'ADAMS','CLERK',7788,'23-MAY-87',1100,NULL,20); +INSERT INTO emp VALUES (7900,'JAMES','CLERK',7698,'03-DEC-81',950,NULL,30); +INSERT INTO emp VALUES (7902,'FORD','ANALYST',7566,'03-DEC-81',3000,NULL,20); +INSERT INTO emp VALUES (7934,'MILLER','CLERK',7782,'23-JAN-82',1300,NULL,10); +``` + +The following creates the partitioned table in PostgreSQL or Advanced Server using table inheritance: + +``` text +-- +-- Create the parent table +-- +CREATE TABLE emp ( + empno NUMERIC(4) NOT NULL CONSTRAINT emp_pk PRIMARY KEY, + ename VARCHAR(10), + job VARCHAR(9), + mgr NUMERIC(4), + hiredate DATE, + sal NUMERIC(7,2), + comm NUMERIC(7,2), + deptno NUMERIC(2) +); +-- +-- Create the child tables +-- +CREATE TABLE emp_dept_10 ( + CHECK (deptno = 10) +) INHERITS (emp); +CREATE TABLE emp_dept_20 ( + CHECK (deptno = 20) +) INHERITS (emp); +CREATE TABLE emp_dept_30 ( + CHECK (deptno = 30) +) INHERITS (emp); + +ALTER TABLE emp_dept_10 ADD CONSTRAINT emp_dept_10_pk PRIMARY KEY (empno); +ALTER TABLE emp_dept_20 ADD CONSTRAINT emp_dept_20_pk PRIMARY KEY (empno); +ALTER TABLE emp_dept_30 ADD CONSTRAINT emp_dept_30_pk PRIMARY KEY (empno); +-- +-- Create the trigger function to insert into the proper child by deptno +-- +CREATE OR REPLACE FUNCTION emp_insert_trigger() +RETURNS TRIGGER AS $$ +BEGIN + IF NEW.deptno = 10 THEN + INSERT INTO emp_dept_10 VALUES (NEW.*); + ELSIF NEW.deptno = 20 THEN + INSERT INTO emp_dept_20 VALUES (NEW.*); + ELSIF NEW.deptno = 30 THEN + INSERT INTO emp_dept_30 VALUES (NEW.*); + ELSE + RAISE EXCEPTION 'Department # out of range.'; + END IF; + RETURN NULL; +END; +$$ +LANGUAGE plpgsql; +-- +-- Create the trigger +-- +CREATE TRIGGER insert_emp_trigger + BEFORE INSERT ON emp + FOR EACH ROW EXECUTE PROCEDURE emp_insert_trigger(); +-- +-- Load the 'emp' table +-- +INSERT INTO emp VALUES (7369,'SMITH','CLERK',7902,'17-DEC-80',800,NULL,20); +INSERT INTO emp VALUES (7499,'ALLEN','SALESMAN',7698,'20-FEB-81',1600,300,30); +INSERT INTO emp VALUES (7521,'WARD','SALESMAN',7698,'22-FEB-81',1250,500,30); +INSERT INTO emp VALUES (7566,'JONES','MANAGER',7839,'02-APR-81',2975,NULL,20); +INSERT INTO emp VALUES (7654,'MARTIN','SALESMAN',7698,'28-SEP-81',1250,1400,30); +INSERT INTO emp VALUES (7698,'BLAKE','MANAGER',7839,'01-MAY-81',2850,NULL,30); +INSERT INTO emp VALUES (7782,'CLARK','MANAGER',7839,'09-JUN-81',2450,NULL,10); +INSERT INTO emp VALUES (7788,'SCOTT','ANALYST',7566,'19-APR-87',3000,NULL,20); +INSERT INTO emp VALUES (7839,'KING','PRESIDENT',NULL,'17-NOV-81',5000,NULL,10); +INSERT INTO emp VALUES (7844,'TURNER','SALESMAN',7698,'08-SEP-81',1500,0,30); +INSERT INTO emp VALUES (7876,'ADAMS','CLERK',7788,'23-MAY-87',1100,NULL,20); +INSERT INTO emp VALUES (7900,'JAMES','CLERK',7698,'03-DEC-81',950,NULL,30); +INSERT INTO emp VALUES (7902,'FORD','ANALYST',7566,'03-DEC-81',3000,NULL,20); +INSERT INTO emp VALUES (7934,'MILLER','CLERK',7782,'23-JAN-82',1300,NULL,10); + +The following illustrates the types of SQL queries that can be made on the parent and child tables to show which tables actually contain the rows. + +Querying the parent table, emp, with the asterisk appended to the table name in the SELECT statement, shows the rows in the parent and child tables. This is the default behavior if the asterisk is omitted. +``` + +``` text +edb=# SELECT * FROM emp*; + empno | ename | job | mgr | hiredate | sal | comm | deptno +-------+--------+-----------+------+--------------------+---------+---------+-------- + 7782 | CLARK | MANAGER | 7839 | 09-JUN-81 00:00:00 | 2450.00 | | 10 + 7839 | KING | PRESIDENT | | 17-NOV-81 00:00:00 | 5000.00 | | 10 + 7934 | MILLER | CLERK | 7782 | 23-JAN-82 00:00:00 | 1300.00 | | 10 + 7369 | SMITH | CLERK | 7902 | 17-DEC-80 00:00:00 | 800.00 | | 20 + 7566 | JONES | MANAGER | 7839 | 02-APR-81 00:00:00 | 2975.00 | | 20 + 7788 | SCOTT | ANALYST | 7566 | 19-APR-87 00:00:00 | 3000.00 | | 20 + 7876 | ADAMS | CLERK | 7788 | 23-MAY-87 00:00:00 | 1100.00 | | 20 + 7902 | FORD | ANALYST | 7566 | 03-DEC-81 00:00:00 | 3000.00 | | 20 + 7499 | ALLEN | SALESMAN | 7698 | 20-FEB-81 00:00:00 | 1600.00 | 300.00 | 30 + 7521 | WARD | SALESMAN | 7698 | 22-FEB-81 00:00:00 | 1250.00 | 500.00 | 30 + 7654 | MARTIN | SALESMAN | 7698 | 28-SEP-81 00:00:00 | 1250.00 | 1400.00 | 30 + 7698 | BLAKE | MANAGER | 7839 | 01-MAY-81 00:00:00 | 2850.00 | | 30 + 7844 | TURNER | SALESMAN | 7698 | 08-SEP-81 00:00:00 | 1500.00 | 0.00 | 30 + 7900 | JAMES | CLERK | 7698 | 03-DEC-81 00:00:00 | 950.00 | | 30 +(14 rows) +``` + +The following queries show how the rows are physically divided amongst the child tables. The use of the `ONLY` keyword results in rows only in the specified table of the `SELECT` statement, and not from any of its children. + +``` text +edb=# SELECT * FROM ONLY emp; + empno | ename | job | mgr | hiredate | sal | comm | deptno +-------+-------+-----+-----+----------+-----+------+-------- +(0 rows) + + +edb=# SELECT * FROM ONLY emp_dept_10; + empno | ename | job | mgr | hiredate | sal | comm | deptno +-------+--------+-----------+------+--------------------+---------+------+-------- + 7782 | CLARK | MANAGER | 7839 | 09-JUN-81 00:00:00 | 2450.00 | | 10 + 7839 | KING | PRESIDENT | | 17-NOV-81 00:00:00 | 5000.00 | | 10 + 7934 | MILLER | CLERK | 7782 | 23-JAN-82 00:00:00 | 1300.00 | | 10 +(3 rows) + + +edb=# SELECT * FROM ONLY emp_dept_20; + empno | ename | job | mgr | hiredate | sal | comm | deptno +-------+-------+---------+------+--------------------+---------+------+-------- + 7369 | SMITH | CLERK | 7902 | 17-DEC-80 00:00:00 | 800.00 | | 20 + 7566 | JONES | MANAGER | 7839 | 02-APR-81 00:00:00 | 2975.00 | | 20 + 7788 | SCOTT | ANALYST | 7566 | 19-APR-87 00:00:00 | 3000.00 | | 20 + 7876 | ADAMS | CLERK | 7788 | 23-MAY-87 00:00:00 | 1100.00 | | 20 + 7902 | FORD | ANALYST | 7566 | 03-DEC-81 00:00:00 | 3000.00 | | 20 +(5 rows) + + +edb=# SELECT * FROM ONLY emp_dept_30; + empno | ename | job | mgr | hiredate | sal | comm | deptno +-------+--------+----------+------+--------------------+---------+---------+-------- + 7499 | ALLEN | SALESMAN | 7698 | 20-FEB-81 00:00:00 | 1600.00 | 300.00 | 30 + 7521 | WARD | SALESMAN | 7698 | 22-FEB-81 00:00:00 | 1250.00 | 500.00 | 30 + 7654 | MARTIN | SALESMAN | 7698 | 28-SEP-81 00:00:00 | 1250.00 | 1400.00 | 30 + 7698 | BLAKE | MANAGER | 7839 | 01-MAY-81 00:00:00 | 2850.00 | | 30 + 7844 | TURNER | SALESMAN | 7698 | 08-SEP-81 00:00:00 | 1500.00 | 0.00 | 30 + 7900 | JAMES | CLERK | 7698 | 03-DEC-81 00:00:00 | 950.00 | | 30 +(6 rows) +``` + +The following section shows creation of the publication when using Postgres 9.6 or an earlier version. This also applies if the partitioned table is created with table inheritance. + +Section [Creating a Postgres Version 10 or Later Partitioned Table Publication](../07_common_operations/#create_pgv10_or_later_partition_table_pub) shows creation of the publication when using partitioning compatible with Oracle databases or declarative partitioning on a Postgres 10 or later database server. + + + +## Creating a Postgres 9.x Partitioned Table Publication + +The following describes creating the publication on a Postgres database server of version 9.6 or earlier. + +Follow the directions in Section [Creating a Publication](../06_mmr_operation/../05_smr_operation/02_creating_publication/#creating_publication_mmr) to create a primary definition node along with a publication containing the partitioned table. (For a single-master replication system, create the publication database along with the publication according to the directions in Section [Creating a Publication](../05_smr_operation/02_creating_publication/#creating_publication).) + +When creating the publication you must select the parent table along with the child tables. + +![Creating a publication for a Postgres 9.x partitioned table](/../images/image284.png) + +The following shows the resulting replication tree for the partitioned table in the primary definition node: + +![Publication containing a Postgres 9.x partitioned table](/../images/image285.png) + +Create additional primary nodes as described in Section [Creating Additional Primary nodes](../06_mmr_operation/#creating_primary_nodes). (For a single-master replication system, create the subscription database and subscription according to the directions in Section [Creating a Subscription](../05_smr_operation/03_creating_subscription/#creating_subscription).) + +The following shows the resulting multi-master replication system after you have added an additional primary node. + +![MMR system with a Postgres 9.x partitioned table](/../images/image286.png) + +The partitioned table can now be kept synchronized on the primary nodes of the multi-master replication system. + + + +## Creating a Postgres Version 10 or Later Partitioned Table Publication + +The following describes creating the publication using either partitioning compatible with Oracle databases or Postgres declarative partitioning on a Postgres 10 or later database server. + +
+ +
+ +Note + +
+ +If you are using table inheritance, you must still use the process described in Section [Creating a Postgres 9.x Partitioned Table Publication](../07_common_operations/#create_pg9_x_partition_table_pub) even when creating the publication on a Postgres 10 or later database server. + +
+ +The following restrictions apply when the publication contains a table with partitioning compatible with Oracle databases or declarative partitioning: + +- The log-based method of synchronization replication must be selected for the publication database. The trigger-based method cannot be used. +- In a single-master replication system, the subscription databases must be Postgres version 10 or later. Oracle and SQL Server cannot be used as a subscription database. +- In a multi-master replication system, all primary nodes must be Postgres version 10 or later with the same compatibility mode as the primary definition node (that is, either compatible with native PostgreSQL or compatible with Oracle databases). For more information on the multi-master replication system compatibility modes, see [Permitted MMR Database Server Configurations](../10_appendix/02_upgrading_to_xdb6_2/#permitted_mmr_db_server_conf). + +Follow the directions in Section [Creating a Publication](../06_mmr_operation/../05_smr_operation/02_creating_publication/#creating_publication_mmr) to create a primary definition node along with a publication containing the partitioned table. (For a single-master replication system, create the publication database along with the publication according to the directions in Section [Creating a Publication](../05_smr_operation/02_creating_publication/#creating_publication).) + +When creating the publication, only the parent table appears and is selected. + +![Creating a publication for a Postgres 10 or later partitioned table](/../images/image287.png) + +The following shows the resulting replication tree for the partitioned table in the primary definition node: + +![Publication containing a Postgres 10 or later partitioned table](/../images/image288.png) + +Create additional primary nodes as described in Section [Creating Additional Primary nodes](../06_mmr_operation/#creating_primary_nodes). (For a single-master replication system, create the subscription database and subscription according to the directions in Section [Creating a Subscription](../05_smr_operation/03_creating_subscription/#creating_subscription).) + +The following shows the resulting multi-master replication system after you have added an additional primary node. + +![MMR system with a Postgres 10 or later partitioned table](/../images/image289.png) + +The partitioned table can now be kept synchronized on the primary nodes of the multi-master replication system. diff --git a/product_docs/docs/eprs/6.2/07_common_operations/11_using_ssl_connections.mdx b/product_docs/docs/eprs/6.2/07_common_operations/11_using_ssl_connections.mdx new file mode 100644 index 00000000000..199fcb8d4ec --- /dev/null +++ b/product_docs/docs/eprs/6.2/07_common_operations/11_using_ssl_connections.mdx @@ -0,0 +1,446 @@ +--- +title: "Using Secure Sockets Layer (SSL) Connections" +--- + + + + +Publication server and subscription server connections to Postgres publication databases, Postgres subscription databases, and Postgres primary nodes can be accomplished using secure sockets layer (SSL) connectivity. + +xDB Replication Server does not support SSL connections to Oracle and SQL Server databases used within any xDB replication system. + +For a single-master replication system, the following connections can be made to Postgres databases enabled with SSL: + +- Publication server connection to the publication database and to the subscription databases. +- Subscription server connection to the subscription databases. +- Migration Toolkit connection to the publication and subscription databases. + +For a multi-master replication system, the following connections can be made to Postgres databases enabled with SSL: + +- Publication server connection to the primary definition node and the non-PDN nodes. +- Migration Toolkit connection to the primary definition node and the non-PDN nodes. + +
+ +
+ +Note + +
+ +SSL connections are not used from the xDB Replication Console or the xDB Replication Server Command Line Interface. The xDB user interfaces communicate with the publication server and subscription server, which in turn connect to the publication/subscription databases or primary nodes. + +
+ +
+ +
+ +Note + +
+ +The Migration Toolkit connection using SSL occurs within the context of the publication server and subscription server SSL connections. Therefore, there are no separate steps that you need to perform for the Migration Toolkit SSL connection. + +
+ +Using SSL requires various prerequisite configuration steps performed on the database servers involved with the SSL connections as well as on the Java truststore and keystore on the hosts running the publication server and subscription server. + +The Java truststore is the file containing the Certificate Authority (CA) certificates with which the Java client (the publication server and subscription server) uses to verify the authenticity of the server to which it is initiating an SSL connection. + +The Java keystore is the file containing private and public keys and their corresponding certificates. The keystore is required for client authentication to the server, which is used for xDB Replication Server SSL connections. + +The following is material to which you can refer to for guidance in setting up the SSL connections: + +- See the section on secure TCP connections with SSL in Chapter 17 *Server Setup and Operation* in the PostgreSQL Core Documentation located at: + +> + +for information on setting up SSL connectivity to Postgres database servers. + +- For information on JDBC client connectivity using SSL see the section on configuring the client in Chapter 4 *Using SSL* in the The PostgreSQL JDBC Interface (). + +The following sections provide additional information for the configuration steps of using SSL with the xDB Replication Server. + +- Configuring SSL on a Postgres database server (Section [Configuring SSL on a Postgres Database Server](../07_common_operations/#configure_ssl_on_pg_db_server)) +- Configuring SSL on a JDBC client for the publication and subscription servers (Section [Configuring SSL for the Publication Server and Subscription Server](../07_common_operations/#configure_ssl_for_pub_and_sub_server)) +- Requesting SSL connection to the xDB Replication Server databases (Section [Requesting SSL Connection to the xDB Replication Server Databases](../07_common_operations/#request_ssl_to_xdb_server_dbs)) + + + +## Configuring SSL on a Postgres Database Server + +This section provides an example of configuring SSL on a Postgres database server to demonstrate the use of SSL with xDB Replication Server. A self-signed certificate is used for this purpose. + +**Step 1:** Create the certificate signing request (CSR). + +In the following example the generated certificate signing request file is `server.csr`. The private key is generated as file server.key. + +``` text +$ openssl req -new -text -nodes -subj '/C=US/ST=Massachusetts/L=Bedford/O=EnterpriseDB/OU=XDB/emailAddress=support@enterprisedb.com/CN=enterprisedb' -keyout server.key -out server.csr +Generating a 1024 bit RSA private key +......................................................++++++ +.++++++ +writing new private key to 'server.key' +----- +``` + +
+ +
+ +Note + +
+ +When creating the certificate, the value specified for the common name field (designated as CN=enterprisedb in this example) must be the database user name that is specified in the User field of the Add Database or Update Database dialog box used when defining the publication database (see [Adding a Publication Database](../05_smr_operation/02_creating_publication/#adding_pub_database)), subscription database (see [Adding a Subscription Database](../05_smr_operation/03_creating_subscription/#adding_subscription_database)), or primary nodes (see [Adding the Primary definition node](../06_mmr_operation/#adding_pdn)) and [Creating Additional Primary nodes](../06_mmr_operation/#creating_primary_nodes)). + +
+ +Alternatively, user name maps can be used as defined in the `pg_ident.conf` file to permit more flexibility for the common name and database user name. Steps 8 and 9 describe the use of user name maps. + +**Step 2:** Generate the self-signed certificate. + +The following generates a self-signed certificate to file `server.crt` using the certificate signing request file, `server.csr`, and the private key, `server.key`, as input. + +``` text +$ openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt +Signature ok +subject=/C=US/ST=Massachusetts/L=Bedford/O=EnterpriseDB/OU=XDB/emailAddress=support@enterprisedb.com/CN=enterprisedb +Getting Private key +``` + +**Step 3:** Make a copy of the server certificate (`server.crt`) to be used as the root Certificate Authority (CA) file (`root.crt`). + +``` text +$ cp server.crt root.crt +``` + +**Step 4:** Delete the now redundant certificate signing request (`server.csr`). + +``` text +$ rm server.csr +``` + +**Step 5:** Move or copy the certificate and private key files to the Postgres database server data directory, `POSTGRES_INSTALL_HOME/data`. + +``` text +$ mv root.crt /opt/PostgresPlus/9.4AS/data +$ mv server.crt /opt/PostgresPlus/9.4AS/data +$ mv server.key /opt/PostgresPlus/9.4AS/data +``` + +**Step 6:** Set the file ownership and permissions on the certificate files and private key file. + +Set the ownership to the operating system account that owns the data subdirectory of the Postgres database server, which is either enterprisedb or postgres depending upon the chosen installation mode (Oracle compatible or PostgreSQL compatible) when you installed your Postgres database server. + +``` text +$ chown enterprisedb root.crt server.crt server.key +$ chgrp enterprisedb root.crt server.crt server.key +$ chmod 600 root.crt server.crt server.key +$ ls -l +total 140 + . + . + . +-rw------- 1 enterprisedb enterprisedb 1346 Mar 15 09:31 root.crt +-rw------- 1 enterprisedb enterprisedb 1346 Mar 15 09:30 server.crt +-rw------- 1 enterprisedb enterprisedb 1704 Mar 15 09:28 server.key +``` + +**Step 7:** In the `postgresql.conf` file, make the following modifications. + +``` text +ssl = on # (change requires restart) +ssl_cert_file = 'server.crt' # (change requires restart) +ssl_key_file = 'server.key' # (change requires restart) +ssl_ca_file = 'root.crt' # (change requires restart) +``` + +**Step 8:** Modify the `pg_hba.conf` file to enable SSL usage on the desired publication, subscription, or primary node databases. + +In the `pg_hba.conf` file, the `hostssl` type indicates the entry is used to validate SSL connection attempts from the client (the publication server and the subscription server). + +The authentication method is set to cert with the option clientcert=1 in order to require an SSL certificate from the client against which authentication is performed using the common name of the certificate (enterprisedb in this example). + +The `map=sslusers` option specifies that a mapping named `sslusers` defined in the `pg_ident.conf` file is to be used for authentication. This mapping allows a connection to the database if the common name from the certificate and the database user name attempting the connection match the `SYSTEM-USERNAME/PG-USERNAME` pair listed in the `pg_ident.conf` file. + +The following is an example of the settings in the `pg_hba.conf` file if the publication and subscription databases (edb and subnode) must use SSL connections. + +``` text +# TYPE DATABASE USER ADDRESS METHOD + +# "local" is for Unix domain socket connections only +local all all md5 +# IPv4 local connections: +hostssl edb,subnode all 192.168.2.0/24 cert clientcert=1 map=sslusers +``` + +**Step 9:** The following shows the user name maps in the pg\_ident.conf file related to the `pg_hba.conf` file by the `map=sslusers` option. These user name maps permit you to specify database user names pubuser, subuser, MMRuser, or enterprisedb in the User field of the Add Database or Update Database dialog box when adding the publication, subscription, or primary node databases in the xDB Replication Console. + +In other words, these are the permitted set of database user names that can be used by the publication server and subscription server to connect to the publication, subscription, or primary node databases. + +``` text +# MAPNAME SYSTEM-USERNAME PG-USERNAME +sslusers enterprisedb pubuser +sslusers enterprisedb subuser +sslusers enterprisedb MMRuser +sslusers enterprisedb enterprisedb +``` + +**Step 10:** Restart the Postgres database server after you have made the changes to the Postgres configuration files. + + + +## Configuring SSL for the Publication Server and Subscription Server + +After you have configured SSL on the Postgres database server, the following steps provide an example of generating a certificate and keystore file for the publication server and subscription server (the JDBC clients). + +**Step 1:** Using files `server.crt` and server.key located under the Postgres database server data subdirectory, create copies of these files and move them to the host where the publication server and subscription server are running. + +For this example, assume file `xdb.crt` is a copy of `server.crt` and `xdb.key` is a copy of `server.key`. + +Step 2: Create a copy of `xdb.crt`. + +``` text +$ cp xdb.crt xdb_root.crt +$ ls -l +total 12 +-rw-r--r-- 1 user user 1346 Mar 15 09:58 xdb.crt +-rw-r--r-- 1 user user 1704 Mar 15 09:58 xdb.key +-rw-r--r-- 1 user user 1346 Mar 15 10:00 xdb_root.crt +``` + +Step 3: Create a Distinguished Encoding Rules (DER) format of file `xdb_root.crt`. The generated `DER` format of this file is `xdb_root.crt.der`. The `DER` format of the file is required for the keytool program in the next step. + +``` text +$ openssl x509 -in xdb_root.crt -out xdb_root.crt.der -outform der +$ ls -l +total 16 +-rw-r--r-- 1 user user 1346 Mar 15 09:58 xdb.crt +-rw-r--r-- 1 user user 1704 Mar 15 09:58 xdb.key +-rw-r--r-- 1 user user 1346 Mar 15 10:00 xdb_root.crt +-rw-rw-r-- 1 user user 954 Mar 15 10:05 xdb_root.crt.der +``` + +**Step 4:** Use the keytool program to create a keystore file (`xdb.keystore`) using `xdb_root.crt.der` as the input. This process adds the certificate of the Postgres database server to the keystore file. + +The keytool program can be found under the bin subdirectory of the Java Runtime Environment installation. + +You will be prompted for a new password. Save this password for the next step. + +``` text +$ /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.45.x86_64/jre/bin/keytool -keystore xdb.keystore -alias xdbstore -import -file xdb_root.crt.der +Enter keystore password: +Re-enter new password: +Owner: CN=enterprisedb, EMAILADDRESS=support@enterprisedb.com, OU=XDB, O=EnterpriseDB, L=Bedford, ST=Massachusetts, C=US +Issuer: CN=enterprisedb, EMAILADDRESS=support@enterprisedb.com, OU=XDB, O=EnterpriseDB, L=Bedford, ST=Massachusetts, C=US +Serial number: d7e9966b48e91523 +Valid from: Tue Mar 15 08:30:37 GMT-05:00 2016 until: Wed Mar 15 08:30:37 GMT-05:00 2017 +Certificate fingerprints: + MD5: 5D:32:AB:47:A2:44:48:84:0B:CA:EC:9E:C9:28:CE:64 + SHA1: 31:14:C4:0A:E6:93:AA:2C:3E:4B:09:77:AB:94:DB:71:CB:58:99:D9 + SHA256: 2B:EA:59:35:E6:5B:07:07:30:96:D4:80:B0:E1:13:5B:5E:45:97:2E:D0:5C:4F:D8:2F:A6:23:DA:F8:30:D6:17 + Signature algorithm name: SHA1withRSA + Version: 1 +Trust this certificate? [no]: yes +Certificate was added to keystore +$ ls -l +total 20 +-rw-r--r-- 1 user user 1346 Mar 15 09:58 xdb.crt +-rw-r--r-- 1 user user 1704 Mar 15 09:58 xdb.key +-rw-rw-r-- 1 user user 1019 Mar 15 10:18 xdb.keystore +-rw-r--r-- 1 user user 1346 Mar 15 10:00 xdb_root.crt +-rw-rw-r-- 1 user user 954 Mar 15 10:05 xdb_root.crt.der +``` + +**Step 5:** Generate the encrypted form of the new password specified in the preceding step. + +The encrypted password must be specified with the `sslTrustStorePassword` configuration option of the publication server configuration file for publication server SSL connections and the subscription server configuration file for subscription server SSL connections. (See [Publication and Subscription Server Configuration Options](../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/#publications_and_subscriptions_server_conf_options) for information on the publication server and subscription server configuration files.) + +Encrypt the password using the xDB Replication Server CLI encrypt command. The following example shows this process encrypting the password contained in file infile. + +``` text +$ export PATH=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.45.x86_64/jre/bin:$PATH +$ cd /opt/PostgreSQL/EnterpriseDB-xDBReplicationServer/bin +$ java -jar edb-repcli.jar -encrypt -input ~/infile -output ~/pwdfile +$ cat ~/pwdfile +LGn6+AagiXqumxVHlOKk3w== +``` + +Step 6: Create a `PKCS #12` format of the keystore file (`xdb_pkcs.p12`) using files `xdb.crt` and `xdb.key` as input. + +You will be prompted for a new password. Save this password for the next step. + +``` text +$ openssl pkcs12 -export -in xdb.crt -inkey xdb.key -out xdb_pkcs.p12 +Enter Export Password: +Verifying - Enter Export Password: +$ ls -l +total 24 +-rw-r--r-- 1 user user 1346 Mar 15 09:58 xdb.crt +-rw-r--r-- 1 user user 1704 Mar 15 09:58 xdb.key +-rw-rw-r-- 1 user user 1019 Mar 15 10:18 xdb.keystore +-rw-rw-r-- 1 user user 2557 Mar 15 10:34 xdb_pkcs.p12 +-rw-r--r-- 1 user user 1346 Mar 15 10:00 xdb_root.crt +-rw-rw-r-- 1 user user 954 Mar 15 10:05 xdb_root.crt.der +``` + +**Step 7:** Generate the encrypted form of the new password specified in the preceding step. + +The encrypted password must be specified with the sslKeyStorePassword configuration option of the publication server configuration file for publication server SSL connections and the subscription server configuration file for subscription server SSL connections. + +Encrypt the password using the xDB Replication Server CLI encrypt command. + +**Step 8:** Copy files `xdb.keystore` and `xdb_pkcs.p12` to a directory location where they are to be accessed by the publication server and subscription server. + +**Step 9:** In the publication server and subscription server configuration files, set the location of file `xdb.keystore` with the `sslTrustStore` option and the location of file `xdb_pkcs.p12` with the `sslKeyStore` option. + +The following shows the SSL configuration options set for the files generated in this example. + +``` text +sslTrustStore=/tmp/sslclient/xdb.keystore +sslTrustStorePassword=LGn6+AagiXqumxVHlOKk3w== +sslKeyStore=/tmp/sslclient/xdb_pkcs.p12 +sslKeyStorePassword= ygJ9AxoJEX854elcVIJPTw== +``` + +The encrypted `sslTrustStorePassword` is obtained from Step 5 after being specified for the keytool program in Step 4. + +The encrypted `sslKeyStorePassword` is obtained from Step 7 after being specified for the openssl pkcs12 program in Step 6. + +Section 7.11.4 contains a summary of the publication server and subscription server configuration options for SSL connections. + +**Step 10:** Restart the publication and subscription servers. + +**Configuring publication/subscription database in case of WAL stream changeset logging** + +In the case of WAL stream changeset logging, while adding a publication or a subscription database that accepts only ssl connection, xDB validates if the database server is configured for logical replication using `libpq` connection. + +For ssl connection, libpq must have the certificates and key as given in the following table. The default directory is `${user.home}/.postgresql`: + +| | | | +|-------------------------------|--------------------------------------|--------------------------------------------------------------------------------------------------------------------------------| +| File Name | Contents | Description | +| \~/.postgresql/postgresql.crt | Client certificate | Requested by the server. | +| \~/.postgresql/postgresql.key | Client private key | Proves that the client certificate is sent by the owner. However, does not indicate that the certificate owner is trustworthy. | +| \~/.postgresql/root.crt | Trusted certificate authorities (CA) | Checks that the server certificate is signed by a trusted certificate authority. | + +**libpq/Client SSL File Usage** + +Make sure that the name of the certificates and key is same as given in the above table. + +
+ +
+ +Note + +
+ +You need to execute the following commands to change the permission of the certificates in `${user.home}/.postgresql`: + +
+ +``` text +chmod 0644 root.crt postgresql.crt +chown postgres postgresql.key +``` + +To setup different source and target databaseb types (for example, source database `=POSTGRESQL` and target database `=enterprisedb`) follow the steps below: + +1. Generate the certificate for `POSTGRESQL` database and follow the table 7-1 for placing certificate files in the default directory. +2. Copy these certificates in EDB Postgres Advanced Server data directory. + +``` text +[root@localhost data]# cp /var/lib/pgsql/11/data/root.crt . +[root@localhost data]# cp /var/lib/pgsql/11/data/server.crt . +[root@localhost data]# cp /var/lib/pgsql/11/data/server.key . +``` + +1. Execute the following commands to change the permissions of the certificates in the EDB Postgres Advanced Server data directory. + +``` text +[root@localhost data]# sudo chown enterprisedb root.crt server.crt server.key +[root@localhost data]# sudo chgrp enterprisedb root.crt server.crt server.key +[root@localhost data]# sudo chmod 600 root.crt server.crt server.key +``` + + + +## Requesting SSL Connection to the xDB Replication Server Databases + +Once SSL connectivity has been configured, a URL option must be supplied when configuring a single-master or multi-master replication system for those databases to which an SSL connection is intended to be used. + +The SSL URL option informs Java to use SSL when the publication server or subscription server attempts to connect to an xDB Replication Server database (publication, subscription, or primary node database) on which the SSL URL option has been set to true. + +The configuration steps where these options are specified are as follows: + +- For using SSL connections in a single-master replication system, the URL options must be specified as shown in Section [Adding a Publication Database](../05_smr_operation/02_creating_publication/#adding_pub_database) for the publication database and in Section [Adding a Subscription Database](../05_smr_operation/03_creating_subscription/#adding_subscription_database) for the subscription databases. +- For using SSL connections in a multi-master replication system, the URL options must be specified as shown in Section [Adding the Primary definition node](../06_mmr_operation/#adding_pdn) for the primary definition node and in Section [Creating Additional Primary nodes](../06_mmr_operation/#creating_primary_nodes) for the non-PDN nodes. + +For publication, subscription, and primary node databases, in the URL Options field of the Add Database or Update Database dialog box, enter the following: + +`ssl=true` + +The following is an example of the Add Database dialog box with the `ssl=true` URL option. + +![Add Database with SSL URL option](/../images/image290.png) + +
+ +
+ +Note + +
+ +If you no longer wish to use an SSL connection to an xDB Replication Server database, you must completely delete the `ssl=true` text from the URL Options field of the Add Database or Update Database dialog box. Simply changing true to false does not have the effect of disabling the SSL option. + +
+ +## Summary of SSL Configuration Options + +The following is a summary of the publication server and subscription server configuration options that are applicable to SSL connections. + +`sslTrustStoreType` + +> The sslTrustStoreType option specifies the truststore format. Set this option to the Java truststore format of the client. + +`sslTrustStoreType=truststore_format` + +> The default value for truststore\_format is jks for the JKS truststore file format. + +`sslTrustStore` + +> The xDB Replication Server uses the default Java truststore for SSL connectivity. + +The typical default location of the truststore is in directory `JAVA_HOME/jre/lib/security` or `JAVA_HOME/lib/security` in a file named `cacerts`. (`JAVA_HOME` is the Java installation directory.) + +Specify the full directory path to the truststore file with this option. `sslTrustStore=truststore_file` + +`sslTrustStorePassword` + +> Encrypt the password for the Java system truststore using the xDB Replication Server CLI encrypt command (see [Encrypting Passwords](../08_xdb_cli/03_xdb_cli_commands/#encrypt_password)) and specify the encrypted password with the `sslTrustStorePassword` option. +> +> `sslTrustStorePassword=encrypted_password` + +`sslKeyStoreType` + +> The `sslKeyStoreType` option specifies the keystore format. Set this option to the Java keystore format of the client. + +`sslKeyStoreType=keystore_format` + +> The default value for keystore\_format is pkcs12 for the PKCS \#12 keystore file format. + +`sslKeyStore` + +> Specify the full directory path to the keystore file with this option. +> +> `sslKeyStore=keystore_file` + +`sslKeyStorePassword` + +Encrypt the password for the Java system keystore using the xDB Replication Server CLI encrypt command (see [Encrypting Passwords](../08_xdb_cli/03_xdb_cli_commands/#encrypt_password)) and specify the encrypted password with the sslKeyStorePassword option. + +> `sslKeyStorePassword=encrypted_password` diff --git a/product_docs/docs/eprs/6.2/07_common_operations/index.mdx b/product_docs/docs/eprs/6.2/07_common_operations/index.mdx new file mode 100644 index 00000000000..cb07b2ab83d --- /dev/null +++ b/product_docs/docs/eprs/6.2/07_common_operations/index.mdx @@ -0,0 +1,28 @@ +--- +title: "Common Operations" +--- + + + + +This chapter describes configuration and maintenance operations of xDB Replication Server that are common to both single-master and multi-master replication systems. + +For configuration and management of your replication system, the xDB Replication Console graphical user interface is used to illustrate the steps and examples in this chapter. The same steps can be performed from the operating system command line using the xDB Replication Server Command Line Interface (CLI). The commands of the xDB Replication Server CLI utility are described in Chapter [xDB Replication Server Command Line Interface](08_xdb_cli/#xdb_cli). + +
+ +
+ +Note + +
+ +Though most steps described in this chapter apply to both single-master and multi-master replication systems, those steps that apply only to single-master replication systems are noted with For SMR only. Those steps that apply only to multi-master replication systems are noted with For MMR only. + +
+ +
+ +select\_tables\_wildcard\_selector creating\_schedule managing\_schedule view\_replication\_history managing\_history managing\_publication switching\_controller\_db replicating\_ddl\_changes offline\_snapshot replicating\_postgres\_partitioned\_tables using\_ssl\_connections + +
diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/01_prereq_steps.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/01_prereq_steps.mdx new file mode 100644 index 00000000000..cbc32a869a8 --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/01_prereq_steps.mdx @@ -0,0 +1,39 @@ +--- +title: "Prerequisite Steps" +--- + + + + +This section describes the installation and setup required prior to using the xDB Replication Server CLI. + +The xDB Replication Server CLI is included if the xDB Replication Console component is chosen when installing xDB Replication Server. The xDB Replication Server CLI is a Java application found in directory `XDB_HOME/bin`. + +**Step 1:** Follow the installation steps given in Chapter [Installation and Uninstallation](../03_installation/#installation) to install xDB Replication Server. + +**Step 2:** Follow the prerequisite steps given in Section [Prerequisite Steps](../06_mmr_operation/#prerequisite_steps) for single-master replication systems or Section [Prerequisite Steps](../05_smr_operation/01_prerequisites/#prerequisites) for multi-master replication systems. + +**Step 3:** Set the Java Runtime Environment as described by the following discussion. + +On the host from which you intend to run the xDB Replication Server CLI, the Java Runtime Environment (JRE) must be present and the Java runtime bin directory must be included in the path of the operating system user name that will be used to run xDB Replication Server CLI. + +The xDB Startup Configuration file, `xdbReplicationServer-xx.config`, contains the path of the `JRE runtime` program that was detected during the installation of xDB Replication Server. The following is an example of the xDB Startup Configuration file (see ref:Post Installation Host Environment <post\_installation\_host\_environment> for the location of this file.) + +``` text +#!/bin/sh + +JAVA_EXECUTABLE_PATH="/usr/bin/java" +JAVA_MINIMUM_VERSION=1.7 +JAVA_BITNESS_REQUIRED=64 +JAVA_HEAP_SIZE="-Xms256m -Xmx1536m" +PUBPORT=9051 +SUBPORT=9052 +``` + +For example, using the JRE path shown in the preceding configuration file, enter the following on the command line or add it to your profile: + +`export PATH=/usr/bin:$PATH` + +On Windows systems, open the Properties dialog box of My Computer, choose Advanced System Settings, and then click on Environment Variables. Edit the Path system environment variable to include the Java Runtime Environment bin directory. Alternatively, you can set the path for just the current session when you open the Command Prompt window as in the following example: + +`SET Path=C:\Program Files\Java\jre1.8.0_45\bin;%Path%` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/02_general_use.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/02_general_use.mdx new file mode 100644 index 00000000000..0d002f50377 --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/02_general_use.mdx @@ -0,0 +1,272 @@ +--- +title: "General Usage" +--- + + + + +This section explains the general usage rules for the xDB Replication Server CLI. + +## Running xDB Replication Server CLI + +You can run the xDB Replication Server CLI from any host on which you can run the xDB Replication Console. The xDB Replication Server CLI is run by executing the java runtime program and specifying the following arguments to the java program: + +- The path to the xDB Replication Server CLI jar file `edb-repcli.jar` +- An xDB Replication Server CLI command +- One or more publication names or subscription names if the command acts on a publication or subscription +- Parameters and their values that are applicable to the command + +The Java jar file `edb-repcli.jar` is located in directory `XDB_HOME/bin`. + +Each xDB Replication Server CLI command has the following general syntax: + +``` text +-command [ { pubname | subname } ...] + ``[ -parameter [ value ] ...] ... +``` + +In the preceding syntax diagram, command is the name of an xDB Replication Server CLI command. The command name must be prefixed by a hyphen character (-). If the command acts on a publication, the name of the publication represented by pubname is specified. If the command acts on a subscription, the subscription name represented by subname is specified. Certain commands may allow the specification of more than one publication name or more than one subscription name. + +Depending upon the command, one or more parameters may follow. Each parameter name must have a hyphen prefix. You may need to specify one or more values for each given parameter. + +If a command takes more than one parameter, the order in which the parameters are specified makes no difference. Each parameter must be followed only by the values that pertain to it. + +Command names and parameter names are all case sensitive and must be given as shown in Section [Getting Help](../08_xdb_cli/03_xdb_cli_commands/#get_help). + +The general, complete, execution syntax that you enter at the command line prompt has the following format: + +``` text +java -jar XDB_HOME/bin/edb-repcli.jar + -command [ { pubname | subname } ...] + [ -parameter [ value ] ...] ... +``` + +The preceding syntax must be entered as one logical line on the command line. It is broken up into multiple lines in the preceding syntax diagram for the purpose of clarity. + +
+ +
+ +Note + +
+ +You can continue a command onto the next physical line if you enter the operating system’s continuation character (for example, the backslash character (`\`) in Linux or the caret character (`^`) in Windows) before pressing the Enter key. + +
+ +## Getting Help + +If you execute the xDB Replication Server CLI with the help command, xDB Replication Server CLI will list a syntax summary of all commands. See [Getting Help](../08_xdb_cli/03_xdb_cli_commands/#get_help) for details on the help command. + +## Supplying the Publication or Subscription Server Login Information + +This section discusses the syntax and usage of an xDB Replication Server CLI parameter, required by many commands, named `repsvrfile`. Using parameter repsvrfile is the xDB Replication Server CLI equivalent for the process of registering the publication server or the subscription server in the xDB Replication Console. + +Section [Registering a Publication Server](../05_smr_operation/02_creating_publication/#registering_publication_server) discusses how the first step in building a replication system is to register the publication server. In the xDB Replication Console, the registered publication server appears as a node in the replication tree. The Publication Server node provides a context to which you can add other logical components of the replication system. + +When using the xDB Replication Server CLI, there is no replication tree image available with which to relate the other logical components of the replication system. Instead, whenever you execute an xDB Replication Server CLI command that requires the context of a publication server or subscription server, you must specify the publication server’s login information or the subscription server’s login information by means of the `repsvrfile` parameter. + +The `repsvrfile` parameter takes as its value, the path to a text file that contains the login information of either the publication server instance or the subscription server instance that you want to use. The general xDB Replication Server CLI command syntax including the `repsvrfile` parameter is shown in the following diagram: + +``` text +-command [ { pubname | subname } ...] + [ -parameter [ value ] ...] ... + [ -repsvrfile repsvrfile ] + [ -parameter [ value ] ...] ... +``` + +The xDB Replication Server CLI command to be executed is represented by command. If required, publication names represented by pubname or subscription names represented by subname are specified next. The path to the text file containing either the publication server or subscription server login information is represented by `repsvrfile`. The parameters and their values that are used with command are denoted by parameter and value. + +The order on the command line in which -repsvrfile repsvrfile and -parameter and its values are given does not matter. For example, -repsvrfile repsvrfile can be given as the first parameter on the command line, the last parameter on the command line, or somewhere in between other parameters. + +The following is an example of `repsvrfile` for a publication server: + +``` text +host=localhost +port=9051 +user=admin +# Password is in encrypted form. +password=ygJ9AxoJEX854elcVIJPTw== +``` + +The following is an example of `repsvrfile` for a subscription server: + +``` text +host=localhost +port=9052 +user=admin +# Password is in encrypted form. +password=ygJ9AxoJEX854elcVIJPTw== +``` + +These files can be located in any directory as long as they can be read by the operating system user running the xDB Replication Server CLI. + +In your file, be sure to replace the values of the following fields with the values for your publication server or subscription server: + +- Host +- Port +- User +- Password + +This is the same information with which you would need to register the publication server or subscription server if you were using the xDB Replication Console. See [Registering a Publication Server](../05_smr_operation/02_creating_publication/#registering_publication_server) for additional information on registering the publication server. See [Registering a Subscription Server](../05_smr_operation/03_creating_subscription/#registering_subscription_server) for information on registering the subscription server. + +The following example illustrates how the `repsvrfile` parameter is used along with the `printpublist` command. + +``` text +$ java -jar edb-repcli.jar -printpublist -repsvrfile ~/pubsvrfile.prop +Printing publications ... +analysts_managers +dept_emp +emp_pub +``` + +## Using Encrypted Passwords in Text Files + +When using the xDB Replication Server CLI, text files are used to store certain information, which may include user names and passwords. An example is the files containing publication server and subscription server login information used with the `repsvrfile` parameter. + +In the file specified with parameter `repsvrfile`, the password field must be set to a password in encrypted form. Using an encrypted password prevents unauthorized personnel from accessing the publication server or subscription server using the values of user and password if the file was somehow compromised. (The encrypted password cannot be used to access the publication server or subscription server from its dialog box in the xDB Replication Console.) + +See [Encrypting Passwords](../08_xdb_cli/03_xdb_cli_commands/#encrypt_password) for directions on generating an encrypted password using the encrypt command. + + + +## Running xDB Replication Server CLI Using a Parameter File + +The `paramfile` command allows you to run an xDB Replication Server CLI command and its parameters that have been coded into a text file. This technique is useful if you want to save the command and its parameters for repeated executions. + +The syntax for executing `paramfile` is shown by the following: + +``` text +java -jar XDB_HOME/bin/edb-repcli.jar + -paramfile cmdparamfile +``` + +The syntax of the xDB Replication Server CLI command and its parameters coded into text file `cmdparamfile` is the same as if given at the command line prompt as shown by the following: + +``` text +-command [ { pubname | subname } ...] + [ -parameter [ value ] ...] ... + [ -repsvrfile repsvrfile ] + [ -parameter [ value ] ...] ... +``` + +Using the paramfile command has the following restrictions: + +- Only one xDB Replication Server CLI command can be coded into the parameter file `cmdparamfile`. +- The parameters to be used with the xDB Replication Server CLI command must all be included in `cmdparamfile`. You cannot code some of the parameters into cmdparamfile and give other parameters on the command line. + +The following example creates an Advanced Server publication database definition using a parameter file named `addpubdb_advsvr`. + +The following is the content of parameter file `addpubdb_advsvr`: + +``` text +-addpubdb + -repsvrfile /home/user/pubsvrfile.prop + -dbtype enterprisedb + -dbhost 192.168.2.4 + -dbport 5444 + -dbuser pubuser + -dbpassword ygJ9AxoJEX854elcVIJPTw== + -database edb + -repgrouptype s +``` + +For Windows only: The `-repsvrfile` directory path can be specified with either the forward slash or backslash character. Enclose the entire directory path in double quotation marks if a directory name contains space characters: + +``` text +-addpubdb + -repsvrfile "C:\Users\User Name\repcli\pubsvrfile.prop" + -dbtype enterprisedb + -dbhost 192.168.2.23 + -dbport 5444 + -dbuser pubuser + -dbpassword ygJ9AxoJEX854elcVIJPTw== + -database edb + -repgrouptype s +``` + +
+ +
+ +Note + +
+ +Unlike entering the xDB Replication Server CLI command and its parameters directly at the command line prompt, when coded into a text file, no continuation characters are needed to continue onto the following lines. + +
+ +The following shows the execution of the `paramfile` command: + +``` text +$ java -jar edb-repcli.jar -paramfile ~/addpubdb_advsvr +Adding Publication Database... +Publication database added successfully. Publication Database id:1 +``` + +## Testing the Command Exit Status + +After executing an xDB Replication Server CLI command, you can test the exit status to determine if the command execution was successful. + +An exit status of 0 indicates successful execution. A non-zero exit status indicates a failure has occurred. + +**For Linux only:** The environment variable, $?, contains the exit status. The following example shows the 0 exit status upon the successful execution of the `addpubdb` command contained in the `addpubdb_advsvr` parameter file described in Section [Running xDB Replication Server CLI Using a Parameter File](../08_xdb_cli/#running_xdb_cli_using_para_file). + +``` text +$ java -jar edb-repcli.jar -paramfile ~/addpubdb_advsvr +Adding publication database... +Publication database added successfully. Publication database id:1 +$ echo $? +0 +``` + +On the other hand, the following example shows a non-zero exit status when the command failed with an error. + +| | | +|-------------|------------------------------| +| Exit Status | Description | +| 0 | Success | +| 201 | Invalid command | +| 202 | I/O error | +| 203 | Decryption failed | +| 204 | Authentication failed | +| 205 | Publication service failure | +| 206 | Remote exception | +| 207 | Subscription service failure | + +**Replication Server CLI Exit Status Codes** + +``` text +$ java -jar edb-repcli.jar -paramfile ~/addpubdb_advsvr +Adding publication database... +Error:The connection attempt failed. +$ echo $? +200 +``` + +**For Windows only:** The environment variable, `%ERRORLEVEL%,` contains the exit status. + +The following shows the exit status upon successful command execution on a Windows system. + +``` text +C:\Users>java -jar C:\\"Program Files"\PostgreSQL\EnterpriseDB-xDBReplicationServer\bin\edb-repcli.jar -paramfile addpubdb_advsvr +Adding publication database... +Publication database added successfully. Publication database id:1 + +C:\Users>ECHO %ERRORLEVEL% +0 +``` + +The following shows the exit status upon unsuccessful command execution on a Windows system. + +``` text +C:\Users>java -jar C:\\"Program Files"\PostgreSQL\EnterpriseDB-xDBReplicationServer\bin\edb- +repcli.jar -paramfile addpubdb_advsvr +Adding publication database... +Error:FATAL: password authentication failed for user "myuser" + +C:\Users>ECHO %ERRORLEVEL% +200 +``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/01_get_help.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/01_get_help.mdx new file mode 100644 index 00000000000..071dc3ab09f --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/01_get_help.mdx @@ -0,0 +1,26 @@ +--- +title: "Getting Help (help)" +--- + + + + +The `help` command provides a syntax summary of all xDB Replication Server CLI commands. + +Synopsis + +> `-help` + +Examples + +``` text +$ java -jar edb-repcli.jar -help +Usage: java -jar edb-repcli.jar [OPTIONS] + +Where OPTIONS include: +-help Prints out Replication CLI command-line usage +-version Prints out Replication CLI version +-encrypt -input -output Encrypts input file to output file +-repversion -repsvrfile Prints Replication Server version + . +``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/02_print_version.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/02_print_version.mdx new file mode 100644 index 00000000000..00be105be50 --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/02_print_version.mdx @@ -0,0 +1,21 @@ +--- +title: "Printing the Version Number (version)" +--- + + + + +The version command provides the xDB Replication Server CLI’s version number. + +Synopsis + +> `-version` + +Examples + +``` text +$ java -jar edb-repcli.jar -version +Version: 6.1.0-alpha + + . +``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/03_print_xdb_server_version.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/03_print_xdb_server_version.mdx new file mode 100644 index 00000000000..b34d741626e --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/03_print_xdb_server_version.mdx @@ -0,0 +1,27 @@ +--- +title: "Printing the xDB Replication Server Version Number (repversion)" +--- + + + + +The repversion command provides the xDB Replication Server’s version number. + +Synopsis + +`-repversion -repsvrfile pubsvrfile` + +Parameters + +> `pubsvrfile` + +The file containing the publication server login information. + +Examples + +``` text +$ java -jar edb-repcli.jar -repversion -repsvrfile ~/pubsvrfile.prop +6.1.0-alpha + + . +``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/04_encrypt_password.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/04_encrypt_password.mdx new file mode 100644 index 00000000000..fa16738752b --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/04_encrypt_password.mdx @@ -0,0 +1,38 @@ +--- +title: "Encrypting Passwords (encrypt)" +--- + + + + +The `encrypt` command encrypts the text supplied in an input file and writes the encrypted result to a specified output file. Use the `encrypt` command to generate an encrypted password that can be copied into a text file that will be referenced by an xDB Replication Server CLI command that requires a user name and the user’s password. + +Synopsis + +`-encrypt –input infile –output pwdfile` + +The text in `infile` is processed using the MD5 encryption algorithm, and the encrypted text is written to file pwdfile. Make sure that `infile` contains only the text that you want to encrypt and that there are no extraneous characters or empty lines before the text or after the text that you want to encrypt. + +Parameters + +`infile` + +> The file containing the text to be encrypted. + +`pwdfile` + +> The file containing the encrypted form of the text from infile. + +Examples + +The file infile contains the word `password`. + +`password` + +The `encrypt` command is then executed producing a file named pwdfile. + +`$ java -jar edb-repcli.jar -encrypt -input ~/infile -output ~/pwdfile` + +The content of file pwdfile contains the encrypted form of `password`. + +`ygJ9AxoJEX854elcVIJPTw==` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/05_printing_server_uptime.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/05_printing_server_uptime.mdx new file mode 100644 index 00000000000..5d20b4b6785 --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/05_printing_server_uptime.mdx @@ -0,0 +1,25 @@ +--- +title: "Printing the Time the Server Has Been Running (uptime)" +--- + + + + +The `uptime` command prints the time interval since the publication server has been up and running. + +Synopsis + +> `-uptime -repsvrfile pubsvrfile` + +Parameters + +> `pubsvrfile` + +The file containing the publication server login information. + +Examples + +``` text +$ java -jar edb-repcli.jar -uptime -repsvrfile ~/pubsvrfile.prop +0 days 0 hours 4 minutes +``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/06_add_pub_database.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/06_add_pub_database.mdx new file mode 100644 index 00000000000..dc0b305d246 --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/06_add_pub_database.mdx @@ -0,0 +1,219 @@ +--- +title: "Adding a Publication Database (addpubdb)" +--- + + + + +The `addpubdb` command adds a publication database definition. + +Synopsis + +``` text +-addpubdb + -repsvrfile pubsvrfile + -dbtype { oracle | enterprisedb | postgresql | sqlserver } + -dbhost host + -dbport port + -dbuser user +{ -dbpassword encrypted_pwd | -dbpassfile pwdfile } +[ -oraconnectiontype { sid | servicename } ] + -database dbname +[ -urloptions jdbc_url_parameters ] +[ -filterrule filterid_1[,filterid_2 ] ...] +[ -repgrouptype { m | s } ] +[ -replicatepubschema { true | false } ] +[ -initialsnapshot + [ -verboseSnapshotOutput { true | false } ] ] +[ -nodepriority priority_level ] +[ -changesetlogmode { T | W } ] +``` + +The `addpubdb` command creates a new publication database definition. The addpubdb command displays a unique publication database ID that is assigned to the newly created publication database definition. The publication database ID is used to identify the publication database definition on which to operate when running other xDB Replication Server CLI commands. + +See [Adding a Publication Database](../../05_smr_operation/02_creating_publication/#adding_pub_database) for details on the database connection information that must be supplied when adding a publication database definition for a single-master replication system. See sections [Adding the Primary definition node](../../06_mmr_operation/#adding_pdn) and [Creating Additional Primary nodes](../../06_mmr_operation/#creating_primary_nodes) for a multi-master replication system. + +Parameters + +`pubsvrfile` + +> The file containing the publication server login information. + +`-dbtype` + +> Specify oracle if the database is an Oracle database. Specify enterprisedb if the database is an Advanced Server database in Oracle compatible configuration mode. Specify `postgresql` if the database is a PostgreSQL database or an Advanced Server database in PostgreSQL compatible configuration mode. Specify `sqlserver` if the database is a Microsoft SQL Server database. + +`host` + +> The IP address of the host on which the publication database server is running. + +`port` + +> The port number on which the database server is listening for connections. + +`user` + +> The publication database user name. + +`encrypted_pwd` + +> The encrypted password of the publication database user. See [Encrypting Passwords](../../08_xdb_cli/03_xdb_cli_commands/#encrypt_password) for directions on using the encrypt command to generate an encrypted password. + +`pwdfile` + +> The file containing the encrypted password of the publication database user. + +`-oraconnectiontype` + +> Specify `sid` if the Oracle system ID (SID) is used to identify the publication database in the database parameter. Specify `servicename` if the Oracle service name is used to identify the publication database in the database parameter. +> +>
+> +>
+> +> Note +> +>
+> +> For Oracle 12c, use the service name. +> +>
+ +`dbname` + +> The Postgres or SQL Server database name, the Oracle SID, or the Oracle service name of the publication database. + +`jdbc_url_parameters` + +> Extended usage of JDBC URL parameters such as for support of SSL connectivity. (See Section Preparing Using Secure Sockets Layer (SSL) Connections <using\_ssl\_connections> for information on SSL connectivity to the publication database.) + +`filterid_n` + +> **For MMR only:** Applies to non-PDN nodes. Comma-separated list of filter IDs identifying the filter rules from the set of available table filters to enable on the corresponding tables in the new primary node. Use the printpubfilterslist command to obtain the filter IDs for the available filter rules in the publication (see [Printing a List of Filters in a Publication](../../08_xdb_cli/03_xdb_cli_commands/#print_publications_filters_list)). Note: There must be no white space between the comma and filter IDs.' + +`-repgrouptype` + +> Specify s if this command applies to a single-master replication system. Specify m if this command applies to a multi-master replication system. If omitted, the default is s. + +`-replicatepubschema` + +> **For MMR only:** Applies to non-PDN nodes. Set this option to true if you want the publication table definitions replicated from the primary definition node when creating a new primary node. Set this option to false if you have already created the table definitions in the new primary node. If omitted, the default is true. Do not specify this parameter when creating the primary definition node. +> +>
+> +>
+> +> Note +> +>
+> +> (For MMR only): Unless you intend to use the offline snapshot technique (see Loading Tables From an External Data Source (Offline Snapshot) <offline\_snapshot>), it is suggested that you specify this option. An initial snapshot replication must be performed from the primary definition node to every other primary node before performing synchronization replications on demand (see [Performing a Synchronization](../../08_xdb_cli/03_xdb_cli_commands/#perform_synchronization)) or by a schedule (see [Configuring a Multi-Master Schedule](../../08_xdb_cli/03_xdb_cli_commands/#configure_mmr_schedule)). If a newly added primary node did not undergo an initial snapshot, any subsequent synchronization replication may fail to apply the transactions to that primary node. The initial snapshot can also be taken by performing an on demand snapshot (see [Take a Multi-Master Snapshot](../../08_xdb_cli/03_xdb_cli_commands/#taking_mmr_snapshot)). +> +>
+ +`-initialsnapshot` + +> **For MMR only:** Applies to non-PDN nodes. Specify this option if you want an initial snapshot replication to be performed when creating the primary node. Omit this option if you do not want an initial snapshot replication to be performed when creating the primary node. + +
+ +
+ +Note + +
+ +**(For MMR only)** Unless you intend to use the offline snapshot technique (see Loading Tables From an External Data Source (Offline Snapshot) <offline\_snapshot>), it is suggested that you specify this option. An initial snapshot replication must be performed from the primary definition node to every other primary node before performing synchronization replications on demand (see [Performing a Synchronization](../../08_xdb_cli/03_xdb_cli_commands/#perform_synchronization)) or by a schedule (see [Configuring a Multi-Master Schedule](##configure_mmr_schedule)). If a newly added primary node did not undergo an initial snapshot, any subsequent synchronization replication may fail to apply the transactions to that primary node. The initial snapshot can also be taken by performing an on demand snapshot (see Section 8.3.41 [Take a Multi-Master Snapshot](../../08_xdb_cli/03_xdb_cli_commands/#taking_mmr_snapshot)) or by a schedule (see [Configuring a Multi-Master Schedule](##configure_mmr_schedule)). + +
+ +`-verboseSnapshotOutput` + +> Set this option to true if you want the output from the snapshot to be displayed. Set this option to false if you do not want the snapshot output displayed. If omitted, the default is true. + +
+ +
+ +Note + +
+ +This option may be given only directly following the specification of the `-initialsnapshot` option. + +
+ +`priority_level` + +> **For MMR only:** Integer value from 1 through 10 assigning the priority level to a primary node with 1 having the highest priority and 10 having the lowest priority. + +`-changesetlogmode` + +> Specify T to use the trigger-based method of synchronization replication for this publication database. Specify W to use the log-based (WAL) method of synchronization replication for this publication database. If omitted, the default is T. + +Examples + +The following example adds a publication database definition for an Oracle database. The encrypted password is given on the command line with the dbpassword parameter. A publication database ID of 1 is assigned to the database by the publication service. + +``` text +$ java -jar edb-repcli.jar -addpubdb -repsvrfile ~/pubsvrfile.prop \ +> -dbtype oracle -dbhost 192.168.2.6 -dbport 1521 \ +> -dbuser pubuser -dbpassword ygJ9AxoJEX854elcVIJPTw== \ +> -oraconnectiontype sid \ +> -database xe \ +> -repgrouptype s +Adding publication database... +Publication database added successfully. Publication database id:1 +``` + +The following example adds a publication database definition for an Advanced Server database. The encrypted password is read from a file named pwdfile with the dbpassfile parameter. A publication database ID of 2 is assigned to the database by the publication service. + +``` text +$ java -jar edb-repcli.jar -addpubdb -repsvrfile ~/pubsvrfile.prop \ +> -dbtype enterprisedb -dbhost 192.168.2.7 -dbport 5444 \ +> -dbuser pubuser -dbpassfile ~/pwdfile \ +> -database edb \ +> -repgrouptype s +Adding publication database... +Publication database added successfully. Publication database id:2 +``` + +The following example adds a publication database definition for a primary definition node in a multi-master replication system. + +``` text +$ java -jar edb-repcli.jar -addpubdb -repsvrfile ~/pubsvrfile.prop \ +> -dbtype enterprisedb -dbhost 192.168.2.6 -dbport 5444 \ +> -dbuser pubuser -dbpassword ygJ9AxoJEX854elcVIJPTw== \ +> -database edb \ +> -repgrouptype m \ +> -nodepriority 1 +Adding publication database... +Publication database added successfully. Publication database id:3 +``` + +The following example adds a publication database definition for a primary node (other than the primary definition node) in a multi-master replication system where an initial snapshot is not invoked (the initialsnapshot parameter is omitted). Filter rules with filter IDs 8 and 16 are applied to this primary node. A node priority level of 3 is assigned to the primary node. + +
+ +
+ +Note + +
+ +A publication must be created in the primary definition node before creating additional primary nodes. See [Creating a Publication](../../08_xdb_cli/03_xdb_cli_commands/#creating_publication_cli) for the command to create a publication. + +
+ +``` text +$ java -jar edb-repcli.jar -addpubdb -repsvrfile ~/pubsvrfile.prop \ +> -dbtype enterprisedb -dbhost 192.168.2.7 -dbport 5444 \ +> -dbuser MMRuser -dbpassword ygJ9AxoJEX854elcVIJPTw== \ +> -database MMRnode \ +> -filterrule 8,16 \ +> -repgrouptype m \ +> -nodepriority 3 +Adding publication database... +Replicating publication schema... +Publication database added successfully. Publication database id:24 +``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/07_printing_pub_db_id.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/07_printing_pub_db_id.mdx new file mode 100644 index 00000000000..3de27dcf8e8 --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/07_printing_pub_db_id.mdx @@ -0,0 +1,31 @@ +--- +title: "Printing Publication Database IDs (printpubdbids)" +--- + + + + +The `printpubdbids` command prints the publication database IDs of the publication database definitions. + +Synopsis + +`-printpubdbids -repsvrfile pubsvrfile` + +Parameters + +`pubsvrfile` + +> The file containing the publication server login information. + +Examples + +The following example lists the publication database IDs of the publication database definitions. + +``` text +$ java -jar edb-repcli.jar -printpubdbids -repsvrfile ~/pubsvrfile.prop +Printing publication database ids... +2 +1 +24 +3 +``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/08_printing_pub_db_details.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/08_printing_pub_db_details.mdx new file mode 100644 index 00000000000..030cc2ee15c --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/08_printing_pub_db_details.mdx @@ -0,0 +1,69 @@ +--- +title: "Printing Publication Database Details (printpubdbidsdetails)" +--- + + + + +The `printpubdbidsdetails` command prints the connection information for each publication database definition. + +Synopsis + +> `-printpubdbidsdetails –repsvrfile pubsvrfile` + +The output has the following components: + +`dbid:host:port:dbname:user` + +
+ +
+ +Note + +
+ +The database user’s password is not displayed. + +
+ +Parameters + +`pubsvrfile` + +> The file containing the publication server login information. + +`dbid` + +> The publication database ID assigned to the publication database definition. + +`host` + +> The IP address of the host on which the publication database server is running. + +`port` + +> The port number on which the database server is listening for connections. + +`dbname` + +> The Postgres or SQL Server database name, the Oracle SID, or the Oracle service name of the publication database. + +`user` + +> The publication database user name. + +Examples + +There are four publication database definitions subordinate to the publication server identified by the content of file `pubsvrfile.prop`. + +``` text +$ java -jar edb-repcli.jar -printpubdbidsdetails \ +> -repsvrfile ~/pubsvrfile.prop +Printing publication database ids with details... +id:host:port:database|sid:user +2:192.168.2.7:5444:edb:pubuser +1:192.168.2.6:1521:xe:pubuser +24:192.168.2.7:5444:MMRnode:MMRuser +3:192.168.2.6:5444:edb:pubuser +``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/09_printing_controller_db_id.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/09_printing_controller_db_id.mdx new file mode 100644 index 00000000000..0ba2731d706 --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/09_printing_controller_db_id.mdx @@ -0,0 +1,28 @@ +--- +title: "Printing the Controller Database ID (printcontrollerdbid)" +--- + + + + +The `printcontrollerdbid` command prints the publication database ID of the controller database. + +Synopsis + +`-printcontrollerdbid -repsvrfile pubsvrfile` + +Parameters + +`pubsvrfile` + +> The file containing the publication server login information. + +Examples + +The following example prints the publication database ID of the controller database. + +``` text +$ java -jar edb-repcli.jar -printcontrollerdbid -repsvrfile ~/pubsvrfile.prop +Printing Controller database id... +1 +``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/10_printing_pdn_node_db_id.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/10_printing_pdn_node_db_id.mdx new file mode 100644 index 00000000000..9a4c1b367ba --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/10_printing_pdn_node_db_id.mdx @@ -0,0 +1,28 @@ +--- +title: "Printing the Primary definition node Database ID (printpdndbid)" +--- + + + + +**For MMR only:** The `printpdndbid` command prints the publication database ID of the primary definition node. + +Synopsis + +> `-printpdndbid -repsvrfile pubsvrfile` + +Parameters + +`pubsvrfile` + +> The file containing the publication server login information. + +Examples + +The following example prints the publication database ID of the primary definition node. + +``` text +$ java -jar edb-repcli.jar -printPDNdbid -repsvrfile ~/pubsvrfile.prop +Printing PDN Publication database id... +3 +``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/11_updating_publication_database.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/11_updating_publication_database.mdx new file mode 100644 index 00000000000..d0eb666221a --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/11_updating_publication_database.mdx @@ -0,0 +1,101 @@ +--- +title: "Updating a Publication Database (updatepubdb)" +--- + + + + +The `updatepubdb` command provides the ability to change the connection information for an existing publication database definition identified by its publication database ID. + +Synopsis + +``` text +-updatepubdb + -repsvrfile pubsvrfile + -pubdbid dbid + -dbhost host + -dbport port + -dbuser user +{ -dbpassword encrypted_pwd | -dbpassfile pwdfile } +[ -oraconnectiontype { sid | servicename } ] + -database dbname +[ -urloptions jdbc_url_parameters ] +[ -nodepriority priority_level ] +``` + +The publication database definition to be updated is identified by the `pubdbid` parameter. + +See [Adding a Publication Database](../../05_smr_operation/02_creating_publication/#adding_pub_database) for details on the database connection information that must be supplied for a publication database definition for a single-master replication system. See sections [Adding the Primary definition node](../../06_mmr_operation/#adding_pdn) and [Creating Additional Primary nodes](../../06_mmr_operation/#creating_primary_nodes) for a multi-master replication system. + +Parameters + +`pubsvrfile` + +> The file containing the publication server login information. + +`dbid` + +> The publication database ID of the publication database definition to be updated. + +`host` + +> The IP address of the host on which the publication database server is running. + +`port` + +> The port number on which the database server is listening for connections. + +`user` + +> The publication database user name. + +`encrypted_pwd` + +> The password of the database user in encrypted form. See [Encrypting Passwords](../../08_xdb_cli/03_xdb_cli_commands/#encrypt_password) for directions on using the encrypt command to generate an encrypted password. + +`pwdfile` + +> The file containing the password of the database user in encrypted form. + +`-oraconnectiontype` + +> Specify `sid` if the Oracle system ID (SID) is used to identify the publication database in the database parameter. Specify `servicename` if the Oracle service name is used to identify the publication database in the database parameter. + +
+ +
+ +Note + +
+ +For Oracle 12c, use the service name. + +
+ +dbname + +> The Postgres or SQL Server database name, the Oracle SID, or the Oracle service name of the publication database. + +`jdbc_url_parameters` + +> Extended usage of JDBC URL parameters such as for support of SSL connectivity. (See Preparing Using Secure Sockets Layer (SSL) Connections <using\_ssl\_connections> for information on SSL connectivity to the publication database.) Specification of the urloptions parameter completely replaces any existing JDBC URL parameters that may have previously been specified with this database. Omission of the urloptions parameter deletes any existing JDBC URL parameters that may have previously been specified with this database. + +`priority_level` + +**For MMR only:** Integer value from 1 through 10 assigning the priority level to a primary node with 1 having the highest priority and 10 having the lowest priority. + +Examples + +In the following example, an existing publication database definition with publication database ID 1 is updated. + +``` text +$ java -jar edb-repcli.jar -updatepubdb -repsvrfile ~/pubsvrfile.prop \ +> -pubdbid 1 \ +> -dbhost 192.168.2.6 -dbport 1521 \ +> -dbuser pubuser -dbpassfile ~/pwdfile \ +> -oraconnectiontype sid \ +> -database xe +Updating publication database ... +Publication database with ID 1 is updated successfully. +``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/12_removing_publication_database.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/12_removing_publication_database.mdx new file mode 100644 index 00000000000..6b86148fb6b --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/12_removing_publication_database.mdx @@ -0,0 +1,42 @@ +--- +title: "Removing a Publication Database (removepubdb)" +--- + + + + +The `removepubdb` command removes a publication database definition. + +Synopsis + +``` text +-removepubdb + –repsvrfile pubsvrfile + –pubdbid dbid +``` + +The publication database definition to be removed is identified by the `pubdbid` parameter. + +See [Removing a Publication Database](../../07_common_operations/06_managing_publication/#removing_pub_database) +for additional information on removing a publication database. + +Parameters + +`pubsvrfile` + +> The file containing the publication server login information. + +`dbid` + +> The publication database ID of the publication database definition to be removed. + +Examples + +The publication database definition identified by publication database ID 1 is removed. + +``` text +$ java -jar edb-repcli.jar -removepubdb -repsvrfile ~/pubsvrfile.prop \ +> -pubdbid 1 +Removing Publication Database... +Publication Database removed. +``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/13_get_tables_for_new_publication.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/13_get_tables_for_new_publication.mdx new file mode 100644 index 00000000000..06d624efb54 --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/13_get_tables_for_new_publication.mdx @@ -0,0 +1,33 @@ +--- +title: "Get Tables for a New Publication (gettablesfornewpub)" +--- + + + + +The `gettablesfornewpub` command lists the tables and views that are available for inclusion in a new publication from a given publication database definition. + +Synopsis + +`-gettablesfornewpub –repsvrfile repsvrfile –pubdbid dbid` + +Parameters + +`pubsvrfile` + +> The file containing the publication server login information. + +`dbid` + +> The publication database ID of the publication database definition whose available tables and views are to be listed. + +Examples + +For the publication database definition identified by publication database ID 1, the tables available for inclusion in a publication are `EDB.DEPT, EDB.EMP`, and `EDB.JOBHIST`. The view available for inclusion in a publication is `EDB.SALESEMP`. + +``` text +$ java -jar edb-repcli.jar -gettablesfornewpub \ +> -repsvrfile ~/pubsvrfile.prop -pubdbid 1 +Fetching tables/views list ... +[[EDB.DEPT, TABLE], [EDB.EMP, TABLE], [EDB.JOBHIST, TABLE], [EDB.SALESEMP, VIEW]] +``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/14_creating_publication_cli.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/14_creating_publication_cli.mdx new file mode 100644 index 00000000000..3d151aa24de --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/14_creating_publication_cli.mdx @@ -0,0 +1,190 @@ +--- +title: "Creating a Publication (createpub)" +--- + + + + +The `createpub` command creates a new publication. + +Synopsis + +``` text +-createpub pubname + -repsvrfile pubsvrfile + -pubdbid dbid + -reptype { s | t } + -tables schema_t1.table_1 [ schema_t2.table_2 ] ... +[ -views schema_v1.view_1 [ schema_v2.view_2 ] ...] +[ -tablesfilterclause + "ordinal_t1:filtername_t1:filterclause_t1" + [ "ordinal_t2:filtername_t2:filterclause_t2" ] ...] +[ -viewsfilterclause + "ordinal_v1:filtername_v1:filterclause_v1" + [ "ordinal_v2:filtername_v2:filterclause_v2" ] ...] +[ -conflictresolution + ordinal_t1:{ E | L | N | M | C:customhandler_t1 } + [ ordinal_t2:{ E | L } N | M | C:customhandler_t2 } ] ...] +[ -standbyconflictresolution + ordinal_t1:{ E | L | N | M | C:customhandler_t1 } + [ ordinal_t2:{ E | L } N | M | C:customhandler_t2 } ] ...] +[ -repgrouptype { m | s } ] +``` + +The `createpub` command adds a new publication subordinate to the publication database definition with the publication database ID given by parameter `pubdbid`. If the publication is designated as snapshot-only by setting parameter `reptype` to `s`, then any views listed after the views parameter are ignored. + +See [Adding a Publication](../../05_smr_operation/02_creating_publication/#adding_publication) for additional information on creating a publication for a single-master replication system. See [Adding a Publication](../../06_mmr_operation/#add_pub_mmr) for a multi-master replication system. + +
+ +
+ +Note + +
+ +The schema names, table names, and view names that you supply as values for the tables and views parameters are case-sensitive. Unless quoted identifiers were used to build the database objects, Oracle names must be entered using uppercase letters (for example, `EDB.DEPT`), and Advanced Server names must be entered in lowercase letters (for example `edb.dept`). See [Quoted Identifiers and Default Case Translation](../../10_appendix/04_miscellaneous_xdb_processing_topics/#quoted_identifiers) for additional information on quoted identifiers and case translation. + +
+ +Parameters + +`pubname` + +> The publication name to be given to the new publication. + +`pubsvrfile` + +> The file containing the publication server login information. + +`dbid` + +> The publication database ID of the publication database definition subordinate to which the new publication is to be added. + +`-reptype` + +> Specify s if the publication is to be a snapshot-only publication. Specify `t` if the publication is to allow synchronization replications. + +`schema_tn` + +> The name of the schema containing the nth table of the tables parameter list. This value is case-sensitive. + +`table_n` + +> The table name of the nth table in the tables parameter list. This value is case-sensitive. + +`schema_vn` + +> **For SMR only:** The name of the schema containing the nth view of the views parameter list. This value is case-sensitive. + +`view_n` + +> **For SMR only:** View name of the nth view in the views parameter list. This value is case-sensitive. + +`ordinal_tn` + +> The ordinal number (that is, the position in the list counting from left to right starting with 1) of a table in the tables parameter list to which an attribute is to be applied. + +`filtername_tn` + +> The filter name to be assigned to the filter rule on the table. + +`filterclause_tn` + +> The filter clause to be applied to the table in the tables parameter list at the position indicated by ordinal\_tn. + +`ordinal_vn` + +> **For SMR only:** The ordinal number (that is, the position in the list counting from left to right starting with 1) of a view in the views parameter list to which an attribute is to be applied. + +`filtername_vn` + +> The filter name to be assigned to the filter rule on the view. + +`filterclause_vn` + +> **For SMR only:** The filter clause to be applied to the view in the views parameter list at the position indicated by ordinal\_vn. + +`-conflictresolution` + +> **For MMR only:** For the conflict resolution option, specify E for earliest timestamp conflict resolution, L for latest timestamp conflict resolution, N for node priority conflict resolution, M for manual conflict resolution, or C for custom conflict handling. The specified conflict resolution applies to the table in the position given by ordinal\_tn counting from left to right in the tables parameter list. If omitted the default is E. + +`-standbyconflictresolution` + +> **For MMR only:** For the standby conflict resolution option, specify E for earliest timestamp conflict resolution, L for latest timestamp conflict resolution, N for node priority conflict resolution, M for manual conflict resolution, or C for custom conflict handling. The specified conflict resolution applies to the table in the position given by ordinal\_tn counting from left to right in the tables parameter list. If omitted the default is M. + +`customhandler_tn` + +> **For MMR only:** For the conflict resolution option or the standby conflict resolution option, specify customhandler\_tn as the function name with an optional schema prefix (that is, formatted as schema.function\_name) as given in the CREATE FUNCTION command for the custom conflict handling function created for the table in the tables parameter list at the position indicated by ordinal\_tn. The custom conflict handling function must be added to the primary definition node. See [Adding a Custom Conflict Handling Function](../../06_mmr_operation/06_conflict_resolution/08_custom_conflict_handling/#adding_custom_conflict_handling_function) for an example of adding the custom conflict handling function using PSQL. The custom handler name option must be specified if and only if the conflict resolution option or the standby conflict resolution option is set for custom conflict handling with the C value. + +`-repgrouptype` + +> Specify s if this command applies to a single-master replication system. Specify m if this command applies to a multi-master replication system. If omitted, the default is s. + +Examples + +In the following example, a publication named dept\_emp is created that contains the EDB.DEPT and EDB.EMP tables of an Oracle database. The replication method is synchronization. + +``` text +$ java -jar edb-repcli.jar -createpub dept_emp \ +> -repsvrfile ~/pubsvrfile.prop \ +> -pubdbid 1 \ +> -reptype t \ +> -tables EDB.DEPT EDB.EMP +Creating publication... +Tables:[[EDB.DEPT, TABLE], [EDB.EMP, TABLE]] +Filter clause:[] +Publication created. +``` + +In the following example, a publication named salesemp is created that contains the EDB.SALESEMP view of an Oracle database. The replication method is snapshot-only. + +``` text +$ java -jar edb-repcli.jar -createpub salesemp \ +> -repsvrfile ~/pubsvrfile.prop \ +> -pubdbid 1 \ +> -reptype s \ +> -views EDB.SALESEMP +Creating publication... +Tables:[[EDB.SALESEMP, VIEW]] +Filter clause:[] +Publication created. +``` + +In the following example, a publication named analysts\_managers is created that contains the `edb.dept` table and employees from the `edb.emp` table who are analysts or managers. The tables are in an Advanced Server database. The replication method is snapshot-only. + +``` text +$ java -jar edb-repcli.jar -createpub analysts_managers \ +> -repsvrfile ~/pubsvrfile.prop \ +> -pubdbid 2 \ +> -reptype s \ +> -tables edb.dept edb.emp \ +> -tablesfilterclause "2:jobgrade_11:job IN ('ANALYST', 'MANAGER')" +Creating publication... +Tables:[[edb.dept, TABLE], [edb.emp, TABLE]] +Filter clause:[FilterName:jobgrade_11 FilterClause:job IN ('ANALYST', 'MANAGER') ] +Publication created. +``` + +The following example creates a publication for a multi-master replication system. One table filter is defined on table `edb.dept` and three table filters are defined on table `edb.emp`. Table `edb.dept` is assigned node priority conflict resolution and latest timestamp as the standby conflict resolution strategy. Table `edb.emp` is assigned earliest timestamp conflict resolution and manual resolution (the default) as its standby strategy. + +``` text +$ java -jar edb-repcli.jar -createpub emp_pub \ +> -repsvrfile ~/pubsvrfile.prop \ +> -pubdbid 3 \ +> -reptype t \ +> -tables edb.dept edb.emp \ +> -tablesfilterclause "1:dept_10_20_30:deptno in (10, 20, 30)" \ +> "2:dept_10:deptno = 10" \ +> "2:dept_20:deptno = 20" \ +> "2:dept_30:deptno = 30" \ +> -conflictresolution 1:N 2:E \ +> -standbyconflictresolution 1:L 2:M \ +> -repgrouptype m +Creating publication... +Tables:[[edb.dept, TABLE], [edb.emp, TABLE]] +Filter clause:[FilterName:dept_10_20_30 FilterClause:deptno in (10, 20, 30) , FilterName:dept_10 FilterClause:deptno = 10 , FilterName:dept_20 FilterClause:deptno = 20 , FilterName:dept_30 FilterClause:deptno = 30 ] +Conflict Resolution Option:[ Node Priority, Earliest Timestamp ] +Standby Conflict Resolution Option:[ Latest Timestamp, Manual ] +Publication created. +``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/15_print_publications_list.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/15_print_publications_list.mdx new file mode 100644 index 00000000000..e5707577bbb --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/15_print_publications_list.mdx @@ -0,0 +1,41 @@ +--- +title: "Printing a List of Publications (printpublist)" +--- + + + + +The `printpublist` command prints a list of publication names. + +Synopsis + +``` text +-printpublist -repsvrfile pubsvrfile + [ -pubdbid dbid ] + [ -printpubid ] +``` + +Parameters + +`pubsvrfile` + +> The file containing the publication server login information. + +`dbid` + +> If the `pubdbid` parameter is specified, only the publication names subordinate to the publication database definition specified by dbid are printed. If the pubdbid parameter is omitted, all publication names subordinate to the publication server are printed. + +`-printpubid` + +> Specify this parameter to print the publication IDs as well as the publication names. + +Examples + +``` text +$ java -jar edb-repcli.jar -printpublist -repsvrfile ~/pubsvrfile.prop +Printing publications ... +analysts_managers +dept_emp +emp_pub +salesemp +``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/16_print_publications_tables_list.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/16_print_publications_tables_list.mdx new file mode 100644 index 00000000000..95ac0f162b8 --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/16_print_publications_tables_list.mdx @@ -0,0 +1,36 @@ +--- +title: "Printing a List of Tables in a Publication (printpublishedtables)" +--- + + + + +The `printpublishedtables` command prints a list of tables and views that belong to the given publication. + +Synopsis + +``` text +-printpublishedtables pubname -repsvrfile pubsvrfile +``` + +Parameters + +`pubname` + +> The name of the publication whose tables and views are to be printed. + +`pubsvrfile` + +> The file containing the publication server login information. + +Examples + +``` text +The tables belonging to publication dept_emp are printed. +$ java -jar edb-repcli.jar -printpublishedtables dept_emp \ +> -repsvrfile ~/pubsvrfile.prop +Printing tables under publication: dept_emp + +EDB.DEPT +EDB.EMP +``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/17_print_publications_filters_list.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/17_print_publications_filters_list.mdx new file mode 100644 index 00000000000..65e35484bc0 --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/17_print_publications_filters_list.mdx @@ -0,0 +1,47 @@ +--- +title: "Printing a List of Filters in a Publication (printpubfilterslist)" +--- + + + + +The `printpubfilterslist` command prints a list of table filters that are defined in the given publication. + +Synopsis + +``` text +-printpubfilterslist pubname -repsvrfile pubsvrfile +``` + +Parameters + +`pubname` + +> The name of the publication whose table filters are to be printed. + +`pubsvrfile` + +> The file containing the publication server login information. + +Examples + +The table filters in publication analysts\_managers are printed. + +``` text +$ java -jar edb-repcli.jar -printpubfilterslist analysts_managers \ +> -repsvrfile ~/pubsvrfile.prop +Printing publications ... +FilterID:47 FilterName:jobgrade_11 FilterClause:job IN ('ANALYST', 'MANAGER') +``` + +The table filters defined in publication `emp_pub` are printed. + +``` text +$ java -jar edb-repcli.jar -printpubfilterslist emp_pub \ +> -repsvrfile ~/pubsvrfile.prop +Printing publications ... +FilterID:8 FilterName:dept_10_20_30 FilterClause:deptno in (10, 20, 30) +FilterID:9 FilterName:dept_10 FilterClause:deptno = 10 +FilterID:10 FilterName:dept_20 FilterClause:deptno = 20 +FilterID:16 FilterName:dept_30 FilterClause:deptno = 30 +``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/18_adding_tables_to_publication.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/18_adding_tables_to_publication.mdx new file mode 100644 index 00000000000..e60ca6f9db1 --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/18_adding_tables_to_publication.mdx @@ -0,0 +1,126 @@ +--- +title: "Adding Tables to a Publication (addtablesintopub)" +--- + + + + +The `addtablesintopub` command adds tables or views into an existing publication. + +Synopsis + +``` text +-addtablesintopub pubname + -repsvrfile pubsvrfile +[ -tables schema_t1.table_1 [ schema_t2.table_2 ] ...] +[ -views schema_v1.view_1 [ schema_v2.view_2 ] ...] +[ -tablesfilterclause + "ordinal_t1:filtername_t1:filterclause_t1" + [ "ordinal_t2:filtername_t2:filterclause_t2" ] ...] +[ -viewsfilterclause + "ordinal_v1:filtername_v1:filterclause_v1" + [ "ordinal_v2:filtername_v2:filterclause_v2" ] ...] +[ -conflictresolution + ordinal_t1:{ E | L | N | M | C:customhandler_t1 } + [ ordinal_t2:{ E | L } N | M | C:customhandler_t2 } ] ...] +[ -standbyconflictresolution + ordinal_t1:{ E | L | N | M | C:customhandler_t1 } + [ ordinal_t2:{ E | L } N | M | C:customhandler_t2 } ] ...] +[ -repgrouptype { m | s } ] +``` + +The `addtablesintopub` command updates an existing publication identified by pubname. The views parameter is applicable only for a snapshot-only publication and is ignored if the publication is not defined as snapshot-only. See [Adding Tables to a Publication](../../07_common_operations/06_managing_publication/#add_tables_to_pub) for additional information on adding tables to a publication. + +
+ +
+ +Note + +
+ +The schema names, table names, and view names that you supply as values for the tables and views parameters are case-sensitive. Unless quoted identifiers were used to build the database objects, Oracle names must be entered using uppercase letters (for example, `EDB.DEPT`), and Advanced Server names must be entered in lowercase letters (for example `edb.dept`). See [Quoted Identifiers and Default Case Translation](../../10_appendix/04_miscellaneous_xdb_processing_topics/#quoted_identifiers) for additional information on quoted identifiers and case translation. + +
+ +Parameters + +`pubname` + +> The name of the publication to which tables or views are to be added. + +`pubsvrfile` + +> The file containing the publication server login information. + +`schema_tn` + +> The name of the schema containing the nth table of the tables parameter list. This value is case-sensitive. + +`table_n` + +> The name of the nth table in the tables parameter list. This value is case-sensitive. + +`schema_vn` + +> **For SMR only:** The name of the schema containing the nth view of the views parameter list. This value is case-sensitive. + +`view_n` + +> **For SMR only:** The name of the nth view in the views parameter list. This value is case-sensitive. + +`ordinal_tn` + +> The ordinal number (that is, the position in the list counting from left to right starting with 1) of a table in the tables parameter list to which an attribute is to be applied. + +`filtername_tn` + +> The filter name to be assigned to the filter rule on the table. + +`filterclause_tn` + +> The filter clause to be applied to the table in the tables parameter list at the position indicated by ordinal\_tn. + +`ordinal_vn` + +> **For SMR only:** The ordinal number (that is, the position in the list counting from left to right starting with 1) of a view in the views parameter list to which an attribute is to be applied. + +`filtername_vn` + +> The filter name to be assigned to the filter rule on the view. + +`filterclause_vn` + +> **For SMR only:** The filter clause to be applied to the view in the views parameter list at the position indicated by ordinal\_vn. + +`-conflictresolution` + +> **For MMR only:** For the conflict resolution option, specify E for earliest timestamp conflict resolution, L for latest timestamp conflict resolution, N for node priority conflict resolution, M for manual conflict resolution, or C for custom conflict handling. The specified conflict resolution applies to the table in the position given by ordinal\_tn counting from left to right in the tables parameter list. If omitted the default is E. + +`-standbyconflictresolution` + +> **For MMR only:** For the standby conflict resolution option, specify E for earliest timestamp conflict resolution, L for latest timestamp conflict resolution, N for node priority conflict resolution, M for manual conflict resolution, or C for custom conflict handling. The specified conflict resolution applies to the table in the position given by ordinal\_tn counting from left to right in the tables parameter list. If omitted the default is M. + +`customhandler_tn` + +> **For MMR only:** For the conflict resolution option or the standby conflict resolution option, specify customhandler\_tn as the function name with an optional schema prefix (that is, formatted as schema.function\_name) as given in the CREATE FUNCTION command for the custom conflict handling function created for the table in the tables parameter list at the position indicated by ordinal\_tn. The custom conflict handling function must be added to the primary definition node. See [Adding a Custom Conflict Handling Function](../../06_mmr_operation/06_conflict_resolution/08_custom_conflict_handling/#adding_custom_conflict_handling_function) for an example of adding the custom conflict handling function using PSQL. The custom handler name option must be specified if and only if the conflict resolution option or the standby conflict resolution option is set for custom conflict handling with the C value. + +`-repgrouptype` + +> Specify s if this command applies to a single-master replication system. Specify m if this command applies to a multi-master replication system. Note: This parameter is not required and may be completely omitted. It is present to provide support for its usage in previous xDB Replication Server CLI versions. + +Examples + +In the following example, table `edb.jobhist` and view `edb.salesemp` are added to an existing publication named analysts\_managers. + +``` text +$ java -jar edb-repcli.jar -addtablesintopub analysts_managers \ +> -repsvrfile ~/pubsvrfile.prop \ +> -tables edb.jobhist \ +> -views edb.salesemp +Adding tables to publication analysts_managers ... + +Tables:[[edb.jobhist, TABLE], [edb.salesemp, VIEW]] +Filter clause:[null, null] +Publication updated successfully +``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/19_removing_tables_from_publication.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/19_removing_tables_from_publication.mdx new file mode 100644 index 00000000000..9aaab92b72f --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/19_removing_tables_from_publication.mdx @@ -0,0 +1,72 @@ +--- +title: "Removing Tables from a Publication (removetablesfrompub)" +--- + + + + +The `removetablesfrompub` command removes tables from a publication. + +Synopsis + +``` text +-removetablesfrompub pubname + -repsvrfile pubsvrfile +[ -tables schema_t1.table_1 [ schema_t2.table_2 ] ...] +[ -views schema_v1.view_1 [ schema_v2.view_2 ] ...] +``` + +See [Removing Tables from a Publication](../../07_common_operations/06_managing_publication/#remove_tables_from_pub) for additional information on removing tables from a publication. + +
+ +
+ +Note + +
+ +The schema names, table names, and view names that you supply as values for the tables and views parameters are case-sensitive. Unless quoted identifiers were used to build the database objects, Oracle names must be entered using uppercase letters (for example, `EDB.DEPT`), and Advanced Server names must be entered in lowercase letters (for example `edb.dept`). See [Quoted Identifiers and Default Case Translation](../../10_appendix/04_miscellaneous_xdb_processing_topics/#quoted_identifiers) for additional information on quoted identifiers and case translation. + +
+ +Parameters + +`pubname` + +> The name of the publication from which tables or views are to be removed. + +`pubsvrfile` + +> The file containing the publication server login information. + +`schema_tn` + +> The name of the schema containing the nth table of the tables parameter list. This value is case-sensitive. + +`table_n` + +> The name of the nth table in the tables parameter list. This value is case-sensitive. + +`schema_vn` + +> The name of the schema containing the nth view of the views parameter list. This value is case-sensitive. + +`view_n` + +> The name of the nth view in the views parameter list. This value is case-sensitive. + +Examples + +In the following example, table `edb.jobhist` and view `edb.salesemp` are removed from the analysts\_managers publication. + +``` text +$ java -jar edb-repcli.jar -removetablesfrompub analysts_managers \ +> -repsvrfile ~/pubsvrfile.prop \ +> -tables edb.jobhist \ +> -views edb.salesemp + +Removing tables and views from publication analysts_managers ... + +Tables and views removed successfully +``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/20_adding_tablefilters_to_publication.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/20_adding_tablefilters_to_publication.mdx new file mode 100644 index 00000000000..ecd626a65b1 --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/20_adding_tablefilters_to_publication.mdx @@ -0,0 +1,108 @@ +--- +title: "Adding Table Filters to a Publication (addfilter)" +--- + + + + +The `addfilter` command adds the definition of table filter rules to the specified publication. + +This makes the filter rules available for subsequent enablement on target subscriptions or non-PDN nodes. + +Enabling a filter rule on a specified, target subscription or non-PDN node results in the filtering of data during replication from the source table to the target table. + +If the filter rule is not enabled on a target subscription or non-PDN node, then it has no impact during replication on such subscription or non-PDN node. See [Enabling Filters on a Subscription or Non-PDN Node](../../08_xdb_cli/03_xdb_cli_commands/#enable_filters_on_subscription_or_non_pdn_node) for information on enabling table filter rules. + +Synopsis + +``` text +-addfilter pubname + –repsvrfile pubsvrfile +[ -tables schema_t1.table_1 [ schema_t2.table_2 ] ...] +[ -views schema_v1.view_1 [ schema_v2.view_2 ] ...] +[ -tablesfilterclause + "ordinal_t1:filtername_t1:filterclause_t1" + [ "ordinal_t2:filtername_t2:filterclause_t2" ] ...] +[ -viewsfilterclause + "ordinal_v1:filtername_v1:filterclause_v1" + [ "ordinal_v2:filtername_v2:filterclause_v2" ] ...] +``` + +See [Table Filters](../../02_overview/02_replication_concepts_and_definitions/#table_filters) for additional information on table filters. + +
+ +
+ +Note + +
+ +The schema names and table or view names that you supply as values for the tables or views parameters are case-sensitive. Unless quoted identifiers were used to build the database objects, Oracle names must be entered using uppercase letters (for example, `EDB.DEPT`), and Advanced Server names must be entered in lowercase letters (for example `edb.dept`). See [Quoted Identifiers and Default Case Translation](../../10_appendix/04_miscellaneous_xdb_processing_topics/#quoted_identifiers) for additional information on quoted identifiers and case translation. + +
+ +Parameters + +`pubname` + +> The name of the publication in which table filters are to be added. + +`pubsvrfile` + +> The file containing the publication server login information. + +`schema_tn` + +> The name of the schema containing the nth table of the tables parameter list. This value is case-sensitive. + +`table_n` + +> The name of the nth table in the tables parameter list. This value is case-sensitive. + +`schema_vn` + +> **For SMR only:** The name of the schema containing the nth view of the views parameter list. This value is case-sensitive. + +`view_n` + +> **For SMR only:** The name of the nth view in the views parameter list. This value is case-sensitive. + +`ordinal_tn` + +> The ordinal number (that is, the position in the list counting from left to right starting with 1) of a table in the tables parameter list to which an attribute is to be applied. + +`filtername_tn` + +> The filter name to be assigned to the filter rule on the table. + +`filterclause_tn` + +> The filter clause to be applied to the table in the tables parameter list at the position indicated by ordinal\_tn. + +`ordinal_vn` + +> **For SMR only:** The ordinal number (that is, the position in the list counting from left to right starting with 1) of a view in the views parameter list to which an attribute is to be applied. + +`filtername_vn` + +> The filter name to be assigned to the filter rule on the view. + +`filterclause_vn` + +> **For SMR only:** The filter clause to be applied to the view in the views parameter list at the position indicated by ordinal\_vn. + +Examples + +In the following example, a table filter is added to table `edb.emp` in publication analysts\_managers. + +``` text +$ java -jar edb-repcli.jar -addfilter analysts_managers \ +> -repsvrfile ~/pubsvrfile.prop \ +> -tables edb.emp \ +> -tablesfilterclause "1:jobgrade_9:job = 'SALESMAN'" +Creating Filter(s) +Tables:[[edb.emp, TABLE]] +Filter clause:[FilterName:jobgrade_9 FilterClause:job = 'SALESMAN' ] +Filter(s) created successfully. +``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/21_updating_tablefilters_to_publication.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/21_updating_tablefilters_to_publication.mdx new file mode 100644 index 00000000000..e995c5f2935 --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/21_updating_tablefilters_to_publication.mdx @@ -0,0 +1,53 @@ +--- +title: "Updating Table Filters in a Publication (updatefilter)" +--- + + + + +The `updatefilter` command changes the filter clauses of the specified tables or views. + +Synopsis + +``` text +-updatefilter pubname + –repsvrfile pubsvrfile + -tablesfilterclause + "filterid_1:filterclause_1" + [ "filterid_2:filterclause_2" ] ... +``` + +The next, subsequent replication to any target subscriptions or non-PDN nodes on which these filter rules had been enabled reflects the changes to the filter clauses. + +See [Table Filters](../../02_overview/02_replication_concepts_and_definitions/#table_filters) for additional information on table filters. + +Parameters + +`pubname` + +> The name of the publication in which the filter clauses are to be updated. + +`pubsvrfile` + +> The file containing the publication server login information. + +`filterid_n` + +> Filter ID identifying the filter rule for which the filter clause is to be changed. Use the `printpubfilterslist` command to obtain the filter IDs for the available filter rules in the publication (see [Printing a List of Filters in a Publication](../../08_xdb_cli/03_xdb_cli_commands/#print_publications_filters_list)). + +`filterclause_n` + +> The new filter clause to be used. + +Examples + +The filter clause with filter ID 26 in publication analysts\_managers is modified. + +``` text +$ java -jar edb-repcli.jar -updatefilter analysts_managers \ +> -repsvrfile ~/pubsvrfile.prop \ +> -tablesfilterclause "26:job = 'CLERK'" +Updating Filter(s) +Filter clause:[26:job = 'CLERK'] +Filter(s) updated successfully. +``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/22_removing_tablefilters_to_publication.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/22_removing_tablefilters_to_publication.mdx new file mode 100644 index 00000000000..70de0f55b22 --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/22_removing_tablefilters_to_publication.mdx @@ -0,0 +1,46 @@ +--- +title: "Removing a Table Filter from a Publication (removefilter)" +--- + + + + +The `removefilter` command deletes the table filter from the specified publication. + +Synopsis + +``` text +-removefilter pubname + –repsvrfile pubsvrfile + -filterid filterid +``` + +The removed filter rule no longer applies to any target subscriptions or non-PDN nodes on which the filter rule had been enabled. + +See [Table Filters](../../02_overview/02_replication_concepts_and_definitions/#table_filters) for additional information on table filters. + +Parameters + +`pubname` + +> The name of the publication containing the filter rule to be removed. + +`pubsvrfile` + +> The file containing the publication server login information. + +`filterid` + +> Filter ID identifying the filter rule to be deleted. Use the printpubfilterslist command to obtain the filter IDs for the filter rules in the publication (see [Printing a List of Filters in a Publication](../../08_xdb_cli/03_xdb_cli_commands/#print_publications_filters_list)). + +Examples + +In the following example, the filter rule with filter ID 26 is removed from publication analysts\_managers. + +``` text +$ java -jar edb-repcli.jar -removefilter analysts_managers \ +> -repsvrfile ~/pubsvrfile.prop \ +> -filterid 26 +Removing Filter +Filter removed successfully +``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/23_print_conflict_resolution_strategy.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/23_print_conflict_resolution_strategy.mdx new file mode 100644 index 00000000000..2b6a0f33e37 --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/23_print_conflict_resolution_strategy.mdx @@ -0,0 +1,61 @@ +--- +title: "Printing the Conflict Resolution Strategy (printconfresolutionstrategy)" +--- + + + + +**For MMR only:** The `printconfresolutionstrategy` command prints the conflict resolution strategy and the standby conflict resolution strategy of the specified table. + +Synopsis + +``` text +-printconfresolutionstrategy pubname + –repsvrfile pubsvrfile + -table schema_t.table_name +``` + +See [Conflict Resolution](../../06_mmr_operation/06_conflict_resolution/#conflict_resolution) for additional information on conflict resolution. + +
+ +
+ +Note + +
+ +The schema name and table or view name that you supply as values for the table parameter are case-sensitive. Unless quoted identifiers were used to build the database objects, Oracle names must be entered using uppercase letters (for example, `EDB.DEPT`), and Advanced Server names must be entered in lowercase letters (for example `edb.dept`). See [Quoted Identifiers and Default Case Translation](../../10_appendix/04_miscellaneous_xdb_processing_topics/#quoted_identifiers) for additional information on quoted identifiers and case translation. + +
+ +Parameters + +`pubname` + +> The name of the publication containing the table whose conflict resolution strategy is to be printed. + +`pubsvrfile` + +> The file containing the publication server login information. + +`schema_t` + +> The name of the schema containing `table_name`. This value is case-sensitive. + +`table_name` + +> The name of the table whose conflict resolution strategy is to be printed. This value is case-sensitive. + +Examples + +In the following example, the conflict resolution strategy on Advanced Server table `edb.emp` in publication `emp_pub` is printed. + +``` text +$ java -jar edb-repcli.jar -printconfresolutionstrategy emp_pub \ +> -repsvrfile ~/pubsvrfile.prop \ +> -table edb.emp +Primary/Standby Conflict Resolution Strategy... +Conflict Resolution Option:[ Earliest Timestamp ] +Standby Conflict Resolution Option:[ Manual ] +``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/24_updating_conflict_resolution_strategy.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/24_updating_conflict_resolution_strategy.mdx new file mode 100644 index 00000000000..28cd22097fc --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/24_updating_conflict_resolution_strategy.mdx @@ -0,0 +1,90 @@ +--- +title: "Updating the Conflict Resolution Strategy (updateconfresolutionstrategy)" +--- + + + + +**For MMR only:** The `updateconfresolutionstrategy` command changes the conflict resolution strategy or standby conflict resolution strategy of the specified table. + +Synopsis + +``` text +-updateconfresolutionstrategy pubname + –repsvrfile pubsvrfile + -table schema_t.table_name + -conflictresolution { E | L | N | M | C } + -standbyconflictresolution { E | L | N | M | C } +[ -customhandlername customhandler ] +``` + +See [Updating the Conflict Resolution Options](../../06_mmr_operation/#update_conflict_resolution_options) for additional information on updating the conflict resolution strategy. + +
+ +
+ +Note + +
+ +The schema name and table or view name that you supply as values for the table parameter are case-sensitive. Unless quoted identifiers were used to build the database objects, Oracle names must be entered using uppercase letters (for example, `EDB.DEPT`), and Advanced Server names must be entered in lowercase letters (for example edb.dept). See [Quoted Identifiers and Default Case Translation](../../10_appendix/04_miscellaneous_xdb_processing_topics/#quoted_identifiers) for additional information on quoted identifiers and case translation. + +
+ +Parameters + +`pubname` + +> The name of the publication containing the table whose conflict resolution strategy is to be updated. + +`pubsvrfile` + +> The file containing the publication server login information. + +`schema_t` + +> The name of the schema containing table\_name. This value is case-sensitive. + +`table_name` + +> The name of the table whose conflict resolution strategy is to be updated. This value is case-sensitive. + +`-conflictresolution` + +> For the conflict resolution option, specify E for earliest timestamp conflict resolution, L for latest timestamp conflict resolution, N for node priority conflict resolution, M for manual conflict resolution, or C for custom conflict handling. + +`-standbyconflictresolution` + +> For the standby conflict resolution option, specify E for earliest timestamp conflict resolution, L for latest timestamp conflict resolution, N for node priority conflict resolution, M for manual conflict resolution, or C for custom conflict handling. + +`customhandler` + +> For the custom handler name option, specify `customhandler` as the function name with an optional schema prefix (that is, formatted as schema.function\_name) as given in the `CREATE FUNCTION` command for the custom conflict handling function. The custom conflict handling function must be added to the primary definition node. See [Adding a Custom Conflict Handling Function](../../06_mmr_operation/06_conflict_resolution/08_custom_conflict_handling/#adding_custom_conflict_handling_function) for an example of adding the custom conflict handling function using PSQL. The custom handler name option must be specified if and only if the conflict resolution option or the standby conflict resolution option is set for custom conflict handling with the C value. + +Examples + +The conflict resolution strategy on Advanced Server table `edb.emp` in publication `emp_pub` is modified to use latest timestamp conflict resolution with a standby strategy of node priority conflict resolution. + +``` text +$ java -jar edb-repcli.jar -updateconfresolutionstrategy emp_pub \ +> -repsvrfile ~/pubsvrfile.prop \ +> -table edb.emp \ +> -conflictresolution L \ +> -standbyconflictresolution N +Updating Primary/Standby Conflict Resolution Strategy... +The Primary/Standby conflict resolution strategies were updated successfully. +``` + +Custom conflict handling is set for the `edb.dept` table along with the custom conflict handling function `edb.custom_conflict_dept`. + +``` text +$ java -jar edb-repcli.jar -updateconfresolutionstrategy emp_pub \ +> -repsvrfile ~/pubsvrfile.prop \ +> -table edb.dept \ +> -conflictresolution C \ +> -standbyconflictresolution N \ +> -customhandlername edb.custom_conflict_dept +Updating Primary/Standby Conflict Resolution Strategy... +The Primary/Standby conflict resolution strategies were updated successfully. +``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/25_set_pdn_node.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/25_set_pdn_node.mdx new file mode 100644 index 00000000000..55650d55665 --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/25_set_pdn_node.mdx @@ -0,0 +1,37 @@ +--- +title: "Setting the master definition node (setasmdn)" +--- + + + + +**For MMR only:** The `setasmdn` command sets a primary node to the role of master definition node. + +Synopsis + +``` text +-setaspdn pubdbid + –repsvrfile pubsvrfile +``` + +See [Switching the Primary definition node](../../06_mmr_operation/#switching_pdn) for additional information on setting the primary definition node. + +Parameters + +`pubdbid` + +> The publication database ID of the primary node to be given the role of primary definition node. + +`pubsvrfile` + +> The file containing the publication server login information. + +Examples + +The following example sets the primary node with publication database ID 9 as the primary definition node. + +``` text +$ java -jar edb-repcli.jar -setasPDN 9 -repsvrfile ~/pubsvrfile.prop +Updating the database node to be promoted as the new PDN node. +The database has been successfully promoted as the new PDN node. +``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/26_set_controller.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/26_set_controller.mdx new file mode 100644 index 00000000000..ec5d0992dc3 --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/26_set_controller.mdx @@ -0,0 +1,37 @@ +--- +title: "Setting the Controller (setascontroller)" +--- + + + + +The `setascontroller` command sets a publication database to be designated as the controller database. The publication database may be the primary database of a single-master replication system or a primary node of a multi-master replication system. + +Synopsis + +``` text +-setascontroller pubdbid + –repsvrfile pubsvrfile +``` + +See [Switching the Controller Database](../../07_common_operations/#switching_controller_db) for additional information on setting the controller database. + +Parameters + +`pubdbid` + +> The publication database ID of the publication database to be designated as the controller database. + +`pubsvrfile` + +> The file containing the publication server login information. + +Examples + +The following example sets the publication database with publication database ID 4 as the controller database. + +``` text +$ java -jar edb-repcli.jar -setascontroller 4 -repsvrfile ~/pubsvrfile.prop +Updating the Publication database to be promoted as the new Controller database... +The Publication database has been successfully promoted as the new Controller database. +``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/27_validate_a_publication.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/27_validate_a_publication.mdx new file mode 100644 index 00000000000..e10032ce95a --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/27_validate_a_publication.mdx @@ -0,0 +1,43 @@ +--- +title: "Validating a Publication (validatepub)" +--- + + + + +The `validatepub` command checks if any of the definitions of the tables in the given publication have changed since the publication was created. + +Synopsis + +``` text +-validatepub pubname + –repsvrfile pubsvrfile + -repgrouptype { m | s } +``` + +See [Validating a Publication](../../07_common_operations/06_managing_publication/#validating_publication) for additional information on validating publications. + +Parameters + +`pubname` + +> The name of the publication whose tables are to be validated. + +`pubsvrfile` + +T he file containing the publication server login information. + +`-repgrouptype` + +> Specify s if this command applies to a single-master replication system. Specify m if this command applies to a multi-master replication system. + +Examples + +In the following example, publication `dept_emp` is validated. + +``` text +$ java -jar edb-repcli.jar -validatepub dept_emp \ +> -repsvrfile ~/pubsvrfile.prop -repgrouptype s +Validating publication dept_emp ... +All schema of published tables in Publication {0} are up-to-date +``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/28_validate_all_publications.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/28_validate_all_publications.mdx new file mode 100644 index 00000000000..0688980c682 --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/28_validate_all_publications.mdx @@ -0,0 +1,48 @@ +--- +title: "Validating All Publications (validatepubs)" +--- + + + + +The `validatepubs` command checks if any of the definitions of the tables subordinate to the given publication database definition have changed since the publication was created. + +Synopsis + +``` text +-validatepubs + –repsvrfile pubsvrfile + -pubdbid dbid + -repgrouptype { m | s } +``` + +See [Validating a Publication](../../07_common_operations/06_managing_publication/#validating_publication) for additional information on validating publications. + +Parameters + +`pubsvrfile` + +> The file containing the publication server login information. + +`dbid` + +> The publication database ID of the publication database definition under which all publication tables are to be validated. + +`-repgrouptype` + +> Specify s if this command applies to a single-master replication system. Specify m if this command applies to a multi-master replication system. + +Examples + +In the following example, the Oracle publication database definition identified by publication database ID 1 is validated. + +``` text +$ java -jar edb-repcli.jar -validatepubs \ +> -repsvrfile ~/pubsvrfile.prop \ +> -pubdbid 1 -repgrouptype s +Validating all available publications ... +The schema definitions for all the non snapshot-only publications tables are in sync +with the source. +The "validatepubs" feature is not available for the following snapshot-only publications: +- salesemp +``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/29_removing_a_publication.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/29_removing_a_publication.mdx new file mode 100644 index 00000000000..6d43287241c --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/29_removing_a_publication.mdx @@ -0,0 +1,40 @@ +--- +title: "Removing a Publication (removepub)" +--- + + + + +The `removepub` command removes one or more publications. + +Synopsis + +``` text +-removepub pubname_1 [ pubname_2 ] ... + –repsvrfile pubsvrfile + -repgrouptype { m | s } +``` + +See [Removing a Publication](../../07_common_operations/06_managing_publication/#removing_pub) for additional information on removing a publication. Parameters + +`pubname_n` + +> The name of a publication to be removed. + +`pubsvrfile` + +> The file containing the publication server login information. + +`-repgrouptype` + +> Specify s if this command applies to a single-master replication system. Specify m if this command applies to a multi-master replication system. + +Examples + +``` text +A publication named dept_emp is removed from a single-master replication system. +$ java -jar edb-repcli.jar -removepub dept_emp \ +> -repsvrfile ~/pubsvrfile.prop -repgrouptype s +Removing publication... +Publication dept_emp unpublished successfully. +``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/30_replicating_ddl_changes_cli.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/30_replicating_ddl_changes_cli.mdx new file mode 100644 index 00000000000..faad98f40b0 --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/30_replicating_ddl_changes_cli.mdx @@ -0,0 +1,55 @@ +--- +title: "Replicating DDL Changes (replicateddl)" +--- + + + + +The `replicateddl` command applies an `ALTER TABLE` statement to a publication table in all databases of a replication system as well as updates the xDB Replication Server insert/update/delete triggers and shadow table associated with that publication table. + +Synopsis + +``` text +-replicateddl pubname + –repsvrfile pubsvrfile + -table schema_t.table_name + -ddlscriptfile script_file +``` + +See [Replicating DDL Changes](../../07_common_operations/08_replicating_ddl_changes/#replicating_ddl_changes) for additional information on DDL change replication. + +Parameters + +`pubname` + +> The name of the publication containing the table to which the `ALTER TABLE` statement is to be applied. + +`pubsvrfile` + +> The file containing the publication server login information. + +`schema_t` + +> The name of the schema containing `table_name`. This value is case-sensitive. + +`table_name` + +> The name of the table in the `ALTER TABLE` statement whose definition is to be modified. This value is case-sensitive. + +`script_file` + +> Path to the file containing the `ALTER TABLE` statements. + +Examples + +The following example shows the addition of a column named title to table `edb.emp`. The `ALTER TABLE` statement is in the text file `addcolumn.sql` as shown by the following: + +``` text +ALTER TABLE edb.emp ADD COLUMN title VARCHAR(20); +The replicateddl command is executed using the addcolumn.sql file to update the triggers and shadow tables on the primary nodes: +$ java -jar edb-repcli.jar -replicateddl emp_pub \ +> -repsvrfile ~/pubsvrfile.prop \ +> -table edb.emp \ +> -ddlscriptfile ~/addcolumn.sql +DDL changes successfully replicated to all primary nodes. +``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/31_adding_subscription_db.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/31_adding_subscription_db.mdx new file mode 100644 index 00000000000..88c34c0b82d --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/31_adding_subscription_db.mdx @@ -0,0 +1,94 @@ +--- +title: "Adding a Subscription Database (addsubdb)" +--- + + + + +**For SMR only:** The `addsubdb` command adds a subscription database definition. + +Synopsis + +``` text +-addsubdb + -repsvrfile subsvrfile + -dbtype { oracle | enterprisedb | postgresql | sqlserver } + -dbhost host + -dbport port + -dbuser user +{ -dbpassword encrypted_pwd | -dbpassfile pwdfile } +[ -oraconnectiontype { sid | servicename } ] + -database dbname +[ -urloptions jdbc_url_parameters ] +``` + +The `addsubdb` command creates a new subscription database definition. The `addsubdb` command displays a unique subscription database ID that is assigned to the newly created subscription database definition. The subscription database ID is used to identify the subscription database definition on which to operate when running other xDB Replication Server CLI commands. + +See [Adding a Subscription Database](../../05_smr_operation/03_creating_subscription/#adding_subscription_database) for details on the database connection information that must be supplied when adding a subscription database definition. + +Parameters + +`subsvrfile` + +> The file containing the subscription server login information. + +`-dbtype` + +> Specify oracle if the database is an Oracle database. Specify enterprisedb if the database is an Advanced Server database in Oracle compatible configuration mode. Specify `postgresql` if the database is a PostgreSQL database or an Advanced Server database in PostgreSQL compatible configuration mode. Specify `sqlserver` if the database is a Microsoft SQL Server database. + +`host` + +> The IP address of the host on which the subscription database server is running. + +`port` + +> The port number on which the database server is listening for connections. + +`user` + +> The subscription database user name. + +`encrypted_pwd` + +> The encrypted password of the subscription database user. See [Encrypting Passwords](../../08_xdb_cli/03_xdb_cli_commands/#encrypt_password) for directions on using the encrypt command to generate an encrypted password. + +`pwdfile` + +> The file containing the encrypted password of the subscription database user. + +`-oraconnectiontype` + +> Specify sid if the Oracle system ID (SID) is used to identify the subscription database in the database parameter. Specify `servicename` if the Oracle service name is used to identify the subscription database in the database parameter. Note: For Oracle 12c, use the service name. + +`dbname` + +> The Postgres or SQL Server database name, the Oracle SID, or the Oracle service name of the subscription database. + +`jdbc_url_parameters` + +> Extended usage of JDBC URL parameters such as for support of SSL connectivity. (See Preparing Using Secure Sockets Layer (SSL) Connections <using\_ssl\_connections> for information on SSL connectivity to the subscription database.) + +Examples + +The following example adds a subscription database definition for an Oracle database. The encrypted password is given on the command line with the `dbpassword` parameter. A subscription database ID of 1 is assigned to the database by the subscription server. + +``` text +$ java -jar edb-repcli.jar -addsubdb -repsvrfile ~/subsvrfile.prop \ +> -dbtype oracle -dbhost 192.168.2.6 -dbport 1521 \ +> -dbuser subuser -dbpassword ygJ9AxoJEX854elcVIJPTw== \ +> -oraconnectiontype sid \ +> -database xe +Adding Subscription Database... +Subscription database added successfully. Subscription Database id:1 +``` + +The following example adds a subscription database definition for an Advanced Server database. The encrypted password is read from a file named pwdfile with the `dbpassfile` parameter. A subscription database ID of 2 is assigned to the database by the subscription server. + +``` text +$ java -jar edb-repcli.jar -addsubdb -repsvrfile ~/subsvrfile.prop \ +> -dbtype enterprisedb -dbhost 192.168.2.7 -dbport 5444 \ +> -dbuser subuser -dbpassfile ~/pwdfile \ +> -database subdb +Adding Subscription Database... +Subscription database added successfully. Subscription Database id:2 +``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/32_printing_subscription_db_id.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/32_printing_subscription_db_id.mdx new file mode 100644 index 00000000000..34df1238a69 --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/32_printing_subscription_db_id.mdx @@ -0,0 +1,29 @@ +--- +title: "Printing Subscription Database IDs (printsubdbids)" +--- + + + + +**For SMR only:** The `printsubdbids` command prints the subscription database IDs of the subscription database definitions. + +Synopsis + +`-printsubdbids -repsvrfile subsvrfile` + +Parameters + +`subsvrfile` + +> The file containing the subscription server login information. + +Examples + +The following example lists the subscription database IDs of the subscription database definitions. + +``` text +$ java -jar edb-repcli.jar -printsubdbids -repsvrfile ~/subsvrfile.prop +Printing subscription database ids... +1 +2 +``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/33_printing_subscription_db_details.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/33_printing_subscription_db_details.mdx new file mode 100644 index 00000000000..d2f0c2a6920 --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/33_printing_subscription_db_details.mdx @@ -0,0 +1,67 @@ +--- +title: "Printing Subscription Database Details (printsubdbidsdetails)" +--- + + + + +**For SMR only:** The `printsubdbidsdetails` command prints the connection information for each subscription database definition. + +Synopsis + +`-printsubdbidsdetails –repsvrfile subsvrfile` + +The output has the following components: + +`dbid:host:port:dbname:user` + +
+ +
+ +Note + +
+ +The database user’s password is not displayed. + +
+ +Parameters + +`subsvrfile` + +> The file containing the subscription server login information. + +`dbid` + +> The subscription database ID assigned to the subscription database definition. + +`host` + +> The IP address of the host on which the subscription database server is running. + +`port` + +The port number on which the database server is listening for connections. + +`dbname` + +> The Postgres or SQL Server database name, the Oracle SID, or the Oracle service name of the subscription database. + +`user` + +> The subscription database user name. + +Examples + +The following are the subscription database definitions subordinate to the subscription server identified by the content of file `subsvrfile.prop`. + +``` text +$ java -jar edb-repcli.jar -printsubdbidsdetails \ +> -repsvrfile ~/subsvrfile.prop +Printing subscription database ids with details... +id:host:port:database|sid:user +1:192.168.2.6:1521:xe:subuser +2:192.168.2.7:5444:subdb:subuser +``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/34_updating_subscription_database_cli.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/34_updating_subscription_database_cli.mdx new file mode 100644 index 00000000000..2b125c33ecc --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/34_updating_subscription_database_cli.mdx @@ -0,0 +1,83 @@ +--- +title: "Updating a Subscription Database (updatesubdb)" +--- + + + + +**For SMR only:** The `updatesubdb` command provides the ability to change the connection information for an existing subscription database definition identified by its subscription database ID. + +Synopsis + +``` text +-updatesubdb + -repsvrfile subsvrfile + -subdbid dbid + -dbhost host + -dbport port + -dbuser user +{ -dbpassword encrypted_pwd | -dbpassfile pwdfile } +[ -oraconnectiontype { sid | servicename } ] + -database dbname +[ -urloptions jdbc_url_parameters ] +``` + +The subscription database definition to be updated is identified by the subdbid parameter. + +See [Adding a Subscription Database](../../05_smr_operation/03_creating_subscription/#adding_subscription_database) for details on the database connection information that must be supplied for a subscription database definition. + +Parameters + +`subsvrfile` + +> The file containing the subscription server login information. + +`dbid` + +> The subscription database ID of the subscription database definition to be updated. + +`host` + +> The IP address of the host on which the subscription database server is running. + +`port` + +> The port number on which the database server is listening for connections. + +`user` + +> The subscription database user name. + +`encrypted_pwd` + +> The password of the database user in encrypted form. See [Encrypting Passwords](../../08_xdb_cli/03_xdb_cli_commands/#encrypt_password) for directions on using the encrypt command to generate an encrypted password. + +`pwdfile` + +> The file containing the password of the database user in encrypted form. + +`-oraconnectiontype` + +> Specify sid if the Oracle system ID (SID) is used to identify the subscription database in the database parameter. Specify servicename if the Oracle service name is used to identify the subscription database in the database parameter. Note: For Oracle 12c, use the service name. + +`dbname` + +> The Postgres or SQL Server database name, the Oracle SID, or the Oracle service name of the subscription database. + +`jdbc_url_parameters` + +> Extended usage of JDBC URL parameters such as for support of SSL connectivity. (See Preparing Using Secure Sockets Layer (SSL) Connections <using\_ssl\_connections> for information on SSL connectivity to the subscription database.) Specification of the `urloptions` parameter completely replaces any existing JDBC URL parameters that may have previously been specified with this database. Omission of the `urloptions` parameter deletes any existing JDBC URL parameters that may have previously been specified with this database. + +Examples + +In the following example, an existing subscription database definition with subscription database ID 2 is updated. + +``` text +$ java -jar edb-repcli.jar -updatesubdb -repsvrfile ~/subsvrfile.prop \ +> -subdbid 2 \ +> -dbhost 192.168.2.7 -dbport 5444 \ +> -dbuser subuser -dbpassfile ~/pwdfile \ +> -database subdb +Updating subscription database ... +Subscription database with ID 2 is updated successfully. +``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/35_removing_subscription_database_cli.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/35_removing_subscription_database_cli.mdx new file mode 100644 index 00000000000..34aa76221ca --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/35_removing_subscription_database_cli.mdx @@ -0,0 +1,37 @@ +--- +title: "Removing a Subscription Database (removesubdb)" +--- + + + + +**For SMR only:** The `removesubdb` command removes a subscription database definition. + +Synopsis + +`-removesubdb –repsvrfile subsvrfile –subdbid dbid` + +The subscription database definition to be removed is identified by the `subdbid` parameter. + +See [Removing a Subscription Database](../../05_smr_operation/05_managing_subscription/#removing_subscription_database) for additional information on removing a subscription database. + +Parameters + +`subsvrfile` + +> The file containing the subscription server login information. + +`dbid` + +> The subscription database ID of the subscription database definition to be removed. + +Examples + +The subscription database definition identified by subscription database ID 2 is removed. + +``` text +$ java -jar edb-repcli.jar -removesubdb -repsvrfile ~/subsvrfile.prop \ +> -subdbid 2 +Removing Subscription Database... +Subscription Database removed. +``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/36_creating_subscription_cli.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/36_creating_subscription_cli.mdx new file mode 100644 index 00000000000..3144a887e50 --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/36_creating_subscription_cli.mdx @@ -0,0 +1,63 @@ +--- +title: "Creating a Subscription (createsub)" +--- + + + + +**For SMR only:** The `createsub` command creates a new subscription. + +Synopsis + +``` text +-createsub subname + -subsvrfile subsvrfile + -subdbid dbid + -pubsvrfile pubsvrfile + -pubname pubname +[ -filterrule filterid_1[,filterid_2 ] ...] +``` + +The `createsub` command adds a new subscription subordinate to the subscription database definition with the subscription database ID given by parameter `subdbid.` + +See [Adding a Subscription](../../05_smr_operation/03_creating_subscription/#adding_subscription) for additional information on creating a subscription. + +Parameters + +`subname` + +> The subscription name to be given to the new subscription. + +`subsvrfile` + +> The file containing the subscription server login information of the subscription server under which the new subscription is subordinate. + +`dbid` + +> The subscription database ID of the subscription database definition subordinate to which the new subscription is to be added. + +`pubsvrfile` + +> The file containing the publication server login information of the publication server under which the publication is subordinate to which the new subscription is to be associated. + +`pubname` + +> The publication to which the new subscription is to be associated. + +`filterid_n` + +> Comma-separated list of filter IDs identifying the filter rules from the set of available table filters to enable on the corresponding tables in the new subscription. Use the `printpubfilterslist` command to obtain the filter IDs for the available filter rules in the publication (see [Printing a List of Filters in a Publication](../../08_xdb_cli/03_xdb_cli_commands/#print_publications_filters_list)). Note: There must be no white space between the comma and filter IDs. + +Examples + +In the following example, a subscription named `dept_emp_sub` is created in the Advanced Server subscription database identified by subscription database ID 2. The subscription is associated with a publication named `dept_emp`. + +``` text +$ java -jar edb-repcli.jar -createsub dept_emp_sub \ +> -subsvrfile ~/subsvrfile.prop \ +> -subdbid 2 \ +> -pubsvrfile ~/pubsvrfile.prop \ +> -pubname dept_emp +Creating subscription... +Subscription created successfully +``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/37_print_subscription_list.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/37_print_subscription_list.mdx new file mode 100644 index 00000000000..603d7bba821 --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/37_print_subscription_list.mdx @@ -0,0 +1,31 @@ +--- +title: "Printing a Subscription List (printsublist)" +--- + + + + +**For SMR only:** The `printsublist` command prints a list of subscription names. + +Synopsis + +`-printsublist -repsvrfile subsvrfile -subdbid dbid` + +Parameters + +`subsvrfile` + +> The file containing the subscription server login information. + +`dbid` + +> The subscription names subordinate to the subscription database definition specified by dbid are printed. + +Examples + +``` text +$ java -jar edb-repcli.jar -printsublist -repsvrfile ~/subsvrfile.prop \ +> -subdbid 2 +Printing subscriptions ... +dept_emp_sub +``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/38_enable_filters_on_subscription_or_non_pdn_node.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/38_enable_filters_on_subscription_or_non_pdn_node.mdx new file mode 100644 index 00000000000..4ca8d80af62 --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/38_enable_filters_on_subscription_or_non_pdn_node.mdx @@ -0,0 +1,83 @@ +--- +title: "Enabling Filters on a Subscription or Non-PDN Node (enablefilter)" +--- + + + + +The `enablefilter` command enables one or more filter rules on a single-master replication system subscription or on a multi-master replication system primary node other than the primary definition node. + +The `enablefilter` command is used when it is desired to apply a filter rule to a subscription or a non-pdn node, but the filter rule did not yet exist or it was neglected to be included with the subscription or the non-pdn node when these components were initially created. + +Synopsis + +``` text +-enablefilter + -repsvrfile pubsvrfile +{ -subname subname | -dbid dbid } + -filterids filterid_1 [ filterid_2 ] ... +``` + +Enabling a filter rule applies it to the specified, target subscription or non-pdn node, and thus filters the data during replication from the source table to the target table. + +See [Table Filters](../../02_overview/02_replication_concepts_and_definitions/#table_filters) for additional information on table filters. + +Before enabling a filter rule, it must have been defined in the source publication in one of several possible ways: + +**For SMR:** + +- The table filter was defined in the publication of the primary database when it was initially created either by the createpub command (see [Creating a Publication](../../08_xdb_cli/03_xdb_cli_commands/#creating_publication_cli)) or by the xDB Replication Console (see [Adding a Publication](../../05_smr_operation/02_creating_publication/#adding_publication)). +- The table filter was added to an existing publication using the addfilter command (see [Adding Table Filters to a Publication](../../08_xdb_cli/03_xdb_cli_commands/#adding_tablefilters_to_publication)) or by the xDB Replication Console (see [Updating the Set of Available Table Filters in a Publication](../../07_common_operations/06_managing_publication/#updating_table_filters_in_pub)). + +**For MMR:** + +- The table filter was defined in the publication of the primary definition node when it was initially created either by the createpub command (see [Creating a Publication](../../08_xdb_cli/03_xdb_cli_commands/#creating_publication_cli)) or by the xDB Replication Console (see [Adding a Publication](../../06_mmr_operation/#add_pub_mmr)). +- The table filter was added to an existing publication using the addfilter command (see [Adding Table Filters to a Publication](../../08_xdb_cli/03_xdb_cli_commands/#adding_tablefilters_to_publication)) or by the xDB Replication Console (see [Updating the Set of Available Table Filters in a Publication](../../07_common_operations/06_managing_publication/#updating_table_filters_in_pub)). + +Enable the filter rule as follows: + +**For SMR:** Use the `enablefilter` command or the xDB Replication Console (see Enabling/Disabling Table Filters on a Subscription <enable\_filters\_on\_subscription>). + +**For MMR:** Use the `enablefilter` command or the xDB Replication Console (see Enabling/Disabling Table Filters on a Primary node <enable\_disable\_table\_filters>). + +Once a filter rule has been enabled, it filters the data during replication from the source table to the target table. A filter rule can subsequently be disabled so that it no longer filters the data during replication to the target table (see [Disabling Filters on a Subscription or Non-PDN Node](../../08_xdb_cli/03_xdb_cli_commands/#disable_filters_on_subscription_or_non_pdn_node)). + +Parameters + +`pubsvrfile` + +> The file containing the publication server login information. + +`subname` + +> **For SMR only:** The name of the subscription containing the tables on which the filter rules are to be enabled. + +`dbid` + +> **For MMR only:** The publication database ID of the non-PDN node containing the tables on which the filter rules are to be enabled. + +`filterid_n` + +> One or more filter IDs separated by space characters identifying the filter rules from the set of available table filters to enable on the corresponding tables in the SMR subscription specified by subname or in the MMR non-PDN node specified by `dbid`. Use the `printpubfilterslist` command to obtain the filter IDs for the available filter rules in the publication (see [Printing a List of Filters in a Publication](../../08_xdb_cli/03_xdb_cli_commands/#print_publications_filters_list)). + +Examples + +In the following example, a filter rule is enabled on a subscription of a single-master replication system. + +``` text +$ java -jar edb-repcli.jar -enablefilter -repsvrfile ~/pubsvrfile.prop \ +> -subname analysts_managers_sub \ +> -filterids 47 +Enabling filters... +Filter rule(s) updated successfully. +``` + +In the following example, multiple filter rules are enabled on a primary node that is not the primary definition node of a multi-master replication system. + +``` text +$ java -jar edb-repcli.jar -enablefilter -repsvrfile ~/pubsvrfile.prop \ +> -dbid 139 \ +> -filterids 8 16 +Enabling filters... +Filter rule(s) updated successfully. +``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/39_disable_filters_on_subscription_or_non_pdn_node.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/39_disable_filters_on_subscription_or_non_pdn_node.mdx new file mode 100644 index 00000000000..a5b2287daaf --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/39_disable_filters_on_subscription_or_non_pdn_node.mdx @@ -0,0 +1,71 @@ +--- +title: "Disabling Filters on a Subscription or Non-MDN Node (disablefilter)" +--- + + + + +The `disablefilter` command disables one or more filter rules on a single-master replication system subscription or on a multi-master replication system primary node other than the primary definition node. + +Synopsis + +``` text +-disablefilter + -repsvrfile pubsvrfile +{ -subname subname | -dbid dbid } + -filterids filterid_1 [ filterid_2 ] ... +``` + +Disabling a filter rule prevents it from being applied to the specified, target subscription or non-mdn node, and thus does not filter the data during replication from the source table to the target table. + +See [Table Filters](../../02_overview/02_replication_concepts_and_definitions/#table_filters) for additional information on table filters. + +Disable the filter rule as follows: + +**For SMR:** Use the `disablefilter` command or the xDB Replication Console (see Enabling/Disabling Table Filters on a Subscription <enable\_filters\_on\_subscription>). + +**For MMR:** Use the disablefilter command or the xDB Replication Console. (see Enabling/Disabling Table Filters on a Primary node <enable\_disable\_table\_filters>). + +Disabling a filter rule does not remove its definition from the publication. Thus, the filter rule still exists and can still be enabled on target subscriptions or non-PDN nodes. + +To remove a filter rule so that it no longer exists, perform the following: For either SMR or MMR: Use the `removefilter` command (see [Removing a Table Filter from a Publication](../../08_xdb_cli/03_xdb_cli_commands/#removing_tablefilters_to_publication)) or the xDB Replication Console (see [Updating the Set of Available Table Filters in a Publication](../../07_common_operations/06_managing_publication/#updating_table_filters_in_pub)). + +Parameters + +`pubsvrfile` + +The file containing the publication server login information. + +`subname` + +> **For SMR only:** The name of the subscription containing the tables on which the filter rules are to be disabled. + +`dbid` + +> **For MMR only:** The publication database ID of the non-PDN node containing the tables on which the filter rules are to be disabled. + +`filterid_n` + +> One or more filter IDs separated by space characters identifying the currently enabled table filters that are to be disabled in the SMR subscription specified by subname or in the MMR non-mdn node specified by dbid. + +Examples + +In the following example, a filter rule is disabled on a subscription of a single-master replication system. + +``` text +$ java -jar edb-repcli.jar -disablefilter -repsvrfile ~/pubsvrfile.prop \ +> -subname analysts_managers_sub \ +> -filterids 47 +Disabling filters... +Filter rule(s) updated successfully. +``` + +In the following example, multiple filter rules are disabled on a primary node that is not the primary definition node of a multi-master replication system. + +``` text +$ java -jar edb-repcli.jar -disablefilter -repsvrfile ~/pubsvrfile.prop \ +> -dbid 139 \ +> -filterids 8 16 +Disabling filters... +Filter rule(s) updated successfully. +``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/40_taking_smr_snapshot.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/40_taking_smr_snapshot.mdx new file mode 100644 index 00000000000..7ad99439a6d --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/40_taking_smr_snapshot.mdx @@ -0,0 +1,90 @@ +--- +title: "Taking a Single-Master Snapshot (dosnapshot)" +--- + + + + +**For SMR only:** The `dosnapshot` command performs snapshot synchronization on the specified subscription in a single-master replication system. + +Synopsis + +``` text +-dosnapshot subname -repsvrfile subsvrfile +[ -verboseSnapshotOutput { true | false } ] +``` + +See [Performing Snapshot Replication](../../06_mmr_operation/#perform_snapshot_replication_mmr) for additional information on performing snapshot replication. + +Parameters + +`subname` + +The name of the subscription for which the snapshot is to be taken. + +`subsvrfile` + +> The file containing the subscription server login information. + +`-verboseSnapshotOutput` + +> Set this option to true if you want the output from the snapshot to be displayed. Set this option to false if you do not want the snapshot output displayed. If omitted, the default is true. + +Examples + +In the following example snapshot replication is performed on subscription `dept_emp_sub`. + +``` text +$ java -jar edb-repcli.jar -dosnapshot dept_emp_sub \ +> -repsvrfile ~/subsvrfile.prop +Performing snapshot... +Source database connectivity info... +conn =jdbc:oracle:thin:@192.168.2.6:1521:xe +user =pubuser +password=****** +Target database connectivity info... +conn =jdbc:edb://192.168.2.7:5444/subdb +user =subuser +password=****** +Connecting with source Oracle database server... +Connecting with target EnterpriseDB database server... +Importing redwood schema EDB... +Table List: 'DEPT','EMP' +Loading Table Data in 8 MB batches... +Disabling FK constraints & triggers on edb.dept before truncate... +Truncating table DEPT before data load... +Disabling indexes on edb.dept before data load... +Loading Table: DEPT ... +[DEPT] Migrated 4 rows. +[DEPT] Table Data Load Summary: Total Time(s): 0.182 Total Rows: 4 +Disabling FK constraints & triggers on edb.emp before truncate... +Truncating table EMP before data load... +Disabling indexes on edb.emp before data load... +Loading Table: EMP ... +[EMP] Migrated 14 rows. +[EMP] Table Data Load Summary: Total Time(s): 0.178 Total Rows: 14 +Enabling FK constraints & triggers on edb.dept... +Enabling indexes on edb.dept after data load... +Enabling FK constraints & triggers on edb.emp... +Enabling indexes on edb.emp after data load... +Performing ANALYZE on EnterpriseDB database... +Data Load Summary: Total Time (sec): 1.866 Total Rows: 18 Total Size(MB): 0.0 + +Schema EDB imported successfully. + + +Migration process completed successfully. + +Migration logs have been saved to /var/log/xdb-rep/build57l + +******************** Migration Summary ******************** +Tables: 2 out of 2 +Constraints: 4 out of 4 + +Total objects: 6 +Successful count: 6 +Failure count: 0 + +************************************************************* +Snapshot taken successfully. +``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/41_taking_mmr_snapshot.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/41_taking_mmr_snapshot.mdx new file mode 100644 index 00000000000..b98828122ee --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/41_taking_mmr_snapshot.mdx @@ -0,0 +1,93 @@ +--- +title: "Take a Multi-Master Snapshot (doMMRsnapshot)" +--- + + + + +**For MMR only:** The `doMMRsnapshot` command performs snapshot synchronization on the specified primary node in a multi-master replication system. + +``` text +-doMMRsnapshot pubname + –repsvrfile pubsvrfile + -pubhostdbid dbid +[ -verboseSnapshotOutput { true | false } ] +``` + +Parameters + +`pubname` + +> The name of the publication for which the snapshot is to be taken. + +`pubsvrfile` + +> The file containing the publication server login information. + +`dbid` + +> The publication database ID of the target primary node for the snapshot replication. + +`-verboseSnapshotOutput` + +> Set this option to true if you want the output from the snapshot to be displayed. Set this option to false if you do not want the snapshot output displayed. If omitted, the default is true. + +Examples + +In the following example snapshot replication is performed on publication `emp_pub` to the target primary node identified by publication database ID 9. + +``` text +$ java -jar edb-repcli.jar -doMMRsnapshot emp_pub \ +> -pubhostdbid 9 \ +> -repsvrfile ~/pubsvrfile.prop +Performing snapshot... +Source database connectivity info... +conn =jdbc:edb://192.168.2.6:5444/edb +user =pubuser +password=****** +Target database connectivity info... +conn =jdbc:edb://192.168.2.7:5444/MMRnode +user =MMRuser +password=****** +Connecting with source EnterpriseDB database server... +Connecting with target EnterpriseDB database server... +Importing enterprisedb schema edb... +Table List: 'dept','emp' +Loading Table Data in 8 MB batches... +Disabling FK constraints & triggers on edb.dept before truncate... +Truncating table dept before data load... +Disabling indexes on edb.dept before data load... +Loading Table: dept ... +[dept] Migrated 5 rows. +[dept] Table Data Load Summary: Total Time(s): 0.247 Total Rows: 5 +Disabling FK constraints & triggers on edb.emp before truncate... +Truncating table emp before data load... +Disabling indexes on edb.emp before data load... +Loading Table: emp ... +[emp] Migrated 14 rows. +[emp] Table Data Load Summary: Total Time(s): 0.163 Total Rows: 14 +Enabling FK constraints & triggers on edb.dept... +Enabling indexes on edb.dept after data load... +Enabling FK constraints & triggers on edb.emp... +Enabling indexes on edb.emp after data load... +Performing ANALYZE on EnterpriseDB database... +Data Load Summary: Total Time (sec): 0.8 Total Rows: 19 Total Size(MB): 0.0 + +Schema edb imported successfully. + + +Migration process completed successfully. + +Migration logs have been saved to /var/log/xdb-rep/build57l + +******************** Migration Summary ******************** +Tables: 2 out of 2 +Constraints: 4 out of 4 + +Total objects: 6 +Successful count: 6 +Failure count: 0 + +************************************************************* +Snapshot taken successfully. +``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/42_perform_synchronization.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/42_perform_synchronization.mdx new file mode 100644 index 00000000000..b3920f29a22 --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/42_perform_synchronization.mdx @@ -0,0 +1,86 @@ +--- +title: "Performing a Synchronization (dosynchronize)" +--- + + + + +The `dosynchronize` command performs synchronization replication on the specified subscription for a single-master replication system, or for an entire multi-master replication system. + +Synopsis + +``` text +-dosynchronize { subname | pubname } + -repsvrfile { subsvrfile | pubsvrfile } +[ -repgrouptype { s | m } ] +For a single-master replication system use: +-dosynchronize subname –repsvrfile subsvrfile +``` + +**For a multi-master replication system use:** + +`-dosynchronize pubname -repsvrfile pubsvrfile -repgrouptype m` + +
+ +
+ +Note + +
+ +(For SMR only): The `dosynchronize` command can be used on a subscription without first having to perform a snapshot using the `dosnapshot` command. The `dosynchronize` command automatically performs the first required snapshot. + +
+ +
+ +
+ +Note + +
+ +(For MMR only): Be sure an initial snapshot replication has been performed from the primary definition node to every other primary node in the multi-master replication system. If a newly added primary node did not undergo an initial snapshot, any subsequent synchronization replication may fail to apply the transactions to that primary node. The initial snapshot could be taken when the primary node is first added (see [Creating Additional Primary nodes](../../06_mmr_operation/#creating_primary_nodes) or Section [Adding a Publication Database](../../08_xdb_cli/03_xdb_cli_commands/#add_pub_database) ) or by performing an on demand snapshot (see [Performing Snapshot Replication](../../06_mmr_operation/#perform_snapshot_replication_mmr) or Section [Take a Multi-Master Snapshot](../../08_xdb_cli/03_xdb_cli_commands/#taking_mmr_snapshot)). + +
+ +See [Performing Synchronization Replication](##perform_sync_replication) for additional information on performing synchronization replication for a single-master replication system. See [Performing Synchronization Replication](##perform_sync_replication) for a multi-master replication system. + +Parameters + +`subname` + +> **For SMR only:** The name of the subscription for which synchronization replication is to be performed. + +`pubname` + +> **For MMR only:** The name of the publication for which synchronization replication is to be performed. + +`subsvrfile` + +> **For SMR only:** The file containing the subscription server login information. + +`pubsvrfile` + +> **For MMR only:** The file containing the publication server login information. + +`-repgrouptype` + +> Specify s if this command applies to a single-master replication system. Specify m if this command applies to a multi-master replication system. If omitted, the default is s. + +Examples + +In the following example, synchronization replication is performed on subscription `dept_emp_sub` of a single-master replication system. + +``` text +$ java -jar edb-repcli.jar -dosynchronize dept_emp_sub \ +> -repsvrfile ~/subsvrfile.prop +Performing synchronize... +Synchronize done successfully. +In the following example, synchronization replication is performed on publication emp_pub of a multi-master replication system. Note that the -repgrouptype m parameter is required in this case. +$ java -jar edb-repcli.jar -dosynchronize emp_pub \ +> -repsvrfile ~/pubsvrfile.prop -repgrouptype m +Performing synchronize... +Publication synchronized successfully. +``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/43_configure_smr_schedule.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/43_configure_smr_schedule.mdx new file mode 100644 index 00000000000..849340081e4 --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/43_configure_smr_schedule.mdx @@ -0,0 +1,95 @@ +--- +title: "Configuring a Single-Master Schedule (confschedule)" +--- + + + + +**For SMR only:** The `confschedule` command creates a schedule as to when recurring replications are to be initiated for a single-master replication system. + +Synopsis + +``` text +-confschedule subname –repsvrfile subsvrfile +{ -remove | -jobtype { s | t } + { -realtime no_of_sec | + -daily hour minute | + -weekly day_of_week hour minute | + -monthly month day_of_month hour minute | + -cronexpr "cron_expression" + } +} +``` + +If the remove parameter is specified, then the schedule is deleted from the subscription. No other parameters other than `subname` and `repsvrfile` can be specified in this case. + +If the remove parameter is omitted, then the `jobtype` parameter and one of parameters `realtime, daily, weekly, monthly`, or `cronexpr` must be specified along with the `subname` and `repsvrfile` parameters. If there is an existing schedule for subscription `subname`, it will be replaced by the new schedule. See [Performing Synchronization Replication](../../05_smr_operation/04_on_demand_replication/#perform_sync_replication) for additional information on creating a schedule. + +Parameters + +`subname` + +> The name of the subscription for which a replication schedule is to be created. + +`subsvrfile` + +> The file containing the subscription server login information. + +`-remove` + +> If the remove parameter is specified, then any existing schedule is removed from the subscription. If the remove parameter is not specified, then a schedule is created for the subscription. + +`-jobtype` + +> Specify s if the scheduled replication is to be done by snapshot. Specify t if the scheduled replication is to be done by synchronization. If the associated publication is a snapshot-only publication, then `-jobtype` s must be used. + +`no_of_sec` + +> The number of seconds between scheduled replications. This can be any integer greater than 0. + +`hour` + +> The hour of the day based on a 24-hour clock. This can be any integer from 0 to 23. + +`minute` + +> The minute of the hour. This can be any integer from 0 to 59. + +`day_of_week` + +> The day of the week. This can be any of the following values: `SUN, MON, TUE, WED, THU, FRI`, or `SAT`. This value is case insensitive so Sun and sun will work as well as SUN. + +`month` + +> The month of the year. This can be any of the following values: `JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV,` or `DEC`. This value is case insensitive so Jan and jan will work as well as `JAN`. + +`day_of_month` + +> The day of the month. This can be any integer greater than or equal to 1, and less than or equal to the number of days in month. + +`cron_expression` + +> A cron expression. See appendix Section [Writing a Cron Expression](../../10_appendix/04_miscellaneous_xdb_processing_topics/#writing_cron_exp) for information on writing a cron expression. + +Examples + +In the following example, a schedule is created to perform synchronization replication on subscription `dept_emp_sub` once every 5 minutes. + +``` text +$ java -jar edb-repcli.jar -confschedule dept_emp_sub \ +> -repsvrfile ~/subsvrfile.prop \ +> -jobtype t \ +> -realtime 300 +Configuring scheduler ... +Job is successfully scheduled. +``` + +In the following example, the schedule is removed from subscription `dept_emp_sub.` + +``` text +$ java -jar edb-repcli.jar -confschedule dept_emp_sub \ +> -repsvrfile ~/subsvrfile.prop \ +> -remove +Configuring scheduler ... +Scheduled job is removed. +``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/44_configure_mmr_schedule.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/44_configure_mmr_schedule.mdx new file mode 100644 index 00000000000..8bd0f1112e8 --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/44_configure_mmr_schedule.mdx @@ -0,0 +1,105 @@ +--- +title: "Configuring a Multi-Master Schedule (confschedulemmr)" +--- + + + + +**For MMR only:** The `confschedulemmr` command creates a schedule as to when recurring replications are to be initiated for a multi-master replication system. + +
+ +
+ +Note + +
+ +Be sure an initial snapshot replication has been performed from the primary definition node to every other primary node in the multi-master replication system. If a newly added primary node did not undergo an initial snapshot, any subsequent synchronization replication initiated by a schedule may fail to apply the transactions to that primary node. The initial snapshot could be taken when the primary node is first added (see [Creating Additional Primary nodes](../../06_mmr_operation/#creating_primary_nodes) or Section [Adding a Publication Database](../../08_xdb_cli/03_xdb_cli_commands/#add_pub_database)) or by performing an on demand snapshot (see [Performing Snapshot Replication](../../06_mmr_operation/#perform_snapshot_replication_mmr) or Section [Take a Multi-Master Snapshot](../../08_xdb_cli/03_xdb_cli_commands/#taking_mmr_snapshot)). + +
+ +Synopsis + +``` text +-confschedulemmr pubdbid -pubname pubname + –repsvrfile pubsvrfile +{ -remove | + { -realtime no_of_sec | + -daily hour minute | + -weekly day_of_week hour minute | + -monthly month day_of_month hour minute | + -cronexpr "cron_expression" + } +} +``` + +If the remove parameter is specified, then the schedule is deleted from the publication. No other parameters other than `pubdbid, pubname`, and `repsvrfile` can be specified in this case. + +If the remove parameter is omitted, then one of parameters `realtime, daily, weekly, monthly,` or `cronexpr` must be specified along with the `pubdbid, pubname,` and `repsvrfile` parameters. If there is an existing schedule for publication `pubname`, it will be replaced by the new schedule. + +See [Creating a Schedule](../../07_common_operations/#creating_schedule) for additional information on creating a schedule. + +Parameters + +`pubdbid` + +> The publication database ID of the publication database definition representing the primary definition node on which to configure the schedule. + +`pubname` + +> The name of the publication for which a replication schedule is to be created. + +`pubsvrfile` + +> The file containing the publication server login information. + +`-remove` + +> If the remove parameter is specified, then any existing schedule is removed from the publication. If the remove parameter is not specified, then a schedule is created for the publication. + +`no_of_sec` + +> The number of seconds between scheduled replications. This can be any integer greater than 0. + +`hour` + +> The hour of the day based on a 24-hour clock. This can be any integer from 0 to 23. + +`minute` + +> The minute of the hour. This can be any integer from 0 to 59. + +`day_of_week` + +> The day of the week. This can be any of the following values: SUN, MON, TUE, WED, THU, FRI, or SAT. This value is case insensitive so Sun and sun will work as well as SUN. + +`month` + +> The month of the year. This can be any of the following values: `JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV,` or `DEC`. This value is case insensitive so Jan and jan will work as well as `JAN`. + +`day_of_month` + +> The day of the month. This can be any integer greater than or equal to 1, and less than or equal to the number of days in month. + +`cron_expression` + +> A cron expression. See appendix [Writing a Cron Expression](../../10_appendix/04_miscellaneous_xdb_processing_topics/#writing_cron_exp) for information on writing a cron expression. + +Examples + +In the following example, a schedule is created to perform synchronization replication on publication `emp_pub` subordinate to the primary definition node whose publication database ID is 6. Replication is to occur daily at 8:00 AM. + +``` text +$ java -jar edb-repcli.jar -confscheduleMMR 6 -pubname emp_pub \ +> -repsvrfile ~/pubsvrfile.prop \ +> -daily 8 00 +Configuring scheduler ... +Job is successfully scheduled. +In the following example, the schedule is removed from publication emp_pub. +$ java -jar edb-repcli.jar -confscheduleMMR 6 -pubname emp_pub \ +> -repsvrfile ~/pubsvrfile.prop \ +> -remove +Configuring scheduler ... +Scheduled job is removed. +``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/45_print_schedule.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/45_print_schedule.mdx new file mode 100644 index 00000000000..dbc4214484c --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/45_print_schedule.mdx @@ -0,0 +1,77 @@ +--- +title: "Print Schedule (printschedule)" +--- + + + + +The `printschedule` command prints a recurring replication schedule. + +Synopsis + +``` text +-printschedule { subname | pubname } + -repsvrfile { subsvrfile | pubsvrfile } +[ -repgrouptype { s | m } ] +For a single-master replication system use: +-printschedule subname –repsvrfile subsvrfile +``` + +**For a multi-master replication system use:** + +`-printschedule pubname -repsvrfile pubsvrfile -repgrouptype m` + +Parameters + +`subname` + +> **For SMR only:** The name of the subscription for which the schedule is to be printed. + +`pubname` + +> **For MMR only:** The name of the publication for which the schedule is to be printed. + +`subsvrfile` + +> **For SMR only:** The file containing the subscription server login information. + +`pubsvrfile` + +**For MMR only:** The file containing the publication server login information. + +`-repgrouptype` + +> Specify s if this command applies to a single-master replication system. Specify m if this command applies to a multi-master replication system. If omitted, the default is s. + +Examples + +In the following example the schedule is printed for a subscription in a single-master replication system. + +``` text +$ java -jar edb-repcli.jar -printschedule dept_emp_sub \ +> -repsvrfile ~/subsvrfile.prop +Printing subscription schedule ... + +Job type Synchronize + +Scheduled time 2012-06-19 13:27:20 + +Previous fire time 2012-06-19 13:27:20 + +Next fire time 2012-06-19 13:32:20 +In the following example the schedule is printed for a publication in a multi-master replication system. Note that the -repgrouptype m parameter is required in this case. +$ java -jar edb-repcli.jar -printschedule emp_pub \ +> -repsvrfile ~/pubsvrfile.prop \ +> -repgrouptype m +Printing subscription schedule ... + +Job type Synchronize + +Scheduled time 2012-06-19 13:27:55 + +Previous fire time Not available + +Next fire time 2012-06-20 08:00:00 + +Cron expression 0 0 8 * * ? +``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/46_updating_subscription_cli.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/46_updating_subscription_cli.mdx new file mode 100644 index 00000000000..a0af61eb564 --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/46_updating_subscription_cli.mdx @@ -0,0 +1,75 @@ +--- +title: "Updating a Subscription (updatesub)" +--- + + + + +**For SMR only:** The `updatesub` command allows you to update certain metadata of a given subscription. This metadata allows the subscription server to find the host running the publication server that manages the publication associated with the subscription. + +Synopsis + +``` text +-updatesub subname + -subsvrfile subsvrfile + -pubsvrfile pubsvrfile + -host newpubsvr_ipaddress + -port newpubsvr_port +``` + +The `updatesub` command allows you to update the subscription metadata consisting of the IP address and port number identifying the publication server that is the parent of the publication associated with the subscription. + +This metadata is essential to the proper operation of the replication system since it is the means by which subscription server locates the publication server whenever a replication needs to be performed on a given subscription. The replication process is always carried out by the publication server that manages the publication associated with the subscription. + +You would use the `updatesub` command in the scenario where you have built your replication system using IP addresses that are valid at that point in time. At some later point, the IP address assigned to the host running the publication server has changed. + +You use the host and port parameters of the `updatesub` command to supply the new network address identifying the publication server. + +See [Updating a Subscription](../../05_smr_operation/05_managing_subscription/#updating_subscription) for additional information on updating a subscription. + +Parameters + +`subname` + +> The name of the subscription whose metadata is to be updated. + +`subsvrfile` + +> The file containing the subscription server login information for the subscription server in which subscription `subname` was created. + +`pubsvrfile` + +> The file containing publication server login information for the publication server that manages the publication associated with subscription `subname`. Note that the values that you supply for `newpubsvr_ipaddress` and `newpubsvc_port` must be the same as the values set in fields host and port in file `pubsvrfile`. + +`newpubsvr_ipaddress` + +> The new IP address for the publication server that manages the publication associated with subscription subname. This value must be the same as the IP address specified for field host in file `pubsvrfile`. + +`newpubsvr_port` + +> The new port number for the publication server that manages the publication associated with subscription `subname`. This value must be the same as the port number specified for field port in file `pubsvrfile`. + +Examples + +If the publication server host IP address has been changed to 192.168.2.7, then make sure the publication server login information in file `pubsvrfile.prop` contains the new IP address as shown by the following: + +``` text +host=192.168.2.7 +port=9051 +user=enterprisedb +# Password is in encrypted form. +password=ygJ9AxoJEX854elcVIJPTw== +``` + +To update the metadata for subscription `dept_emp_sub` so that its subscription server can find the new publication server host, run the following command: + +``` text +$ java -jar edb-repcli.jar -updatesub dept_emp_sub \ +> -subsvrfile ~/subsvrfile.prop \ +> -pubsvrfile ~/pubsvrfile.prop \ +> -host 192.168.2.7 \ +> -port 9051 +Updating subscription dept_emp_sub... + +Subscription is updated successfully +``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/47_removing_subscription_cli.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/47_removing_subscription_cli.mdx new file mode 100644 index 00000000000..c72692ba265 --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/47_removing_subscription_cli.mdx @@ -0,0 +1,34 @@ +--- +title: "Removing a Subscription (removesub)" +--- + + + + +**For SMR only:** The `removesub` command removes a subscription. + +Synopsis + +`-removesub subname –repsvrfile subsvrfile` + +See [Removing a Subscription](../../05_smr_operation/05_managing_subscription/#removing_subscription) for additional information on removing a subscription. + +Parameters + +`subname` + +> The name of the subscription to be removed. + +`subsvrfile` + +> The file containing the subscription server login information. + +Examples + +``` text +A subscription named dept_emp_sub is removed. +$ java -jar edb-repcli.jar -removesub dept_emp_sub \ +> -repsvrfile ~/subsvrfile.prop +Removing subscription... +Subscription removed successfully. +``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/48_schedule_shadow_table_history_clean.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/48_schedule_shadow_table_history_clean.mdx new file mode 100644 index 00000000000..85108c6f803 --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/48_schedule_shadow_table_history_clean.mdx @@ -0,0 +1,105 @@ +--- +title: "Scheduling Shadow Table History Cleanup (confcleanupjob)" +--- + + + + +The `confcleanupjob` command creates a schedule as to when shadow table history is to be deleted. + +Synopsis + +``` text +-confcleanupjob pubdbid –repsvrfile pubsvrfile +{ -disable | -enable + { -minutely no_of_minutes | + -hourly no_of_hours | + -daily hour | + -weekly day_of_week hour | + -cronexpr "cron_expression" + } +} +``` + +If the disable parameter is specified, then the schedule is deleted. No other parameters other than `pubdbid` and `pubsvrfile` can be specified in this case. If the disable parameter is omitted, then the enable parameter and one of parameters `minutely, hourly, daily, weekly,` or `cronexpr` must be specified along with the `pubdbid` and `pubsvrfile` parameters. + +See [Scheduling Shadow Table History Cleanup](../../07_common_operations/#schedule_shadow_table_history_cleanup) for additional information on creating a schedule for shadow table history cleanup. + +Parameters + +`pubdbid` + +> Publication database ID of the publication database definition for which a schedule is to be enabled or disabled for deleting shadow table history. + +`pubsvrfile` + +> The file containing the publication server login information. + +`-disable` + +> If the disable parameter is specified, then any existing shadow table history cleanup schedule is removed from the publication database definition. If the disable parameter is not specified, then enable must be specified. + +`-enable` + +> Establish a schedule for shadow table history cleanup. + +`no_of_minutes` + +> The number of minutes between scheduled shadow table history cleanup jobs. This can be any integer between 1 and 59 inclusive. + +`no_of_hours` + +> The number of hours between scheduled shadow table history cleanup jobs. This can be any integer between 1 and 12 inclusive. + +`hour` + +> The hour of the day based on a 24-hour clock. This can be any integer from 0 to 23. + +`day_of_week` + +> The day of the week. This can be any of the following values: `SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY,` or `SATURDAY`. This value is case insensitive so Sunday and sunday will work as well as `SUNDAY`. + +`cron_expression` + +> A cron expression. See appendix [Writing a Cron Expression](../../10_appendix/04_miscellaneous_xdb_processing_topics/#writing_cron_exp) for information on writing a cron expression. + +Examples + +In the following example shadow table history cleanup is scheduled to run once every 3 hours on the shadow tables created within the publication database definition identified by publication database ID 1. + +``` text +$ java -jar edb-repcli.jar -confcleanupjob 1 \ +> -repsvrfile ~/pubsvrfile.prop \ +> -enable -hourly 3 +Configuring cleanup job ... +Cleanup job configured. +``` + +In the following example shadow table history cleanup is scheduled to run once a day at 6:00 PM on the shadow tables created within the publication database definition identified by publication database ID 1. + +``` text +$ java -jar edb-repcli.jar -confcleanupjob 1 \ +> -repsvrfile ~/pubsvrfile.prop \ +> -enable -daily 18 +Configuring cleanup job ... +Cleanup job configured. +``` + +In the following example shadow table history cleanup is scheduled to run every Wednesday at 8:00 AM on the shadow tables created within the publication database definition identified by publication database ID 1. + +``` text +$ java -jar edb-repcli.jar -confcleanupjob 1 \ +> -repsvrfile ~/pubsvrfile.prop \ +> -enable –weekly WEDNESDAY 8 +Configuring cleanup job ... +Cleanup job configured. +``` + +In the following example the shadow table history cleanup job is disabled on the publication database definition identified by publication database ID 1. + +``` text +$ java -jar edb-repcli.jar -confcleanupjob 1 \ +> -repsvrfile ~/pubsvrfile.prop -disable +Configuring cleanup job ... +Cleanup job removed. +``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/49_clean_shadow_table_history.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/49_clean_shadow_table_history.mdx new file mode 100644 index 00000000000..997b6251888 --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/49_clean_shadow_table_history.mdx @@ -0,0 +1,56 @@ +--- +title: "Cleaning Up Shadow Table History (cleanshadowhistforpub)" +--- + + + + +The `cleanshadowhistforpub` command deletes the shadow table history for the specified publication. + +Synopsis + +``` text +-cleanshadowhistforpub pubname + –repsvrfile pubsvrfile +[ -MMRdbid dbid_1[,dbid_2 ] ...] +``` + +See [Cleaning Up Shadow Table History](../../08_xdb_cli/03_xdb_cli_commands/#clean_shadow_table_history) for additional information on cleaning up shadow table history. + +Parameters + +`pubname` + +> The name of the publication for which the shadow table history is to be deleted. + +`pubsvrfile` + +> The file containing the publication server login information. + +`dbid_n` + +> **For MMR only:** The publication database ID of the primary node for which the shadow table history is to be deleted. This parameter is required for a multi-master replication system specifying one or more comma-separated, publication database IDs. + +
+ +
+ +Note + +
+ +There must be no white space between the comma and publication database IDs. + +
+ +Examples + +In the following example shadow table history is deleted for publication `dept_emp`. + +``` text +$ java -jar edb-repcli.jar -cleanshadowhistforpub dept_emp \ +> -repsvrfile ~/pubsvrfile.prop +Removing shadow table's transaction history ... + +Shadow table's transaction history removed successfully. +``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/50_clean_replication_history.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/50_clean_replication_history.mdx new file mode 100644 index 00000000000..279c35bd935 --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/50_clean_replication_history.mdx @@ -0,0 +1,36 @@ +--- +title: "Cleaning Up Replication History (cleanrephistoryforpub)" +--- + + + + +The `cleanrephistoryforpub` command deletes the replication history for the specified publication. + +Synopsis + +`-cleanrephistoryforpub pubname –repsvrfile pubsvrfile` + +See [Cleaning Up Replication History](../../07_common_operations/#clean_up_replication_history) for additional information on cleaning up replication history. + +Parameters + +`pubname` + +> The name of the publication for which replication history is to be deleted. + +`pubsvrfile` + +> The file containing the publication server login information. + +Examples + +In the following example replication history is deleted for publication `dept_emp.` + +``` text +$ java -jar edb-repcli.jar -cleanrephistoryforpub dept_emp \ +> -repsvrfile ~/pubsvrfile.prop +Removing publication's replication history ... + +Replication history has been removed. +``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/51_clean_all_replication_history.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/51_clean_all_replication_history.mdx new file mode 100644 index 00000000000..217d5503422 --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/51_clean_all_replication_history.mdx @@ -0,0 +1,31 @@ +--- +title: "Cleaning Up All Replication History (cleanrephistory)" +--- + + + + +The `cleanrephistory` command deletes the replication history for all publications in the specified publication server. + +Synopsis + +`-cleanrephistory –repsvrfile pubsvrfile` + +See [Cleaning Up Replication History](../../08_xdb_cli/03_xdb_cli_commands/#clean_replication_history) for additional information on cleaning up replication history. + +Parameters + +`pubsvrfile` + +> The file containing the publication server login information. + +Examples + +In the following example, replication history is deleted for all publications in the publication server identified by the content of file `pubsvrfile.prop`. + +``` text +$ java -jar edb-repcli.jar -cleanrephistory -repsvrfile ~/pubsvrfile.prop +Removing all publication's replication history ... +``` + +Replication history has been removed. diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/index.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/index.mdx new file mode 100644 index 00000000000..84212ed784e --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/index.mdx @@ -0,0 +1,40 @@ +--- +title: "xDB Replication Server CLI Commands" +--- + + + + +This section provides a description, syntax diagram, and examples of each xDB Replication Server CLI command. + +Commands are presented in the order in which they will typically be used, following the order in which xDB Replication Console operations are performed. + +
+ +
+ +Note + +
+ +Though most commands described in this section apply to both single-master and multi-master replication systems, those commands that apply only to single-master replication systems are noted with For SMR only. Those commands that apply only to multi-master replication systems are noted with For MMR only. The same notation is used for command parameters that may apply only to single-master replication systems or multi-master replication systems. + +
+ +For the examples used in this section, it is assumed that the xDB Replication Server CLI commands are executed after you have made `XDB_HOME/bin` your current working directory, thereby eliminating the need to specify the full path of `XDB_HOME/bin` for each execution of the `edb-repcli.jar` file. For example, assuming xDB Replication Server is installed in the default installation directory you have issued the following command in Linux: + +`cd /opt/PostgreSQL/EnterpriseDB-xDBReplicationServer/bin` + +In Windows, the equivalent is the following: + +`cd C:\Program Files\PostgreSQL\EnterpriseDB-xDBReplicationServer\bin` + +Whenever the `repsvrfile` parameter appears in the examples, `file ~/pubsvrfile` contains the publication server login information and is located in the user’s home directory while `~/subsvrfile` contains the subscription server login information. For Windows, the equivalent usage is `%HOMEPATH%\pubsvrfile and %HOMEPATH%\subsvrfile.` + +The examples in this section were run on Linux so you will see use of the Linux continuation character, which is a backslash (), to show how an xDB Replication Server CLI command can be continued onto the next line if you do not want to wrap the text in your terminal window. For Windows, use the Windows continuation character, which is a caret (`^`). + +
+ +get\_help print\_version print\_xdb\_server\_version encrypt\_password printing\_server\_uptime add\_pub\_database printing\_pub\_db\_id printing\_pub\_db\_details printing\_controller\_db\_id printing\_pdn\_node\_db\_id updating\_publication\_database removing\_publication\_database get\_tables\_for\_new\_publication creating\_publication\_cli print\_publications\_list print\_publications\_tables\_list print\_publications\_filters\_list adding\_tables\_to\_publication removing\_tables\_from\_publication adding\_tablefilters\_to\_publication updating\_tablefilters\_to\_publication removing\_tablefilters\_to\_publication print\_conflict\_resolution\_strategy updating\_conflict\_resolution\_strategy set\_pdn\_node set\_controller validate\_a\_publication validate\_all\_publications removing\_a\_publication replicating\_ddl\_changes\_cli adding\_subscription\_db printing\_subscription\_db\_id printing\_subscription\_db\_details updating\_subscription\_database\_cli removing\_subscription\_database\_cli creating\_subscription\_cli print\_subscription\_list enable\_filters\_on\_subscription\_or\_non\_pdn\_node disable\_filters\_on\_subscription\_or\_non\_pdn\_node taking\_smr\_snapshot taking\_mmr\_snapshot perform\_synchronization configure\_smr\_schedule configure\_mmr\_schedule print\_schedule updating\_subscription\_cli removing\_subscription\_cli schedule\_shadow\_table\_history\_clean clean\_shadow\_table\_history clean\_replication\_history clean\_all\_replication\_history + +
diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/index.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/index.mdx new file mode 100644 index 00000000000..bc7e9842079 --- /dev/null +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/index.mdx @@ -0,0 +1,20 @@ +--- +title: "xDB Replication Server Command Line Interface" +--- + + + + +This chapter discusses the syntax and usage of the xDB Replication Server Command Line Interface (CLI). This utility program is a command line driven alternative to the xDB Replication Console. + +The steps for creating a replication system using the xDB Replication Server CLI are no different than those required when using the xDB Replication Console. The logical components of the replication system must be created in the same order, with the same sets of attributes as when creating the replication system with the xDB Replication Console. + +You should understand the concepts and steps presented in chapters [overview](02_overview/#overview), and [Single-Master Replication Operation](05_smr_operation/#smr_operation) (for single-master replication) or [Multi-Master Replication Operation](06_mmr_operation/#mmr_operation) (for multi-master replication) before building a replication system using the xDB Replication Server CLI. There are no restrictions on using both the xDB Replication Console and the xDB Replication Server CLI to build and manage the same replication system. + +In Section [xDB Replication Server CLI Commands](08_xdb_cli/03_xdb_cli_commands/#xdb_cli_commands), the syntax and examples are given for each xDB Replication Server CLI command run individually. Where applicable, the discussion of a command contains a reference back to its xDB Replication Console counterpart where a detailed description of the affected component and its attributes can be found. + +
+ +prereq\_steps general\_use xdb\_cli\_commands + +
diff --git a/product_docs/docs/eprs/6.2/09_data_validator/01_installation_and_configuratiin_datavalidator.mdx b/product_docs/docs/eprs/6.2/09_data_validator/01_installation_and_configuratiin_datavalidator.mdx new file mode 100644 index 00000000000..841f4aa920d --- /dev/null +++ b/product_docs/docs/eprs/6.2/09_data_validator/01_installation_and_configuratiin_datavalidator.mdx @@ -0,0 +1,122 @@ +--- +title: "Installation and Configuration" +--- + + + + +**Step 1:** When you install the xDB Replication Server product, the components for the Data Validator are installed as well. See Chapter [Installation and Uninstallation](../03_installation/#installation) for information on installing the xDB Replication Server product. + +Also, when you uninstall the xDB Replication Server product, the Data Validator components are uninstalled as well. + +The following components that you use to run the Data Validator are installed when you install the xDB Replication Server product. + +
Data Validator Files
File Name

Location

Description

datavalidator.propertiesXDB_HOME/etcData Validator Properties file
runValidation.sh (Linux)XDB_HOME/binData Validator execution script
runValidation.bat (Windows)XDB_HOME\binData Validator execution script
+ +**Data Validator Files** + +
+ +
+ +Note + +
+ +`XDB_HOME` is the directory where xDB Replication Server is installed. This may or may not be the same as the Postgres home directory depending upon how xDB Replication Server is installed. + +
+ +**Step 2:** If you plan to use an Oracle database as the source or target database, download the Oracle JDBC driver and place it in the `JAVA_HOME/jre/lib/ext` directory. + +**Step 3:** Edit the `datavalidator.properties` file located in the `XDB_HOME/etc` directory and specify the connection information for the source and target databases you want to compare. + +Any of these parameters can be overridden by an option when you invoke the Data Validator script. See [Performing Data Validation](../09_data_validator/#perform_datavalidation) for additional information on invoking the Data Validator. + +The following are the parameters in the `datavalidator.properties file`. + +| | | +|------------------|-----------------------------------------------------------------------------------------------| +| **Parameter** | **Description** | +| source\_dbms | Type of the source database. Values may be enterprisedb, oracle, sqlserver, sybase, or mysql. | +| source\_host | IP address or server name of the host running the database server of the source database | +| source\_port | Port number on which the database server of the source database listens for requests | +| source\_database | Database name of the source database | +| source\_user | Database user name of the source database | +| source\_password | Unencrypted password of the source database user | +| target\_dbms | Type of the target database. Values may be enterprisedb or oracle. | +| target\_host | IP address or server name of the host running the database server of the target database | +| target\_port | Port number on which the database server of the target database listens for requests | +| target\_database | Database name of the target database | +| target\_user | Database user name of the target database | +| target\_password | Unencrypted password of the target database user | + +**Data Validator Properties File Parameters** + +The following is the initial content of the `datavalidator.properties` file after installation: + +``` text +############################################################### + Source database connection +############################################################### + +#source_dbms=(enterprisedb | oracle | sqlserver | sybase | mysql) + +source_dbms=oracle +source_host=localhost +source_port=1521 +source_database=xe +source_user=hr +source_password=hr + + +#source_dbms=mysql +#source_host=localhost +#source_port=3306 +#source_database=test +#source_user=root +#source_password= + +#source_dbms=sqlserver +#source_host=localhost +#source_port=1433 +#source_database=pubs +#source_user=sa +#source_password= + +#source_dbms=sybase +#source_host=localhost +#source_port=5004 +#source_database=test +#source_user=sa +#source_password= + +############################################################### + Target database connection +############################################################### + +#target_dbms=(enterprisedb | oracle) + +target_dbms=enterprisedb +target_host=localhost +target_port=5444 +target_database=edb +target_user=enterprisedb +target_password=edb +``` + +**Step 4:** Determine the location for the Data Validator logs directory. Before invoking the Data Validator for the first time, be sure you have determined where the Data Validator logs directory is to be located. + +The Data Validator generates a log file with a name formatted as `datavalidator_yymmdd-hhmiss.log` in the logs directory for each run. + +If there are row differences between the source and target tables, a file with a name formatted as `datavalidator_yymmdd-hhmiss.diff` is also generated that contains output of the errors in diff format. Use a graphical diff tool like Kompare to view this file to highlight the specific differences. + +The Data Validator attempts to create a subdirectory named logs within the `XDB_HOME/bin` directory the first time you invoke the Data Validator without the `-ld` option. If you do not invoke the Data Validator as the root account, it is likely that the run will fail as it attempts to create subdirectory logs in the `XDB_HOME/bin` directory where typically only the root account has this privilege. + +The same situation also exists on Windows hosts as the account you are using must have the permission to create a subdirectory in the `XDB_HOME\bin` location. Choices for determining and setting the Data Validator directory for the log and diff files are the following: + +- Run the Data Validator as the root account. This enables the Data Validator to create the logs subdirectory within the XDB\_HOME/bin directory, and then to create the log and diff files in the logs subdirectory. +- Create the `XDB_HOME/bin/logs` directory structure before running the Data Validator. Modify the permissions on directory `XDB_HOME/bin/logs` so the operating system account you use to run the Data Validator has the privilege to create files in the directory. +- Use the `-ld` log\_directory\_path option to allow the Data Validator to create the log and diff files in the specified directory location log\_directory\_path. Be sure the operating system account you use to run the Data Validator has the proper privileges to either create the lowest level subdirectory specified by log\_directory\_path if it does not already exist, or to create files within the specified directory if the full directory path already does exist. + +Once you have determined and verified that your operating system account you plan to use to run the Data Validator can create files in the log directory, you can proceed with performing data validation. diff --git a/product_docs/docs/eprs/6.2/09_data_validator/02_perform_datavalidation.mdx b/product_docs/docs/eprs/6.2/09_data_validator/02_perform_datavalidation.mdx new file mode 100644 index 00000000000..55e5edfdeee --- /dev/null +++ b/product_docs/docs/eprs/6.2/09_data_validator/02_perform_datavalidation.mdx @@ -0,0 +1,545 @@ +--- +title: "Performing Data Validation" +--- + + + + +The current working directory from which you invoke the Data Validator script `runValidation.sh` (`runValidation.bat` for Windows) must be the bin subdirectory containing the script (that is, `XDB_HOME/bin`). + +For example, if the xDB Replication Server is installed into its default directory location, then issue the following command before invoking the Data Validator: + +`cd /opt/PostgreSQL/EnterpriseDB-xDBReplicationServer/bin` + +Similarly for Windows hosts, issue the following: + +`cd C:\Program Files\PostgreSQL\EnterpriseDB-xDBReplicationServer\bin` + +The general command format for invoking the Data Validator is the following: + +``` text +./runValidation.sh { –ss | --source-schema } schema_name + [ option ] ... +``` + +`schema_name` is the name of the schema in the source database containing the tables to be validated. The choices for option are listed later in this section within the Options subsection. + +For Windows hosts, the command format is the following: + +``` text +runValidation { –ss | --source-schema } schema_name + [ option ] ... +``` + +The following option displays the Data Validator version: + +``` text +./runValidation.sh { –v | --version } +On Linux the version is displayed as follows: +$ ./runValidation.sh --version +EnterpriseDB DataValidator Build 3 +On Windows the version is displayed as follows: +C:\Program Files\PostgreSQL\EnterpriseDB-xDBReplicationServer\bin>runValidation -v +EnterpriseDB DataValidator Build 3 +The following option displays the help information. +./runValidation.sh { –h | --help } +This is shown by the following: +$ ./runValidation.sh --help +Usage: + runValidation.sh (-v | --version) | (-h | --help) + runValidation.sh (-ss | --source-schema) SOURCE_SCHEMA [OPTIONS] CONNECTION_INFO_FILE + +OPTIONS: + + (-ts | --target-schema) target-schema-name + (-it | --include-tables) comma-seperated-tables-name + (-et | --exclude-tables) comma-seperated-tables-name + + (-ld | --logging-dir) logging-dir-path + (-ds | --display-summary) (true|false) + (-srs | --skip-rowsonlyin-source) (true|false) + (-srt | --skip-rowsonlyin-target) (true|false) + (-srb | --skip-rowsin-both) (true|false) + (-fs | --fetch-size) row count + (-bs | --batch-size) row count + + (-sdbms | --source-dbms) source database type + (-sh | --source-host) source database server name/IP + (-sp | --source-port) source database server port + (-sdb | --source-database) source database name + (-su | --source-user) source database user id + (-spw | --source-password) source database user password + (-tdbms | --target-dbms) target database type + (-th | --target-host) target database server name/IP + (-tp | --target-port) target database server port + (-tdb | --target-database) target database name + (-tu | --target-user) target database user id + (-tpw | --target-password) target database user password +``` + +The general syntax for all options except for --version and --help is shown by the following: + +``` text +./runValidation.sh –ss schema + [ -ts schema ] + [ -it table_1 [,table_2 ] ... ] + [ -et table_1 [,table_2 ] ... ] + [ -srs { true | false } ] + [ -srt { true | false } ] + [ -srb { true | false } ] + [ -ld log_directory_path ] + [ -ds { true | false } ] + [ -sdbms database_type ] + [ -sh host ] + [ -sp port ] + [ -sdb dbname ] + [ -su user ] + [ -spw password ] + [ -tdbms database_type ] + [ -th host ] + [ -tp port ] + [ -tdb dbname ] + [ -tu user ] + [ -tpw password ] + [ -bs row_count ] + [ -fs row_count ] +``` + +For clarity, the preceding syntax diagram shows only the single-character form of the option. The Options subsection lists both the single-character and multi-character forms of the options. + +Specification of any database connection option (-sdbms through -tpw listed in the preceding syntax diagram) overrides the corresponding parameter in the `datavalidator.properties` file. [Installation and Configuration](../09_data_validator/#installation_and_configuratiin_datavalidator) for information on the `datavalidator.properties` file. + +Options + +`-ss, --source-schema schema` + +> The schema of the source database containing the tables to be compared against the target database. + +`-ts, --target-schema schema` + +> The schema of the target database containing the tables to be compared against the source database. If omitted, the schema of the target database is the same schema as specified for the source database with the -ss option. + +`-it, --include-tables table_1 [,table_2 ] ...` + +> The tables within the source schema that are to be included for comparison. If omitted, all tables within the source schema are compared against tables in the target schema with the exception of those tables excluded from comparison using the -et option. Note: There must be no white space between the comma and table names. + +`-et, --exclude-tables table_1 [,table_2 ] ...` + +> The tables within the source schema that are to be excluded from comparison. If omitted, only those tables specified with the -it option are included for comparison. If both the -it and -et options are omitted, all source schema tables are included for comparison. Note: There must be no white space between the comma and table names. + +`-srs, --skip-rowsonlyin-source { true | false }` + +> When true is specified, the logging of differences for rows that exist only in the source database table are skipped. The default is false. + +`-srt, --skip-rowsonlyin-target { true | false }` + +> When true is specified, the logging of differences for rows that exist only in the target database table are skipped. The default is false. + +`-srb, --skip-rowsin-both { true | false }` + +> When true is specified, the logging of differences for rows that exist both in the source and target database tables with the same primary key, but with different non-primary key values are skipped. The default is false. + +`-ld, --logging-dir log_directory_path` + +> Directory path to where the Data Validator log and diff files are to be created and stored. If log\_directory\_path does not exist, Data Validator attempts to create it. If a full directory path is not specified log\_directory\_path is created or assumed to be located relative to the XDB\_HOME/bin subdirectory where the runValidation.sh script is invoked. (That is, the logs directory is XDB\_HOME/bin/log\_directory\_path.) Be sure the operating system account used to invoke the runValidation.sh script has the privileges to create the directory if it does not already exist, or to create files in the specified directory if it does already exist. If omitted, the default is the XDB\_HOME/bin/logs directory. + +`-ds, --display-summary { true | false }` + +> Specify true to display only the Data Validator summary. This omits the source and target database connection information as well as the detailed breakdown of the results by source database table. Specify false to display all of the Data Validator results. The type and amount of information that is displayed at the command line console when the Data Validator is invoked is the same information that is also stored in the log file for that run. If omitted, the default is false (that is, all of the Data Validator results is displayed). + +`-sdbms, --source-dbms database_type` + +> The type of the source database server. Supported types are oracle, enterprisedb, sqlserver, sybase, and mysql. + +`-sh, --source-host host` + +> The IP address or server name of the host on which the source database server is running. + +`-sp, --source-port port` + +> The port number on which the source database server is listening for connections. + +`-sdb, --source-database dbname` + +> The database name of the source database. + +`-su, --source-user user` + +> The database user name for connecting to the source database. + +`-spw, --source-password password` + +> The password of the source database user in unencrypted form. + +`-tdbms, --target-dbms database_type` + +> The type of the target database server. Supported types are enterprisedb and oracle. + +`-th, --target-host host` + +> The IP address or server name of the host on which the target database server is running. + +`-tp, --target-port port` + +> The port number on which the target database server is listening for connections. + +`-tdb, --target-database dbname` + +> The database name of the target database. + +`-tu, --target-user user` + +> The database user name for connecting to the target database. + +`-tpw, --target-password password` + +> The password of the target database user in unencrypted form. + +`-bs, --batch-size row_count` + +> The -bs option specifies the number of rows to group in a batch to be used for comparison across the source and target database tables. For example, if a table contains 1000 rows, then a `-bs` setting of 100 requires 10 batch iterations to complete the comparison across the source and target databases. The Data Validator reads 100 rows, both from the source and target tables, and adds them in source and target buffers. The validation thread then reads the 100 rows from the source and target buffers and performs the comparison. It will then move to read and prepare the next 100 rows for comparison and so on. Note that the actual database round trips required to bring in 100 rows from the database depends on the `-fs` option for the fetch size. For example, an `-fs` setting of 100 needs just one round trip whereas an `-fs` setting of 10 requires 10 database round trips. + +`-fs, --fetch-size row_count` + +> Performing data validation for tables that are quite large in size may cause the Data Validator to terminate with an out of heap space error when using the default fetch size of 5000 rows. Use the `-fs` option to specify a smaller fetch size to help avoid the out of heap space issue. The result set iteration will bring in as many rows as represented by the row\_count value in a single database round trip. + +Examples + +The following examples use an Oracle source database and an Advanced Server target database to compare the tables in schema EDB on Oracle against the tables in schema public in Advanced Server. + +The following lists the tables in schema EDB along with the content of tables DEPT and EMP in the Oracle source database: + +``` text +SQL> SELECT table_name FROM user_tables; + +TABLE_NAME +------------------------------ +ORATAB +DEPT +EMP +JOBHIST + +SQL> SELECT * FROM dept; + + DEPTNO DNAME LOC +---------- -------------- ------------- + 10 ACCOUNTING NEW YORK + 20 RESEARCH DALLAS + 30 SALES CHICAGO + 40 OPERATIONS BOSTON + 50 FINANCE CHICAGO + +SQL> SELECT * FROM emp; + + EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO +---------- ---------- --------- ---------- --------- ---------- ---------- ---------- + 7369 SMITH CLERK 7902 17-DEC-80 800 20 + 7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30 + 7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30 + 7566 JONES MANAGER 7839 02-APR-81 2975 20 + 7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30 + 7698 BLAKE MANAGER 7839 01-MAY-81 2850 30 + 7782 CLARK MANAGER 7839 09-JUN-81 2450 10 + 7788 SCOTT ANALYST 7566 19-APR-87 3000 20 + 7839 KING PRESIDENT 17-NOV-81 5000 10 + 7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30 + 7876 ADAMS CLERK 7788 23-MAY-87 1100 20 + 7900 JAMES CLERK 7698 03-DEC-81 950 30 + 7902 FORD ANALYST 7566 03-DEC-81 3000 20 + 7934 MILLER CLERK 7782 23-JAN-82 1300 10 + 9001 SMITH ANALYST 7566 8500 20 + 9002 ROGERS SALESMAN 7698 8000 4000 30 + +16 rows selected. +``` + +The following lists the tables in schema public along with the content of tables `dept` and `emp` in the Advanced Server `edb` database: + +``` text +edb=# \dt + List of relations + Schema | Name | Type | Owner +--------+---------+-------+-------------- + public | dept | table | enterprisedb + public | emp | table | enterprisedb + public | jobhist | table | enterprisedb +(3 rows) + +edb=# SELECT * FROM dept; + deptno | dname | loc +--------+------------+---------- + 10 | ACCOUNTING | NEW YORK + 20 | RESEARCH | DALLAS + 30 | SALES | CHICAGO + 40 | OPERATIONS | BOSTON +(4 rows) + +edb=# SELECT * FROM emp; + empno | ename | job | mgr | hiredate | sal | comm | deptno +-------+--------+-----------+------+--------------------+---------+---------+-------- + 7369 | SMITH | CLERK | 7902 | 17-DEC-80 00:00:00 | 800.00 | | 20 + 7499 | ALLEN | SALESMAN | 7698 | 20-FEB-81 00:00:00 | 1600.00 | 300.00 | 30 + 7521 | WARD | SALESMAN | 7698 | 22-FEB-81 00:00:00 | 1250.00 | 500.00 | 30 + 7566 | JONES | MANAGER | 7839 | 02-APR-81 00:00:00 | 2975.00 | | 20 + 7654 | MARTIN | SALESMAN | 7698 | 28-SEP-81 00:00:00 | 1250.00 | 1400.00 | 30 + 7698 | BLAKE | MANAGER | 7839 | 01-MAY-81 00:00:00 | 2850.00 | | 30 + 7782 | CLARK | MANAGER | 7839 | 09-JUN-81 00:00:00 | 2450.00 | | 10 + 7788 | SCOTT | ANALYST | 7566 | 19-APR-87 00:00:00 | 3000.00 | | 20 + 7839 | KING | PRESIDENT | | 17-NOV-81 00:00:00 | 5000.00 | | 10 + 7844 | TURNER | SALESMAN | 7698 | 08-SEP-81 00:00:00 | 1500.00 | 0.00 | 30 + 7876 | ADAMS | CLERK | 7788 | 23-MAY-87 00:00:00 | 1100.00 | | 20 + 7900 | JAMES | CLERK | 7698 | 03-DEC-81 00:00:00 | 950.00 | | 30 + 7902 | FORD | ANALYST | 7566 | 03-DEC-81 00:00:00 | 3000.00 | | 20 + 7934 | MILLER | CLERK | 7782 | 23-JAN-82 00:00:00 | 1300.00 | | 10 + 9001 | SMITH | SALESMAN | 7698 | | 8000.00 | 4000.00 | 30 + 9002 | ROGERS | SALESMAN | 7698 | | 9500.00 | 4000.00 | 30 +(16 rows) +``` + +Note the following differences: + +- The Oracle `EDB` schema contains one additional table named `ORATAB` that does not exist in the Advanced Server public schema. +- The Oracle `DEPT` table contains one extra row with `DEPTNO 50` that does not exist in the Advanced Server dept table. +- The rows in the `EMP` table with `EMPNO` values 9001 and 9002 have column values that differ between the Oracle and Advanced Server tables +- In this example, the `JOBHIST` table contains identical rows for both the Oracle and Advanced Server tables. + +The content of the `datavalidator.properties` file is set as follows: + +``` text +############################################################### + Source database connection +############################################################### + +#source_dbms=(enterprisedb | oracle | sqlserver | sybase | mysql) + +source_dbms=oracle +source_host=192.168.2.23 +source_port=1521 +source_database=xe +source_user=edb +source_password=password + +############################################################### + Target database connection +############################################################### + +#target_dbms=(enterprisedb | oracle) + +target_dbms=enterprisedb +target_host=localhost +target_port=5444 +target_database=edb +target_user=enterprisedb +target_password=password +``` + +The following example compares all tables in the Oracle EDB schema against the Advanced Server public schema. + +The Data Validator log files are created in directory `/home/user/datavalidator_logs` as specified with the `-ld` option. The operating system account used to invoke the `runValidation.sh` script has write access to the `/home/user` directory so the Data Validator can create the `datavalidator_logs` subdirectory. + +``` text +$ cd /opt/PostgreSQL/EnterpriseDB-xDBReplicationServer/bin +$ pwd +/opt/PostgreSQL/EnterpriseDB-xDBReplicationServer/bin +$ ./runValidation.sh -ss edb -ts public -ld /home/user/datavalidator_logs + +EnterpriseDB DataValidator Build 3 +---------------------------------------------------------------------------- +Source and target databases connection information +---------------------------------------------------------------------------- + +Source database: + + DBMS: ORACLE + Host: 192.168.2.23 + Port: 1521 + Database: xe + User: edb + +Target database: + + DBMS: ENTERPRISEDB + Host: localhost + Port: 5444 + Database: edb + User: enterprisedb + +---------------------------------------------------------------------------- +Databases data validation process started... +---------------------------------------------------------------------------- + +Validating Table DEPT + Rows validated: 5 + Finished validating table DEPT with 1 errors. + Logging errors details in the diff file... + +Validating Table EMP + Rows validated: 16 + Finished validating table EMP with 2 errors. + Logging errors details in the diff file... + +Validating Table JOBHIST + Rows validated: 17 + Finished validating table JOBHIST with 0 errors. + +Validating Table ORATAB + Table not validated as it does not exist on the target database. + + +DataValidator found 3 errors across source and target databases. +For detailed error report see datavalidator_20150713-144417.diff file. + +---------------------------------------------------------------------------- +Data validation process has completed. +---------------------------------------------------------------------------- + +*************************************************************** + DataValidator Summary +*************************************************************** + + All tables count: 4 + + Validated tables count: 3 + Rows count: 38 + Errors count: 3 + + Missing tables on the target database count: 1 + Tables list: + - EDB.ORATAB + + Tables having only unsupported datatypes count: 0 + + Tables having primary key limitation count: 0 + + Total time(s): 0.678 + Rows per second: 56 + +*************************************************************** +``` + +The Data Validator output indicates the following: + +- There is one error in the `DEPT` table (the missing row). +- There are two errors in the `EMP` table (the two rows with mismatching column values) +- The `JOBHIST` table contains no errors. +- The `ORATAB` table does not exist on the target database. + +The following shows the files created in the Data Validator logs directory: + +``` text +$ pwd +/home/user/datavalidator_logs +$ ls -l +total 24 +-rw-rw-r-- 1 user user 18999 Aug 13 15:44 datavalidator_20150713-144417.diff +-rw-rw-r-- 1 user user 2133 Aug 13 15:44 datavalidator_20150713-144417.log +``` + +The log file contains the same content as displayed when the Data Validator is invoked. The diff file compares the differences where errors were detected. + +The following is the diff file as displayed in a text editor: + +![Data Validator diff file](/../images/image291.png) + +The following example includes only tables `dept` and `emp` with the `-it` option when comparing the Oracle EDB schema against the Advanced Server public schema. + +``` text +$ cd /opt/PostgreSQL/EnterpriseDB-xDBReplicationServer/bin +$ pwd +/opt/PostgreSQL/EnterpriseDB-xDBReplicationServer/bin +$ ./runValidation.sh -ss edb -ts public -ld /home/user/datavalidator_logs -it dept,emp + +EnterpriseDB DataValidator Build 3 +---------------------------------------------------------------------------- +Source and target databases connection information +---------------------------------------------------------------------------- + +Source database: + + DBMS: ORACLE + Host: 192.168.2.23 + Port: 1521 + Database: xe + User: edb + +Target database: + + DBMS: ENTERPRISEDB + Host: localhost + Port: 5444 + Database: edb + User: enterprisedb + +---------------------------------------------------------------------------- +Databases data validation process started... +---------------------------------------------------------------------------- + +Validating Table DEPT + Rows validated: 5 + Finished validating table DEPT with 1 errors. + Logging errors details in the diff file... + +Validating Table EMP + Rows validated: 16 + Finished validating table EMP with 2 errors. + Logging errors details in the diff file... + + +DataValidator found 3 errors across source and target databases. +For detailed error report see ``datavalidator_20150714-123353.diff`` file. + +---------------------------------------------------------------------------- +Data validation process has completed. +---------------------------------------------------------------------------- + +*************************************************************** + DataValidator Summary +*************************************************************** + + All tables count: 2 + + Validated tables count: 2 + Rows count: 21 + Errors count: 3 + + Missing tables on the target database count: 0 + + Tables having only unsupported datatypes count: 0 + + Tables having primary key limitation count: 0 + + Total time(s): 0.539 + Rows per second: 39 + +*************************************************************** +``` + +The following example excludes tables `ORATAB` and `jobhist` with the `-et` option when comparing the Oracle EDB schema against the Advanced Server public schema. The `-ds` true option results in the display of only the Data Validator summary. + +``` text +$ ./runValidation.sh -ss edb -ts public -ld /home/user/datavalidator_logs -et ORATAB,jobhist -ds true +Databases data validation process started... + +*************************************************************** + DataValidator Summary +*************************************************************** + + All tables count: 2 + + Validated tables count: 2 + Rows count: 21 + Errors count: 3 + + Missing tables on the target database count: 0 + + Tables having only unsupported datatypes count: 0 + + Tables having primary key limitation count: 0 + + Total time(s): 0.535 + Rows per second: 39 + +*************************************************************** +``` + +For this run, the corresponding log file contains only the Data Validator summary, omitting the source and target database connection information along with the error breakdown by table. diff --git a/product_docs/docs/eprs/6.2/09_data_validator/index.mdx b/product_docs/docs/eprs/6.2/09_data_validator/index.mdx new file mode 100644 index 00000000000..c798cb36923 --- /dev/null +++ b/product_docs/docs/eprs/6.2/09_data_validator/index.mdx @@ -0,0 +1,53 @@ +--- +title: "Data Validator" +--- + + + + +The Data Validator is a utility that compares the rows of one or more tables within a schema of a database against the rows of the tables with the same names within a schema of another database. The Data Validator generates a summary of the comparison noting the number of rows whose column values differ. A file containing detailed information regarding any differences is also generated. + +The two databases being compared are referred to as the source database and the target database. The source database can be of type Oracle, EnterpriseDB, SQL Server, Sybase, or MySQL. The target database must be either Oracle or EnterpriseDB. + +An EnterpriseDB database type means either an Advanced Server database or a PostgreSQL database. + +The tables available for comparison are those found in the schema of the source database. Tables in the target database that do not exist in the source database schema are ignored. + +
+ +
+ +Note + +
+ +The Data Validator does not validate columns having the following data types. Tables containing one or more columns of these types will only be partially validated. + +
+ +- `BFILE` +- `STRUCT` +- `REF` +- `ARRAY` +- `BLOB` +- `CLOB` +- `RAW` +- `LONG RAW` + +
+ +
+ +Note + +
+ +Regarding the usage of the Data Validator with tables in an xDB Replication Server single-master or multi-master replication system, be sure all synchronization replication between the source and target xDB Replication Server tables has been completed before using the Data Validator. If synchronization replication is still in progress, it is probable that the Data Validator will report differences in table content. + +
+ +
+ +installation\_and\_configuratiin\_datavalidator perform\_datavalidation + +
diff --git a/product_docs/docs/eprs/6.2/10_appendix/01_permitted_conf_and_permutations.mdx b/product_docs/docs/eprs/6.2/10_appendix/01_permitted_conf_and_permutations.mdx new file mode 100644 index 00000000000..037ad91cbfd --- /dev/null +++ b/product_docs/docs/eprs/6.2/10_appendix/01_permitted_conf_and_permutations.mdx @@ -0,0 +1,78 @@ +--- +title: "Permitted Configurations and Combinations" +--- + + + + +Depending upon the database products you are using with xDB Replication Server (Oracle, SQL Server, PostgreSQL, or Advanced Server) along with the compatibility configuration mode if you are using Advanced Server, certain combinations of a source database server and a target database server are not permitted for a publication and its associated subscription in a single-master replication system. + +Similarly, only certain combinations of database products and Advanced Server compatibility configuration modes can be used together in a multi-master replication system. + +For a single-master replication system, the source refers to the database server of the publication database. The target refers to the database server of the subscription database. + +For a multi-master replication system, all of the participating database servers act as both a source and a target for all other participating database servers, so the restrictions pertain to the combinations of database servers and compatibility configuration modes that can be used together in the same multi-master replication system. + +This section presents the specific combinations of database server configurations that can be used for a publication and its associated subscription in a single-master replication system, and the combinations of database server configurations that can be used in a multi-master replication system. + + + +## Advanced Server Compatibility Configuration Modes + +Advanced Server supports two compatibility configuration modes of operation, which are the following: + +- Oracle compatible configuration mode. Operations are performed using Oracle syntax and semantics for data types, functions, database object creation, and so forth. This mode is useful when your applications are migrated from Oracle, or you want your applications built in an Oracle compatible fashion. +- PostgreSQL compatible configuration mode. Operations are performed using native PostgreSQL syntax and semantics. This mode is useful when your applications are migrated from PostgreSQL, or you want your applications built in a PostgreSQL compatible fashion. + +For more information on features supported in Oracle compatible configuration mode, see the *Database Compatibility for Oracle Developer’s Guide* located at: + +> + +The compatibility configuration mode is selected at the time you install Advanced Server. + + + +## Permitted SMR Source and Target Configurations + +The following table shows the combinations of source and target database server products and Advanced Server compatibility configuration modes permitted by xDB Replication Server for single-master replication systems: + +| | | | | | | +|---------------------------------------------|--------|----------------------|------------|-------------------------------------|-----------------------------------------| +| Source \\ Target | Oracle | Microsoft SQL Server | PostgreSQL | Advanced Server (Oracle compatible) | Advanced Server (PostgreSQL compatible) | +| **Oracle** | No | No | Yes | Yes | Yes | +| **Microsoft SQL Server** | No | No | Yes | Yes | Yes | +| **PostgreSQL** | Yes | Yes | Yes | Yes | Yes | +| **Advanced Server (Oracle compatible)** | Yes | Yes | No | Yes | No | +| **Advanced Server (PostgreSQL compatible)** | No | Yes | Yes | Yes | Yes | + +**Permitted Source and Target Configurations** + +In the preceding table, the left hand column lists the possible source database server products including the possible Advanced Server compatibility configuration modes. The top row lists the same set of possible target database server products and Advanced Server compatibility configuration modes. + +`Yes` at the intersection of a source and target indicates that xDB Replication Server permits replication using that combination of database server configurations for a publication and its associated subscription. `No` indicates replication is not permitted for that combination. + + + +## Permitted MMR Database Server Configurations + +For multi-master replication systems, each primary node acts as both a source for all primary nodes and a target for all primary nodes. Thus, the permitted database servers comprising a particular multi-master replication system or cluster is determined by the overall composition of the cluster, which is initially established when selecting the database type of the primary definition node (see Step 3 in Section [Adding the Primary definition node](../06_mmr_operation/#adding_pdn)). There are two basic cluster types that can be characterized as follows: + +- PostgreSQL compatible cluster. All primary nodes must consist of PostgreSQL database servers or Advanced Servers installed in PostgreSQL compatible configuration mode. +- Advanced Server Oracle compatible cluster. All primary nodes must consist of Advanced Servers installed in Oracle compatible configuration mode. + +The following table summarizes the permitted database server configurations allowed in the two cluster types. + +Table 10‑2 – + +| | | | +|---------------------------------------------|-------------------------------|-------------------------------------------| +| Database Server \\ Cluster Type | PostgreSQL Compatible Cluster | Advanced Server Oracle Compatible Cluster | +| **PostgreSQL** | Yes | No | +| **Advanced Server (PostgreSQL compatible)** | Yes | No | +| **Advanced Server (Oracle compatible)** | No | Yes | + +**Permitted Database Server Configurations by Cluster Type** + +In the preceding table, the left hand column lists the possible database server products including the possible Advanced Server compatibility configuration modes. The top row lists the supported cluster types. + +`Yes` at the intersection of a database server and cluster type indicates that xDB Replication Server permits the database server and the specified configuration mode in the cluster type. ‘No’ indicates the database server and the specified configuration mode cannot be used in the cluster type. diff --git a/product_docs/docs/eprs/6.2/10_appendix/02_upgrading_to_xdb6_2/01_permitted_conf_and_permutations.mdx b/product_docs/docs/eprs/6.2/10_appendix/02_upgrading_to_xdb6_2/01_permitted_conf_and_permutations.mdx new file mode 100644 index 00000000000..ffc18300355 --- /dev/null +++ b/product_docs/docs/eprs/6.2/10_appendix/02_upgrading_to_xdb6_2/01_permitted_conf_and_permutations.mdx @@ -0,0 +1,78 @@ +--- +title: "Permitted Configurations and Combinations" +--- + + + + +Depending upon the database products you are using with xDB Replication Server (Oracle, SQL Server, PostgreSQL, or Advanced Server) along with the compatibility configuration mode if you are using Advanced Server, certain combinations of a source database server and a target database server are not permitted for a publication and its associated subscription in a single-master replication system. + +Similarly, only certain combinations of database products and Advanced Server compatibility configuration modes can be used together in a multi-master replication system. + +For a single-master replication system, the source refers to the database server of the publication database. The target refers to the database server of the subscription database. + +For a multi-master replication system, all of the participating database servers act as both a source and a target for all other participating database servers, so the restrictions pertain to the combinations of database servers and compatibility configuration modes that can be used together in the same multi-master replication system. + +This section presents the specific combinations of database server configurations that can be used for a publication and its associated subscription in a single-master replication system, and the combinations of database server configurations that can be used in a multi-master replication system. + + + +## Advanced Server Compatibility Configuration Modes + +Advanced Server supports two compatibility configuration modes of operation, which are the following: + +- Oracle compatible configuration mode. Operations are performed using Oracle syntax and semantics for data types, functions, database object creation, and so forth. This mode is useful when your applications are migrated from Oracle, or you want your applications built in an Oracle compatible fashion. +- PostgreSQL compatible configuration mode. Operations are performed using native PostgreSQL syntax and semantics. This mode is useful when your applications are migrated from PostgreSQL, or you want your applications built in a PostgreSQL compatible fashion. + +For more information on features supported in Oracle compatible configuration mode, see the *Database Compatibility for Oracle Developer’s Guide* located at: + +> + +The compatibility configuration mode is selected at the time you install Advanced Server. + + + +## Permitted SMR Source and Target Configurations + +The following table shows the combinations of source and target database server products and Advanced Server compatibility configuration modes permitted by xDB Replication Server for single-master replication systems: + +| | | | | | | +|---------------------------------------------|--------|----------------------|------------|-------------------------------------|-----------------------------------------| +| Source \\ Target | Oracle | Microsoft SQL Server | PostgreSQL | Advanced Server (Oracle compatible) | Advanced Server (PostgreSQL compatible) | +| **Oracle** | No | No | Yes | Yes | Yes | +| **Microsoft SQL Server** | No | No | Yes | Yes | Yes | +| **PostgreSQL** | Yes | Yes | Yes | Yes | Yes | +| **Advanced Server (Oracle compatible)** | Yes | Yes | No | Yes | No | +| **Advanced Server (PostgreSQL compatible)** | No | Yes | Yes | Yes | Yes | + +**Permitted Source and Target Configurations** + +In the preceding table, the left hand column lists the possible source database server products including the possible Advanced Server compatibility configuration modes. The top row lists the same set of possible target database server products and Advanced Server compatibility configuration modes. + +`Yes` at the intersection of a source and target indicates that xDB Replication Server permits replication using that combination of database server configurations for a publication and its associated subscription. `No` indicates replication is not permitted for that combination. + + + +## Permitted MMR Database Server Configurations + +For multi-master replication systems, each primary node acts as both a source for all primary nodes and a target for all primary nodes. Thus, the permitted database servers comprising a particular multi-master replication system or cluster is determined by the overall composition of the cluster, which is initially established when selecting the database type of the primary definition node (see Step 3 in Section [Adding the Primary definition node](../../06_mmr_operation/#adding_pdn)). There are two basic cluster types that can be characterized as follows: + +- PostgreSQL compatible cluster. All primary nodes must consist of PostgreSQL database servers or Advanced Servers installed in PostgreSQL compatible configuration mode. +- Advanced Server Oracle compatible cluster. All primary nodes must consist of Advanced Servers installed in Oracle compatible configuration mode. + +The following table summarizes the permitted database server configurations allowed in the two cluster types. + +Table 10‑2 – + +| | | | +|---------------------------------------------|-------------------------------|-------------------------------------------| +| Database Server \\ Cluster Type | PostgreSQL Compatible Cluster | Advanced Server Oracle Compatible Cluster | +| **PostgreSQL** | Yes | No | +| **Advanced Server (PostgreSQL compatible)** | Yes | No | +| **Advanced Server (Oracle compatible)** | No | Yes | + +**Permitted Database Server Configurations by Cluster Type** + +In the preceding table, the left hand column lists the possible database server products including the possible Advanced Server compatibility configuration modes. The top row lists the supported cluster types. + +`Yes` at the intersection of a database server and cluster type indicates that xDB Replication Server permits the database server and the specified configuration mode in the cluster type. ‘No’ indicates the database server and the specified configuration mode cannot be used in the cluster type. diff --git a/product_docs/docs/eprs/6.2/10_appendix/02_upgrading_to_xdb6_2/02_upgrading_with_gui_installer.mdx b/product_docs/docs/eprs/6.2/10_appendix/02_upgrading_to_xdb6_2/02_upgrading_with_gui_installer.mdx new file mode 100644 index 00000000000..98c49e643c7 --- /dev/null +++ b/product_docs/docs/eprs/6.2/10_appendix/02_upgrading_to_xdb6_2/02_upgrading_with_gui_installer.mdx @@ -0,0 +1,52 @@ +--- +title: "Upgrading with the Graphical User Interface Installer" +--- + + + + +Perform the following steps to upgrade to xDB Replication Server 6.2 using the graphical user interface installer. + +**Step 1:** Any pending backlog of transactions on the publication tables must be replicated before starting the upgrade process. + +**Step 2:** After all pending transactions have been replicated to their target databases, stop the xDB Replication Server 6.1.x publication server and subscription server. See sections [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server) and [Registering a Subscription Server](../../05_smr_operation/03_creating_subscription/#registering_subscription_server). + +**Step 3:** Install xDB Replication Server 6.2. See Chapter [Installation and Uninstallation](../../05_smr_operation/03_creating_subscription/#registering_subscription_server) for instructions on installing xDB Replication Server, but note the differences described in the following steps. + +**Step 4:** Following the acceptance of the license agreement in Step 11 of Section [Installing With Stack Builder or StackBuilder Plus](../../03_installation/#installing_with_stackbuilder), the Select Components screen appears, but with the entries grayed out. The old xDB Replication Server components are replaced by the new ones in the old xDB Replication Server’s directory location. Click the `Next` button. + +![Select components](/../../images/image292.png) + +**Step 5:** The Existing Installation screen confirms that an existing xDB Replication Server installation was found. Click the `Next` button to proceed with the upgrade. + +![Existing installation](/../../images/image293.png) + +**Step 6:** On the `Ready to Install` screen, click the `Next` button. + +![Ready to install](/../../images/image294.png) + +**Step 7:** The remaining screens that appear confirm completion of the installation process and allow you to exit from Stack Builder or StackBuilder Plus. + +**Step 8:** After installation completes, the publication server of the new xDB Replication Server product should be running, connected to the controller database used by xDB Replication Server 6.1. The subscription server may or may not be running at this point, however, that is an expected outcome of this process. + +**Step 9:** Complete the publication server and subscription server configuration file setup. + +In the `XDB_HOME/etc` directory, a new set of configuration files for xDB Replication Server version 6.2 are created. These files are named `xdb_pubserver.conf.new` and `xdb_subserver.conf.new`. The new configuration files contain any new configuration options added for xDB Replication Server 6.2. + +The old configuration files used by xDB Replication Server version 6.1.x remain unchanged as `xdb_pubserver.conf` and `xdb_subserver.conf`. + +Merge the old and new configuration files so that the resulting, active configuration files contain any new xDB Replication Server 6.2 configuration options as well as any non-default settings you used with xDB Replication Server 6.1.x and wish to continue to use with xDB Replication Server 6.2. The final set of active configuration files must be named `xdb_pubserver.conf` and `xdb_subserver.conf`. + +In the `XDB_HOME/etc/sysconfig` directory, make sure the xDB Startup Configuration file `xdbReplicationServer-62.config` contains the parameter settings you wish to use with xDB Replication Server 6.2. See [xDB Startup Configuration File](../../02_overview/03_replication_server_components_and_architecture/#xdb_startup_conf_file) for information on the xDB Startup Configuration file. + +**Step 10:** Restart the publication server and the subscription server (see sections [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server) and [Registering a Subscription Server](../../05_smr_operation/03_creating_subscription/#registering_subscription_server)). + +**Step 11:** Check the publication server and subscription server log files to verify that no errors have occurred (see [Publication and Subscription Server Startup Failures](../../10_appendix/03_resolving_problems/#pub_and_sub_startup_failures)). + +**Step 12:** Adjust the publication server and subscription server port numbers if necessary. + +The xDB Replication Server 6.2 publication and subscription servers are installed to use the default port numbers 9051 and 9052, respectively. If the xDB Replication Server 6.1.x replication systems used port numbers other than 9051 and 9052, then perform the modifications to correct this inconsistency as described in Section [Updating the Publication and Subscription Server Ports](../../10_appendix/02_upgrading_to_xdb6_2/#updating_sub_and_pub_ports). + +If no such adjustment to the port numbers is needed, register the publication server and subscription server with the xDB Replication Console as described in sections [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server) and [Registering a Subscription Server](../../05_smr_operation/03_creating_subscription/#registering_subscription_server). The existing replication systems should appear in the replication tree of the xDB Replication Console. + +**Step 13:** You are now ready to use xDB Replication Server 6.2 to create new replication systems and manage existing ones. diff --git a/product_docs/docs/eprs/6.2/10_appendix/02_upgrading_to_xdb6_2/03_upgrading_with_xdb_rpm_package.mdx b/product_docs/docs/eprs/6.2/10_appendix/02_upgrading_to_xdb6_2/03_upgrading_with_xdb_rpm_package.mdx new file mode 100644 index 00000000000..e1ca0d1bcc5 --- /dev/null +++ b/product_docs/docs/eprs/6.2/10_appendix/02_upgrading_to_xdb6_2/03_upgrading_with_xdb_rpm_package.mdx @@ -0,0 +1,181 @@ +--- +title: "Upgrading with the xDB Replication Server RPM Package" +--- + + + + +If you are using xDB Replication Server 6.1.x that was installed using the xDB RPM package, upgrading to xDB Replication Server 6.2 from an RPM package is accomplished as described in this section. + +
+ +
+ +Note + +
+ +Be sure the repository configuration file `edb.repo` for xDB Replication Server 6.2 is set up in the `/etc/yum.repos.d` directory. See Section [Installing the xDB RPM Package](../../03_installation/#installing_rpm_package) for information. + +
+ +**Step 1:** Any pending backlog of transactions on the publication tables must be replicated before starting the upgrade process. + +**Step 2:** After all pending transactions have been replicated to their target databases, stop the xDB Replication Server 6.1.x publication server and subscription server (see sections [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server) and [Registering a Subscription Server](../../05_smr_operation/03_creating_subscription/#registering_subscription_server)). + +**Step 3:** Save a copy of the following configuration files: + +- `/etc/edb-repl.conf` +- `/usr/ppas-xdb-6.1/etc/xdb_pubserver.conf` +- `/usr/ppas-xdb-6.1/etc/xdb_subserver.conf` +- `/usr/ppas-xdb-6.1/etc/sysconfig/xdbReplicationServer-61.config` + +Copies of these files are typically saved by the upgrade process if the files had been modified since their original installation. However, it is safest to save copies in case the upgrade process fails to do so. Use the saved files as your xDB Replication Server 6.1.x configuration files for the updates described in Step 7. + +**Step 4:** If any Oracle publication or subscription databases are used in existing single-master replication systems, make sure a copy of the Oracle JDBC driver, version ojdbc5 or later, will be accessible by the publication server and subscription server where xDB Replication Server 6.2 will be installed. See [Enabling Access to Oracle](../../05_smr_operation/01_prerequisites/#enable_access_to_oracle) for information. + +
+ +
+ +Note + +
+ +There are two options available: Option 1) Copy the Oracle JDBC driver to the `jre/lib/ext subdirectory` of your Java runtime environment. Option 2) Copy the Oracle JDBC driver to the `lib/jdbc subdirectory` of the xDB Replication Server installation directory. + +
+ +It is suggested that you perform option 1 (copy the Oracle JDBC driver to the jre/lib/ext subdirectory of your Java runtime environment). + +If on the other hand you perform option 2, you must copy the Oracle JDBC driver to the `/usr/ppas-xdb-6.2/lib/jdbc` directory after you have installed xDB Replication Server 6.2. + +**Step 5:** It is best to ensure that the controller database is up and running. The other publication and subscription databases of existing SMR and MMR systems do not need to be up and running. + +**Step 6:** As the root account invoke the yum update command to begin the upgrade from xDB Replication Server 6.1.x to xDB Replication Server 6.2 as shown by the following: + +`yum update ppas-xdb*` + +Be sure to include the asterisk character (\*) following ppas-xdb in order to update all xDB Replication Server components. + +The following is an example: + +``` text +[root@localhost ~]# yum update ppas-xdb* +Loaded plugins: fastestmirror, langpacks +Loading mirror speeds from cached hostfile +* base: mirrors.piconets.webwerks.in +* extras: mirrors.piconets.webwerks.in +* updates: centos.excellmedia.net +Resolving Dependencies +--> Running transaction check +---> Package ppas-xdb.x86_64 0:6.1.5-1.rhel7 will be updated +---> Package ppas-xdb.x86_64 0:6.2.12-1.rhel7 will be an update +---> Package ppas-xdb-console.x86_64 0:6.1.5-1.rhel7 will be updated +---> Package ppas-xdb-console.x86_64 0:6.2.12-1.rhel7 will be an update +---> Package ppas-xdb-libs.x86_64 0:6.1.5-1.rhel7 will be updated +---> Package ppas-xdb-libs.x86_64 0:6.2.12-1.rhel7 will be an update +---> Package ppas-xdb-publisher.x86_64 0:6.1.5-1.rhel7 will be updated +---> Package ppas-xdb-publisher.x86_64 0:6.2.12-1.rhel7 will be an update +---> Package ppas-xdb-subscriber.x86_64 0:6.1.5-1.rhel7 will be updated +---> Package ppas-xdb-subscriber.x86_64 0:6.2.12-1.rhel7 will be an update +--> Finished Dependency Resolution + +Dependencies Resolved + +========================================================================================================================================================================================= +Package Arch Version Repository Size +========================================================================================================================================================================================= +Updating: +ppas-xdb x86_64 6.2.12-1.rhel7 edb 7.2 k +ppas-xdb-console x86_64 6.2.12-1.rhel7 edb 1.6 M +ppas-xdb-libs x86_64 6.2.12-1.rhel7 edb 14 M +ppas-xdb-publisher x86_64 6.2.12-1.rhel7 edb 40 k +ppas-xdb-subscriber x86_64 6.2.12-1.rhel7 edb 11 k + +Transaction Summary +========================================================================================================================================================================================= +Upgrade 5 Packages + +Total download size: 16 M +Is this ok [y/d/N]: y +Downloading packages: +No Presto metadata available for edb +(1/5): ppas-xdb-6.2.12-1.rhel7.x86_64.rpm | 7.2 kB 00:00:01 +(2/5): ppas-xdb-console-6.2.12-1.rhel7.x86_64.rpm | 1.6 MB 00:00:08 +(3/5): ppas-xdb-publisher-6.2.12-1.rhel7.x86_64.rpm | 40 kB 00:00:00 +(4/5): ppas-xdb-subscriber-6.2.12-1.rhel7.x86_64.rpm | 11 kB 00:00:00 +(5/5): ppas-xdb-libs-6.2.12-1.rhel7.x86_64.rpm | 14 MB 00:00:30 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Total 491 kB/s | 16 MB 00:00:32 +Running transaction check +Running transaction test +Transaction test succeeded +Running transaction +Updating : ppas-xdb-libs-6.2.12-1.rhel7.x86_64 1/10 +Updating : ppas-xdb-publisher-6.2.12-1.rhel7.x86_64 2/10 +Updating : ppas-xdb-subscriber-6.2.12-1.rhel7.x86_64 3/10 +Updating : ppas-xdb-console-6.2.12-1.rhel7.x86_64 4/10 +Updating : ppas-xdb-6.2.12-1.rhel7.x86_64 5/10 +Cleanup : ppas-xdb-6.1.5-1.rhel7.x86_64 6/10 +Cleanup : ppas-xdb-subscriber-6.1.5-1.rhel7.x86_64 7/10 +Cleanup : ppas-xdb-console-6.1.5-1.rhel7.x86_64 8/10 +Cleanup : ppas-xdb-publisher-6.1.5-1.rhel7.x86_64 9/10 +Cleanup : ppas-xdb-libs-6.1.5-1.rhel7.x86_64 10/10 +Verifying : ppas-xdb-6.2.12-1.rhel7.x86_64 1/10 +Verifying : ppas-xdb-libs-6.2.12-1.rhel7.x86_64 2/10 +Verifying : ppas-xdb-publisher-6.2.12-1.rhel7.x86_64 3/10 +Verifying : ppas-xdb-subscriber-6.2.12-1.rhel7.x86_64 4/10 +Verifying : ppas-xdb-console-6.2.12-1.rhel7.x86_64 5/10 +Verifying : ppas-xdb-publisher-6.1.5-1.rhel7.x86_64 6/10 +Verifying : ppas-xdb-subscriber-6.1.5-1.rhel7.x86_64 7/10 +Verifying : ppas-xdb-6.1.5-1.rhel7.x86_64 8/10 +Verifying : ppas-xdb-libs-6.1.5-1.rhel7.x86_64 9/10 +Verifying : ppas-xdb-console-6.1.5-1.rhel7.x86_64 10/10 + +Updated: +ppas-xdb.x86_64 0:6.2.12-1.rhel7 ppas-xdb-console.x86_64 0:6.2.12-1.rhel7 ppas-xdb-libs.x86_64 0:6.2.12-1.rhel7 ppas-xdb-publisher.x86_64 0:6.2.12-1.rhel7 +ppas-xdb-subscriber.x86_64 0:6.2.12-1.rhel7 + +Complete! +``` + +At this point the publication server and the subscription server for xDB Replication Server 6.2 are not running. The directories now contain the following: + +- xDB Replication Server 6.2 is installed in directory location `/usr/ppas-xdb-6.2`. +- xDB Replication Server 6.1.x remains in directory location /usr/ppas-xdb-6.1, but with the files removed from the subdirectories such as bin and lib. +- In the etc subdirectory, there may be the configuration files renamed as `xdb_pubserver.conf.rpmsave` and `xdb_subserver.conf.rpmsave`. +- In the `etc/sysconfig subdirectory`, there may be the configuration file renamed as `xdbReplicationServer-61.config.rpmsave`. +- In the /etc directory, there may be either one or two xDB Replication Configuration files named `edb-repl.conf` and possibly `edb-repl.conf.rpmsave`. The file `edb-repl.conf` should contain the connection and authentication information for the controller database used by the xDB 6.1.x publication server. The file `edb-repl.conf.rpmsave` contains only the new administrator user parameters admin\_user and admin\_password. Before starting the publication server and subscription server, be sure the controller database is up and running, and the `edb-repl.conf` file contains the controller database connection and authentication parameters. + +**Step 7:** Complete the publication server and subscription server configuration file setup. + +In the `/usr/ppas-xdb-6.2/etc` directory, a new set of configuration files for xDB Replication Server version 6.2 are created. These files are named `xdb_pubserver.conf` and `xdb_subserver.conf`. The new configuration files contain any new configuration options added for xDB Replication Server 6.2. The old configuration files used by xDB Replication Server version 6.1.x might be found in the /usr/ppas-xdb-6.1/etc directory renamed as `xdb_pubserver.conf.rpmsave` and `xdb_subserver.conf.rpmsave`. + +
+ +
+ +Note + +
+ +If these files do not exist, use the ones you saved in Step 3. + +
+ +Merge the old and new configuration files so that the resulting, active configuration files contain any new xDB Replication Server 6.2 configuration options as well as any non-default settings you used with xDB Replication Server 6.1.x and wish to continue to use with xDB Replication Server 6.2. + +The final set of active configuration files must be contained in directory `/usr/ppas-xdb-6.2/etc` named `xdb_pubserver.conf` and `xdb_subserver.conf`. In the `/usr/ppas-xdb-6.2/etc/sysconfig directory`, make sure the xDB Startup Configuration file `xdbReplicationServer-62.config` contains the parameter settings you wish to use with xDB Replication Server 6.2. See [xDB Replication Configuration File](../../02_overview/03_replication_server_components_and_architecture/#xdb_replication_conf_file) for information on the xDB Startup Configuration file. + +**Step 8:** Restart the publication server and the subscription server (see sections [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server) and [Registering a Subscription Server](../../05_smr_operation/03_creating_subscription/#registering_subscription_server)). + +**Step 9:** Check the publication server and subscription server log files to verify that no errors have occurred (see [xDB Replication Configuration File](../../02_overview/03_replication_server_components_and_architecture/#xdb_replication_conf_file)). + +**Step 10:** Adjust the publication server and subscription server port numbers if necessary. + +The xDB Replication Server 6.2 publication and subscription servers are installed to use the default port numbers 9051 and 9052, respectively. If the xDB Replication Server 6.1.x replication systems used port numbers other than 9051 and 9052 for the publication and subscription servers, then perform the modifications to correct this inconsistency as described in Section [Updating the Publication and Subscription Server Ports](../../10_appendix/02_upgrading_to_xdb6_2/#updating_sub_and_pub_ports). + +If no such adjustment to the port numbers is needed, register the publication server and subscription server with the xDB Replication Console as described in sections [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server) and [Registering a Subscription Server](../../05_smr_operation/03_creating_subscription/#registering_subscription_server)). The existing replication systems should appear in the replication tree of the xDB Replication Console. + +**Step 11:** You are now ready to use xDB Replication Server 6.2 to create new replication systems and manage existing ones. diff --git a/product_docs/docs/eprs/6.2/10_appendix/02_upgrading_to_xdb6_2/04_updating_sub_and_pub_ports.mdx b/product_docs/docs/eprs/6.2/10_appendix/02_upgrading_to_xdb6_2/04_updating_sub_and_pub_ports.mdx new file mode 100644 index 00000000000..129adf7d050 --- /dev/null +++ b/product_docs/docs/eprs/6.2/10_appendix/02_upgrading_to_xdb6_2/04_updating_sub_and_pub_ports.mdx @@ -0,0 +1,29 @@ +--- +title: "Updating the Publication and Subscription Server Ports" +--- + + + + +The newly installed publication server and subscription server of xDB Replication Server 6.2 are configured to use the default port numbers 9051 and 9052, respectively. These port numbers are set in the xDB Startup Configuration file as described in Section [xDB Replication Configuration File](../../02_overview/03_replication_server_components_and_architecture/#xdb_replication_conf_file). + +If your xDB Replication Server 6.1.x replication systems were running under port numbers other than 9051 and 9052, some of your settings in xDB Replication Server 6.2 must be adjusted to continue to use these existing replication systems. + +
+ +
+ +Note + +
+ +The following changes regarding port 9052 and the subscription server are only needed if you are running a single-master replication system. If you are using only a multi-master replication system, then only the changes involving port 9051 and the publication server are needed. + +
+ +There are two methods to correct this as summarized by the following two points: + +- To continue to use the old port numbers (other than 9051 and 9052) that were in use for xDB Replication Server 6.1.x, stop the publication and subscription servers. Change the settings of the `PUBPORT` and `SUBPORT` parameters in the xDB Startup Configuration file from 9051 and 9052 to the old port numbers used by xDB Replication Server 6.1.x. Restart the publication and subscription servers. Register the publication server and the subscription server with the old xDB Replication Server 6.1.x port numbers along with the admin user and password as described in sections [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server) and [Registering a Subscription Server](../../05_smr_operation/03_creating_subscription/#registering_subscription_server). +- To use the default port numbers 9051 and 9052 with the xDB Replication Server 6.1.x replication systems, you must replace the old port numbers with the default port numbers 9051 and 9052. Register the publication server and the subscription server with port numbers 9051 and 9052 along with the admin user and password as described in sections [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server) and [Registering a Subscription Server](../../05_smr_operation/03_creating_subscription/#registering_subscription_server). For single-master replication systems only, you then need to change the port numbers stored in the control schema from the old port numbers to 9051 and 9052. First, perform the procedure described in Section [Subscription Server Network Location](../../07_common_operations/06_managing_publication/#sub_server_network_loc), and then perform the procedure described in Section [Updating a Subscription](../../05_smr_operation/05_managing_subscription/#updating_subscription). + +After making the changes as previously described, click the `Refresh` button of the xDB Replication Console. The replication tree of the xDB Replication Console should display the complete set of nodes for the replication systems. diff --git a/product_docs/docs/eprs/6.2/10_appendix/02_upgrading_to_xdb6_2/index.mdx b/product_docs/docs/eprs/6.2/10_appendix/02_upgrading_to_xdb6_2/index.mdx new file mode 100644 index 00000000000..c0645b29908 --- /dev/null +++ b/product_docs/docs/eprs/6.2/10_appendix/02_upgrading_to_xdb6_2/index.mdx @@ -0,0 +1,26 @@ +--- +title: "Upgrading to xDB Replication Server 6.2" +--- + + + + +This section describes the process of installing xDB Replication Server 6.2 when you have existing single-master or multi-master replication systems that are running under xDB Replication Server version 6.1.x or 6.0.x. + +It is assumed that you will be installing xDB Replication Server 6.2 on the same host machine that is currently running xDB Replication Server 6.1.x or 6.0.x, and that you will then manage the existing replication systems using xDB Replication Server 6.2. + +A direct upgrade is supported only from xDB Replication Server versions 6.1.x or 6.0.x. + +If you have xDB Replication Server 5.1.x, you must first upgrade this version to xDB Replication Server 6.0. See Section 10.2 *Upgrading to xDB Replication Server 6.0* in the EDB Replication Server 6.0 User’s Guide located at: + +> + +After upgrading to version 6.0, you can then upgrade to 6.2. + +The following sections illustrate the upgrade process from xDB Replication Server 6.1. The same steps apply for upgrading from xDB Replication Server 6.0, but with different version numbers in the file and directory names of the older product. + +
+ +permitted\_conf\_and\_permutations upgrading\_with\_gui\_installer upgrading\_with\_xdb\_rpm\_package updating\_sub\_and\_pub\_ports + +
diff --git a/product_docs/docs/eprs/6.2/10_appendix/03_resolving_problems/01_error_messages.mdx b/product_docs/docs/eprs/6.2/10_appendix/03_resolving_problems/01_error_messages.mdx new file mode 100644 index 00000000000..610bc7ff7a0 --- /dev/null +++ b/product_docs/docs/eprs/6.2/10_appendix/03_resolving_problems/01_error_messages.mdx @@ -0,0 +1,594 @@ +--- +title: "Error Messages" +--- + + + + +The following section lists of certain error messages that can appear from the xDB Replication Console. The messages are listed in alphabetical order based on the first word in the message following `a, an,` or `the`. + +When an error message is displayed by the xDB Replication Console, it may be followed by a specific reason as denoted by Reason: reason\_for\_failure as in the following example: + +`Authentication failed. Reason: Invalid user name/password.` + +The various specific reasons are not listed for all messages in the table. + +This table also lists only the messages that typically involve initial configuration operations requiring additional information for resolving the problem. Messages related to less complicated corrections for simpler operations are not listed in this table. + +## Error Messages and Resolutions + +**Problem** + +`Authentication failed. Reason: Invalid user name/password.` + +**Resolution** + +Occurs when registering a publication server or subscription server. Verify the user name and password you enter matches the admin user name and password in the xDB Replication Configuration file on the host you are running the publication server or subscription server. See [xDB Replication Configuration File](../../02_overview/03_replication_server_components_and_architecture/#xdb_replication_conf_file). + +**Problem** + +Cannot register database because it is already registered by a publication service. + +**Resolution** + +Only one publication database definition can be created for any given database. (Oracle is the exception whereby more than one publication database definition can be created for the same Oracle database if different Oracle user names are specified in each publication database definition.) + +**Problem** + +`The connection could not be established with the server. Verify that the server is running and accepting connections. Reason: Connection refused to host: *xxx*.\ *xxx*.\ *xx*.\ *xxx*; nested exception is: java.net.ConnectException: Connection refused` + +**Resolution** + +Occurs whenever a Java RMI connection cannot be made to the publication server, the subscription server, or a database server. Can occur when registering a publication or subscription server, adding a publication database or a subscription database, or identifying the publication server for a new subscription. Verify you have entered the correct host IP address and port number of the server. Verify the server is running (see [Starting the Publication Server or Subscription Server](../../10_appendix/03_resolving_problems/#start_pub_or_sub_server)). If the server is running on Linux, verify that in the `/etc/hosts` file, the host name is mapped to the correct network IP address, which matches the IP address returned by the Linux `/sbin/ifconfig` command, and also matches the IP address you entered in the Host field of the dialog box. Alternatively, instead of modifying the /etc/hosts file, set configuration option `java.rmi.server.hostname` to the IP address of the publication or subscription server (see ref:Assigning an IP Address for Remote Method Invocation <assign\_ip\_adress\_for rmi>). Do not use the loopback address `127.\ *x*.\ *x*.\ *x*` for this entry. + +**Problem** + +Connection refused. Check that the hostname and port are correct and that the postprimary is accepting TCP/IP connections. + +**Resolution** + +Occurs when attempting to save a publication database definition. The publication server cannot connect to the database server network location given in the Add Database dialog box. Verify that the correct IP address and port for the database server are given. Verify that the database server is running and is accessible from the host running the publication server. + +**Problem** + +`Could not connect to the database server. Reason: FATAL: number of requested standby connections exceeds max_wal_senders (currently *n*)` + +**Resolution** + +Occurs when attempting a snapshot replication from a publication database configured with the log-based method of synchronization replication (that is, WAL based logical replication), and the additional concurrent connection for logical replication exceeds the current setting, *n*, of the max\_wal\_senders configuration parameter in the postgresql.conf file. Increase the value of max\_wal\_senders in the postgresql.conf file of the database server running the publication database. Restart the database server containing the publication database. See [Synchronization Replication with the Log-Based Method](../../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#sync_replication_log_based). + +**Problem** + +`Currently no publication exists on the publication server. Please create at least one publication on the server and then retry.` + +**Resolution** + +Occurs when attempting to create a subscription. If there are no publications in the specified publication server, then this error message is displayed. + +**Problem** + +`The database cannot be registered because a partial schema already exists. A manual cleanup is required to proceed. For help with manual cleanup please check out our product documentation.` + +**Resolution** + +The metadata database objects from a prior publication already exist in the schema under which the publication server is attempting to create new metadata database objects. Perform the operation described in Section [Deleting the Control Schema and Control Schema Objects](#del_control_schema_and%20objects). + +**Problem** + +`Database cannot be removed. Reason: Publication database connection cannot be removed as one or more publications are defined against it.` + +**Resolution** + +Make sure all publications subordinate to the publication database definition have been removed. If no publications appear under the Publication Database node in the xDB Replication Console replication tree and the error persists, there may be a problem with the control schema objects. Perform the operation described in Section [Deleting the Control Schema and Control Schema Objects](#del_control_schema_and%20objects). + +**Problem** + +Database cannot be removed. Reason: Publication service failed to clean up replication control schema tables. + +**Resolution** + +The control schema objects under the Oracle publication database user schema or under the Postgres or SQL Server schemas `\_edb_replicator_pub, \_edb_replicator_sub,` or `\_edb_scheduler` cannot be deleted by the publication server. The control schema objects or schemas may have already been deleted. The publication database definition cannot be removed using the xDB Replication Console. Perform the operation described in Section [Deleting the Control Schema and Control Schema Objects](#del_control_schema_and%20objects). + +**Problem** + +`Database cannot be removed. Reason: The target publication database is currently set as the Controller database and is being referenced by one or more dependent nodes.` + +**Resolution** + +Occurs when attempting to remove the publication database currently set as the controller database. Select another publication database to be used as the controller database. Use the Set As Controller option in the publication databases’ context menu to set this database as the controller database. You can then remove the original publication database. See [Switching the Controller Database](../../07_common_operations/#switching_controller_db). + +**Problem** + +`Database cannot be set as controller. Reason: Connection refused. Check that the hostname and port are correct and that the postprimary is accepting TCP/IP connections.` + +**Resolution** + +Occurs when attempting to set a publication database as the controller database and the database is not accessible by the publication server. Verify that the correct IP address and port has been defined in the publication database definition. Verify that the database server is running and is accessible from the host running the publication server. + +**Problem** + +`Database connection cannot be added. Connection refused. Check that the hostname and port are correct and that the postprimary is accepting TCP/IP connections.` + +**Resolution** + +Occurs when attempting to save a subscription database definition. The subscription server cannot connect to the database server network location given in the Add Database dialog box. Verify that the correct IP address and port for the database server are given. Verify that the database server is running and is accessible from the host running the subscription server. + +**Problem** + +`Database connection cannot be added. FATAL: no pg_hba.conf entry for host "*xxx*.\ *xxx*.\ *xx*.\ *xxx*", user "*user_name*", database "*db_name*", SSL off` + +**Resolution** + +Occurs when attempting to save a subscription database definition. The subscription server is not permitted to connect to the database at the network location given in the Add Database dialog box. Verify that the database host IP address, port number, database user name, password, and database identifier are correct. Verify there is an entry in the `pg_hba.conf` file permitting access to the database by the given user name originating from the IP address where the subscription server is running. + +**Problem** + +`Database connection cannot be added. Controller database is not initialized yet.` + +**Resolution** + +Occurs when attempting to add a subscription database. Verify that the xDB Replication Configuration file on the host running the subscription server contains an entry for a valid controller database. Verify that a publication database has been defined under the publication server as the controller database and its connection information is recorded in the xDB Replication Configuration file. See [xDB Replication Configuration File](../../02_overview/03_replication_server_components_and_architecture/#xdb_replication_conf_file). + +**Problem** + +The database type for the selected database is different than that of the PDN database. Each database should be of the same type in a MMR cluster. + +**Resolution** + +All database servers in a multi-master replication system must be of the same type – either all PostgreSQL (or Advanced Server installed in PostgreSQL compatible configuration mode); or all Advanced Server installed in Oracle compatible configuration mode. This error message is displayed when attempting to add a primary node and the database server type differs from the database server type of the primary definition node. See [Permitted MMR Database Server Configurations](../../10_appendix/02_upgrading_to_xdb6_2/#permitted_mmr_db_server_conf). + +**Problem** + +`An error occurred while removing tables from other Primary node(s). Please refer to the user manual for instructions on how to remove shadow tables and triggers from Primary node(s).` + +**Resolution** + +When a primary node of a multi-master replication system is deleted using the xDB Replication Console or the xDB Replication Server CLI, the control schema objects that were created in the primary node are also dropped. These include schemas `\_edb_replicator_pub, \_edb_replicator_sub,` and `\_edb_scheduler`. For the log-based method of synchronization replication there are shadow tables and triggers on the publication tables as well. If any of these control schema objects fail to be dropped, this error message is displayed. See [Dropping Replication Slots for Log-Based Synchronization Replication](../../10_appendix/03_resolving_problems/#drop_replication_slots_for_log_based) for directions on how to remove these control schema objects. + +**Problem** + +`FATAL: no pg_hba.conf entry for host "*xxx*.\ *xxx*.\ *xx*.\ *xxx*", user "*user_name*", database "*db_name*", SSL off` + +**Resolution** + +Occurs when attempting to save a publication database definition. The publication server is not permitted to connect to the database at the network location given in the Add Database dialog box. Verify that the database host IP address, port number, database user name, password, and database identifier are correct. Verify there is an entry in the `pg_hba.conf` file permitting access to the database by the given user name originating from the IP address where the publication server is running. + +**Problem** + +`Filter cannot be defined for Binary data type column(s)e.g. BYTEA, BLOB, RAW.` + +**Resolution** + +Occurs when attempting to define a filter rule on a column with a binary data type in a publication table. Filter rules are not permitted on such columns. See Section 2.2.12.3. + +**Problem** + +`Filter with same name/clause already exist on table/view: *schema*.\ *table_name*` + +**Resolution** + +When adding a filter rule on a publication table, the same filter name or the same filter clause (WHERE clause) cannot be used more than once on a given table. Modify the duplicate filter name or filter clause so it is unique for the table. + +**Problem** + +`The initial snapshot is not performed for this subscription. Please take the snapshot first and then proceed with the synchronize operation.` + +**Resolution** + +A snapshot replication must be performed before the first synchronization replication. Perform an on demand snapshot replication. + +**Problem** + +`It is recommended to use a network IP address, the loopback address may result in connectivity issues.` + +**Resolution** + +This warning is given when localhost or 127.0.0.1 is specified as the host address of a replication system component. If is strongly recommended that all replication system components are identified by their specific IP address on the network. + +**Problem** + +`The log triggers creation failed for one or more publication tables. Make sure the database is in valid state and user is granted the required privileges.` + +**Resolution** + +Either the user does not have the trigger creation privilege or there is a database server problem. The database server message is displayed as part of the error. + +**Problem** + +`The MMR mode is currently not supported for *database_type* database.` + +**Resolution** + +A database server of type *database\_type* cannot be used in a multi-master replication system. Only Advanced Server or PostgreSQL database servers may be used as primary nodes in a multi-master replication system. + +**Problem** + +`Multiple filters of same table are not allowed.` + +**Resolution** + +When creating a subscription in a single-master replication system or creating a primary node other than the primary definition node in a multi-master replication system, only one filter may be selected for a given table. Uncheck the additional boxes in the Apply column under the Filter Rules tab if more than one box is selected. + +**Problem** + +`No JDBC Client driver is configured for the Oracle data source.` + +**Resolution** + +Occurs when creating an Oracle publication or subscription database definition. Copy the Oracle JDBC driver file `ojdbc\ *x*.jar` to subdirectory `lib/jdbc` of where the publication server or subscription server is installed on the host running the publication server or subscription server. Restart the publication server or subscription server. + +**Problem** + +`No Publication found on PDN node, additional Primary node cannot join MMR cluster.` + +**Resolution** + +Occurs when attempting to add a second primary node to a multi-master replication system, but no publication has been defined under the primary definition node. Create a publication under the primary definition node, then add the additional primary nodes. See [Adding a Publication](../../06_mmr_operation/#add_pub_mmr). + +**Problem** + +`None of the target master/subscription databases is accessible, hence the replication process failed to complete.` + +**Resolution** + +Synchronization replication failed due to the unavailability of a target database. See the publication server log file for details. See [Where to Look for Errors](../../10_appendix/03_resolving_problems/#where_to_look_for_errors). + +**Problem** + +`One or more primary database node(s) are defined against this publication. Removing the publication will invalidate the PDN.` + +**Resolution** + +Primary nodes are still defined in a multi-master replication system in which an attempt is being made to delete the publication from the primary definition node. All primary nodes (other than the primary definition node) must be deleted first before deleting the publication from the primary definition node. Perform this deletion process with the xDB Replication Console or xDB Replication Server CLI. + +**Problem** + +`One or more subscriptions are defined against this publication. Removing the publication will invalidate the subscription. Do you want to continue?` + +**Resolution** + +Warning issued when you attempt to remove a publication with subscriptions associated with it. You can remove the publication, but the subscriptions are no longer usable and should be removed as well. + +**Problem** + +`Multiple Publications creation is currently not supported.` + +**Resolution** + +Only one publication is supported in a multi-master replication system and only one such multi-master replication system can exist for an xDB Replication Server installation. + +**Problem** + +`Only subscription which has subscribed against a publication with transactional replication type, can be synchronized.` + +**Resolution** + +You cannot perform synchronization replication on a snapshot-only publication. Perform snapshot replication instead. + +**Problem** + +`The Oracle/MS SQL Server cannot be registered if the active Controller database is a non-PG/PPAS database.` + +**Resolution** + +Occurs when creating an Oracle or SQL Server publication database definition and the current controller database is not a Postgres database (that is, the controller database is an Oracle or SQL Server database). In order to create an Oracle or SQL Server publication database, create and designate a Postgres publication database as the controller database. See [Switching the Controller Database](../../07_common_operations/#switching_controller_db). + +**Problem** + +`Parent table *table_name* is not selected when its child tables are part of the publication list.` + +**Resolution** + +Table selected for a publication has a foreign key referencing a parent table that has not been chosen for the publication. This is only a warning that the parent table will not be part of the subscription. + +**Problem** + +`Problem occurred in publish process. Reason: Connection refused. Check that the hostname and port are correct and that the postprimary is accepting TCP/IP connections.` + +**Resolution** + +Occurs when attempting synchronization replication and the controller database is not accessible by the publication server. Verify that the correct IP address and port has been defined in the publication database definition of the controller database. Verify that the database server is running and is accessible from the host running the publication server. + +**Problem** + +`Problem occurred in publish process. Reason: ERROR: permission denied for schema \_edb_replicator_pub` + +**Resolution** + +For a Postgres publication, verify that the publication database user has `CREATE ON DATABASE` privilege on the publication database, or the database user is a superuser. + +**Problem** + +`Publication cannot be created. One or more tables have no attributes defined and cannot be published. Unselect the specific tables and retry.` + +**Resolution** + +In Postgres, it is possible to create a table with no columns. A publication is not allowed to include a Postgres table with no columns since the corresponding subscription table cannot be created in Oracle. + +**Problem** + +`Publication cannot be created. Publication *publication_name* already exists on the publisher server. Please choose a different name and then proceed.` + +**Resolution** + +Publication names must be unique within a publication server. Enter a different publication name. + +**Problem** + +`Publication cannot be created. Table *schema*.\ *table_name* replica identity is set to *replica_identity_setting*. To define a Filter, the table replica identity should be set to FULL.` + +**Resolution** + +Occurs when a table filter is attempted to be defined on a publication table used in a log-based replication system. Use the ALTER TABLE statement to change REPLICA IDENTITY to FULL. See [Table Settings and Restrictions for Table Filters](../../02_overview/02_replication_concepts_and_definitions/#table_settings_and_restrictions_for_table_filters). + +**Problem** + +`Publication cannot be created. Table *table_name* does not contain a primary key. Transactional replication is not supported for a non-pk table.` + +**Resolution** + +All tables used for synchronization replication must have primary keys. Create a primary key on the table or add the table to a snapshot-only publication. + +**Problem** + +`Publication cannot be created. The publication creation process timed out as one or more tables may be locked by another session. Please retry later.` + +**Resolution** + +For a Postgres publication that is not for snapshot-only, the publication database user must be able to create triggers on the publication tables. In order to do this, the publication database user must have the privilege to execute the `ALTER TABLE` statement on the publication tables and the publication database user must have `CREATE` and `USAGE` privileges on the schema containing the publication tables. Verify that one of the following is true: 1) All the tables in the publication are owned by the publication database user and the user has `CREATE` and `USAGE` privileges on the publication tables’ schemas, or 2) the publication database user is a superuser. + +**Problem** + +`Publication cannot be removed. Reason: Publication *publication_name* cannot be removed. Reason: Error: cannot drop table \_edb_replicator_pub.rrst\_\ *schema_table_name* because other objects depend on it.` + +**Resolution** PL/pgSQL custom conflict handler functions may exist in the primary definition node that are dependent upon the publication’s shadow tables. Drop the custom conflict handler functions before deleting the publication. + +**Problem** + +`Publication cannot be updated. Reason: The parent table *schema*.\ *table_name* is selected for removal while it has one or more child tables in the publication list. Make sure that parent-child dependency holds in the publication tables.` + +**Resolution** + +Choose the child tables for removal as well as the parent table. + +**Problem** + +`Publication defined in MMR cluster cannot be subscribed in SMR cluster.` + +**Resolution** + +A given publication cannot be used in both a multi-master replication system and a single-master replication system. + +**Problem** + +`Publication does not exist on the publication server. It might have been removed.` + +**Resolution** The publication does not exist for a given subscription. The subscription is no longer usable and must be removed. + +**Problem** + +`Publication having subscription against it, cannot be updated by removing tables from it.` + +**Resolution** + +Remove the subscription, remove tables from the publication, then add the subscription. + +**Problem** + +`The publication schema cannot be created. Reason: ERROR: Permission denied for database *db_name*.` + +**Resolution** + +Occurs when attempting to create the publication database definition and the specified publication database user does not have the privilege to create a schema in database *db\_name*. Grant the `CREATE` privilege on the database to the publication database user + +**Problem** + +`Publication Service connection failure.` + +**Resolution** + +Verify that the publication server is running. See [Starting the Publication Server or Subscription Server](../../10_appendix/03_resolving_problems/#start_pub_or_sub_server). Verify that the database server hosting the controller database specified in the xDB Replication Configuration file is running and the publication server is connected to it. See [xDB Replication Configuration File](../../02_overview/03_replication_server_components_and_architecture/#xdb_replication_conf_file). + +**Problem** + +`The replication process could not be completed due to a database failure. Check the database state and retry.` + +**Resolution** + +May be caused by characters in the publication data that are illegal for the character set of the subscription database. Check the snapshot replication failure log file or the database server log file. See [10.4.1.2 Replacing Null Characters](../../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/#replacing_null_characters). + +**Problem** + +`Replication server does not support Oracle to Oracle replication.` + +**Resolution** See [Permitted Configurations and Combinations](../../10_appendix/02_upgrading_to_xdb6_2/#permitted_conf_and_permutations) for supported database server configurations. Use Oracle products for Oracle to Oracle replication. + +**Problem** + +`A replication slot is not available on the target database server. Please configure the max_replication_slots GUC on the database server.` + +**Resolution** + +Occurs when attempting to add a publication database definition with the log-based method of synchronization replication, and the max\_replication\_slots configuration parameter in the `postgresql.conf` file is not set to a large enough value to accommodate the additional database. Increase the value of the max\_replication\_slots parameter and restart the database server. See [Synchronization Replication with the Log-Based Method](../../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#sync_replication_log_based) for additional information. + +**Problem** + +`Subscription *subscription_name* already exists on the subscriber server. Please choose a different name and then proceed.` + +**Resolution** Subscription names must be unique within a subscription server. Enter a different subscription name. + +**Problem** + +`Subscription *subscription_name* cannot be removed. Reason: Publication does not exist on the publication server.` + +**Resolution** Warning issued if the subscription you are attempting to remove does not have an associated publication. You can still remove the subscription. Subscription database connection cannot be removed as one or more subscriptions are defined against it. + +**Resolution** You cannot remove a subscription database definition if there are subordinate subscriptions. Remove the subscriptions first. + +**Problem** + +`Subscription does not exist on the subscription service. It might have been removed by some other user.` + +**Resolution** The Subscription node you are trying to select no longer represents an existing subscription. The subscription may have been removed by a concurrent xDB Replication Console or xDB Replication Server CLI session. Click the Refresh icon in the xDB Replication Console toolbar to display the current replication tree. + +**Problem** + +`Subscription Service connection failure.` + +**Resolution** Verify that the subscription server is running. See [Starting the Publication Server or Subscription Server](../../10_appendix/03_resolving_problems/#start_pub_or_sub_server) + +**Problem** + +`Synchronize Publication process failed for one or more primary nodes. Please see logs for more details.` + +**Resolution** Synchronization replication failed to complete for all target databases in the multi-master replication system due to the unavailability of some target database. See the publication server log file for details. See [Where to Look for Errors](../../10_appendix/03_resolving_problems/#where_to_look_for_errors). A table with large object type PK attribute cannot be published for (synchronize) incremental replication. + +**Resolution** Oracle doesn’t log changes for a large object column. Such a column cannot be referenced in the triggers that log changes to the shadow tables. Use snapshot-only replication instead. + +**Problem** + +`Test result: Failure` + +`Database connection information test failed. Connection refused. Check that the hostname and port are correct and that the postprimary is accepting TCP/IP connections.` + +**Resolution** Occurs when testing the connection of a publication or subscription database definition. The publication or subscription server cannot connect to the database server network location given in the Add Database dialog box. Verify that the correct IP address and port for the database server are given. Verify that the database server is running and is accessible from the host running the publication or subscription server. + +**Problem** + +`Test result: Failure` + +`Database connection information test failed. FATAL: no pg_hba.conf entry for host "*xxx*.\ *xxx*.\ *xx*.\ *xxx*", user "*user_name*", database "*db_name*", SSL off` + +**Resolution** + +Occurs when testing the connection of a publication or subscription database definition. The publication or subscription server is not permitted to connect to the database at the network location given in the Add Database dialog box. Verify that the database host IP address, port number, database user name, password, and database identifier are correct. Verify there is an entry in the `pg_hba.conf` file permitting access to the database by the given user name originating from the IP address where the publication or subscription server is running. + +**Problem** + +`Test result: Failure` + +`Database connection information test failed. IO exception: The Network Adapter could not establish the connection.` + +**Resolution** Verify that the database server is running. For Oracle, verify that the Oracle listener program `lsnrctl` is running. + +**Problem** + +`Test result: Failure` + +`The target database server cannot be registered for WAL based logical replication. Reason: The database server is not configured for logical replication. Reason: FATAL: must be superuser or replication role to start walsender.` + +**Resolution** Occurs when attempting to add a publication database definition with the log-based method of synchronization replication (that is, WAL based logical replication), and the publication database user is not a superuser or does not have REPLICATION privilege. Grant the publication database user the appropriate privilege or specify a different database user who has the appropriate privilege for logical replication as the publication database user. See [Synchronization Replication with the Log-Based Method](../../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#sync_replication_log_based). + +**Problem** + +`Test result: Failure` + +`The target database server cannot be registered for WAL based logical replication. Reason: The database server is not configured for logical replication. Reason: FATAL: no pg_hba.conf entry for replication connection from host "*xxx*.\ *xxx*.\ *xx*.\ *xxx*", user "*user_name*", SSL off` + +**Resolution** + +Occurs when attempting to add a publication database definition with the log-based method of synchronization replication (that is, WAL based logical replication), and there is no entry in the `pg_hba.conf` file where the DATABASE field is set to replication for *user\_name*. The `pg_hba.conf` file of the target database server must contain a replication entry for the publication database user name specified when creating the publication database definition. See [Synchronization Replication with the Log-Based Method](../../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#sync_replication_log_based). + +**Problem** + +`Test result: Failure` + +`The target database server cannot be registered for WAL based logical replication. Reason: The database server is not configured for logical replication. Reason: FATAL: number of requested standby connections exceeds max_wal_senders (currently *n*)` + +**Resolution** Occurs when attempting to add a publication database definition with the log-based method of synchronization replication (that is, WAL based logical replication), and the additional concurrent connection for logical replication exceeds the current setting, *n*, of the `max_wal_senders` configuration parameter in the `postgresql.conf` file. Increase the value of max\_wal\_senders in the `postgresql.conf` file of the database server running the publication database. Restart the database server containing the publication database. See [Synchronization Replication with the Log-Based Method](../../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#sync_replication_log_based). Test result: Failure + +The target database server cannot be registered for WAL based logical replication. Reason: The target database server version *x*.*x* does not support WAL logical decoding. + +**Resolution** + +Occurs when attempting to create a publication database definition with the log-based method of synchronization replication (that is, WAL based logical replication), and the Postgres database server is not version 9.4 or later. Only Postgres database servers of version 9.4 or later support the log-based method of synchronization replication. See [Synchronization Replication with the Log-Based Method](../../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#sync_replication_log_based). + +**Problem** + +`Unable to apply DDL changes.` + +**Resolution** The DDL statements in the text file specified for the DDL change replication feature contain syntax errors or are not supported by the DDL change replication feature. See ref:Replicating DDL Changes <replicating\_ddl\_changes>. + +**Problem** + +`Unable to communicate with remote server.` + +**Resolution** + +Occurs when attempting an operation such as performing synchronization replication or creating a schedule on a publication or subscription database that cannot be accessed by the xDB Replication Console. Verify that the publication and/or subscription servers are running. Verify that the database servers of the publication and/or subscription databases are running. + +**Problem** + +`Unable to create schema tables in target primary database.` + +`Unable to create publication shadow tables.` + +`Unable to create subscription schema tables.` + +`DB-42501: com.edb.util.PSQLException: ERROR: permission denied for relation pg_class.` + +**Resolution** Occurs when attempting to create an MMR publication database definition and the publication server is unable to create the control schema objects in the new publication database. This typically results when creating a second publication database definition and the publication server is unable to copy by snapshot the control schema objects from the controller database to the new publication database. The publication database user of the new publication database must be a superuser. In addition, in system catalog table pg\_catalog.pg\_authid, column rolcatupdate must be set to true for this superuser. See [Disabling Foreign Key Constraints for Snapshot Replications](../../10_appendix/04_miscellaneous_xdb_processing_topics/#disable_foreign_key_constraints_for_snapshot_replication). + +**Problem** + +`Unable to create Subscription *subscription_name*. Reason: Connection rejected: FATAL: no pg_hba.conf entry for host "*xxx*.\ *xxx*.\ *xx*.\ *xxx*" user "*user_name*", database "*db_name*", SSL off` + +**Resolution** + +Occurs when creating a subscription. The subscription server running on host *xxx*.*xxx*.*xx*.*xxx* could not access the controller database. Verify that the `pg_hba.conf` file on the controller database server permits access from the subscription server host + +**Problem** + +`Unable to create subscription schema tables. Org.postgresql.util.PSQLException: FATAL: no pg_hba.conf entry for host "*xxx*.\ *xxx*.\ *xx*.\ *xxx*" user "*user_name*", database "*db_name*", SSL off` + +**Resolution** + +Occurs when creating a subscription. The subscription server running on host *xxx*.*xxx*.*xx*.*xxx* could not access the publication database. Verify that the `pg_hba.conf` file on the publication database server permits access from the subscription server host. + +**Problem** + +`Unable to create subscription schema tables. The database type is not supported.` + +**Resolution** + +The subscription database type is not supported for the intended publication database type. See [Permitted SMR Source and Target Configurations](../../10_appendix/02_upgrading_to_xdb6_2/#permitted_smr_source_and_target_conf) for a list of permitted source and target database server configurations. + +**Problem** + +`Unable to create subscription schema tables. The target database schema already contains one or more tables with the same name as the table(s) in the source database.` + +**Resolution** The subscription server was unable to create a subscription table definition in the intended target schema. Typically, the reason is that a table with the same name already exists in the target schema of the subscription database. This can occur if you create a subscription, then remove it, but fail to drop the table definitions created under the target schema, then try to create the subscription a second time. Unable to create subscription schema tables. + +Unable to create publication shadow tables. + +Unable to create subscription schema tables. + +DB-42501: com.edb.util.PSQLException: ERROR: permission denied for relation pg\_class. + +**Resolution** Occurs when attempting to create an SMR publication database definition and the publication server is unable to create the control schema objects in the new publication database. This typically results when creating a second publication database definition and the publication server is unable to copy by snapshot the control schema objects from the controller database to the new publication database. The publication database user of the new publication database must be a superuser. In addition, in system catalog table pg\_catalog.pg\_authid, column rolcatupdate must be set to true for this superuser. See Section 10.4.4. + +**Problem** + +`Unable to perform snapshot for subscription *subscription_name*. Reason: DB-42501: com.edb.util.PSQLException: ERROR: permission denied for relation pg_class.` + +**Resolution** + +Occurs when attempting a snapshot replication. The database user of the database receiving the snapshot must be a superuser. In addition, in system catalog table pg\_catalog.pg\_authid, column rolcatupdate must be set to true for this superuser. See [Disabling Foreign Key Constraints for Snapshot Replications](../../10_appendix/04_miscellaneous_xdb_processing_topics/#disable_foreign_key_constraints_for_snapshot_replication). + +**Problem** + +`Unable to perform snapshot for subscription *subscription_name*. Reason: org.postgresql.util.PSQLException: FATAL: no pg_hba.conf entry for host "*xxx*.\ *xxx*.\ *xx*.\ *xxx*", user "*user_name*", database "*db_name*", SSL off` + +**Resolution** Occurs when attempting a snapshot replication. The publication server running on host *xxx*.*xxx*.*xx*.*xxx* could not access the subscription database. Verify that the `pg_hba.conf` file on the subscription database server permits access from the publication server host. Unable to synchronize. Reason: FATAL: no `pg_hba.conf` entry for host "*xxx*.*xxx*.*xx*.*xxx*", user "*user\_name*", database "*db\_name*", SSL off + +*Reason:* Occurs during an implicit synchronization following snapshot replication. The publication server running on host *xxx*.*xxx*.*xx*.*xxx* could not access the subscription server’s controller database. Verify that the `pg_hba.conf` file on the subscription server permits access from the publication server host using network address *xxx*.*xxx*.*xx*.*xxx*. Unable to update publication database information. Reason: Publication control schema does not exist on target database. + +**Resolution** + +The control schema objects in the publication database may have been deleted or corrupted. For an Oracle publication database the control schema objects are located in the publication database user’s schema. For a Postgres or SQL Server publication database the metadata database objects are located in schemas `\_edb_replicator_pub, \_edb_replicator_sub,` and `\_edb_scheduler`. See [Dropping Replication Slots for Log-Based Synchronization Replication](../../10_appendix/03_resolving_problems/#drop_replication_slots_for_log_based). + +**Problem** + +`The user has insufficient privileges to manage publications. Grant required privileges as listed below and then proceed with operation.` + +**Resolution** An Oracle publication database user must have `CONNECT, RESOURCE`, and `CREATE ANY TRIGGER` privileges. diff --git a/product_docs/docs/eprs/6.2/10_appendix/03_resolving_problems/02_where_to_look_for_errors.mdx b/product_docs/docs/eprs/6.2/10_appendix/03_resolving_problems/02_where_to_look_for_errors.mdx new file mode 100644 index 00000000000..b075dfde3c5 --- /dev/null +++ b/product_docs/docs/eprs/6.2/10_appendix/03_resolving_problems/02_where_to_look_for_errors.mdx @@ -0,0 +1,142 @@ +--- +title: "Where to Look for Errors" +--- + + + + +There are a number of places to look to find more detailed information about a replication error that may have occurred. This section provides a guide as to where to look for various types of errors. + +## General Replication Status + +In the xDB Replication Console, view the replication history. See [Viewing Replication History](../../07_common_operations/#view_replication_history). + + + +## Snapshot Replication Failures + +View the log file found in the following path: + +**For Linux:** + +`/var/log/xdb-x.x/mtk.log` + +**For Windows:** + +`POSTGRES_HOME\.enterprisedb\xdb\x.x\mtk.log` + +`POSTGRES_HOME` is the home directory of the Windows postgres account (enterprisedb account for Advanced Server installed in Oracle compatible configuration mode). The specific location of POSTGRES\_HOME is dependent upon your version of Windows. The xDB Replication Server version number is represented by x.x. + +See Controlling Logging Level, Log File Sizes, and Rotation Count <controlling\_logging\_level> for more information on setting log file options. + +## Synchronization Replication Failures + +Check the database server log file. + +The typical default location of these files is: + +`POSTGRES_INSTALL_HOME/data/pg_log` + + + +## Publication and Subscription Server Startup Failures + +View the publication server and subscription server log files `pubserver.log[.n]` and `subserver.log[.n]` in the following directory: + +**For Linux:** + +`/var/log/xdb-x.x` + +**For Windows:** + +`POSTGRES_HOME\.enterprisedb\xdb\x.x` + +\[.n\] is an optional, integer suffix whose presence depends upon the logging.file.count configuration option described in Section 10.4.1.1. + +`POSTGRES_HOME` is the home directory of the Windows postgres account (enterprisedb account for Advanced Server installed in Oracle compatible configuration mode). The specific location of POSTGRES\_HOME is dependent upon your version of Windows. The xDB Replication Server version number is represented by x.x. + +
+ +
+ +Note + +
+ +The severity level of messages logged in these files can be controlled by a configuration option. See Controlling Logging Level, Log File Sizes, and Rotation Count <controlling\_logging\_level>. + +
+ +**For Linux only:** View the publication service and subscription service startup log files `edb-xdbpubserver.log` and `edb-xdbsubserver.log` as well as the service script log files edb-xdbpubserver\_script.log and edb-xdbsubserver\_script.log in directories /var/log/edb/xdbpubserver and /var/log/edb/xdbsubserver. These log files contain the output from the scripts used to start the publication server and subscription server, and can typically be used to confirm the port number on which the publication and subscription servers were started. + +
+ +
+ +Note + +
+ +The publication service and subscription service startup log files are not generated for Windows and Mac OS X operating systems. + +
+ +If there is an entry for a controller database in the xDB Replication Configuration file, verify that this controller database is accessible with the designated connection information. The controller database parameters are host, port, type, user, and password. + +The following is an example of the content of an xDB Replication Configuration file with an Oracle database as the controller database: + +``` text +#xDB Replication Server Configuration Properties +#Tue May 26 13:45:37 GMT-05:00 2015 +port=1521 +admin_password=ygJ9AxoJEX854elcVIJPTw\=\= +user=pubuser +admin_user=admin +type=oracle +password=ygJ9AxoJEX854elcVIJPTw\=\= +database=xe +host=192.168.2.23 +``` + +See [xDB Replication Configuration File](../../02_overview/03_replication_server_components_and_architecture/#xdb_replication_conf_file) +for information on the xDB Replication Configuration file. + +Also check the database server log file of the controller database. + +## Database Server Errors + +Check the database server log file. + +The typical default location of these files is: + +`POSTGRES_INSTALL_HOME/data/pg_log` + +## Oracle Errors + +For problems in Oracle, first find the directory locations of the log files by issuing the following commands in SQL\*Plus: + +``` text +SQL> SHOW PARAMETER USER_DUMP_DEST; + +NAME TYPE VALUE +------------------------------------ ----------- ------------------------------ +user_dump_dest string /usr/lib/oracle/xe/app/oracle/ + admin/XE/udump +``` + +The directory given by parameter `USER_DUMP_DEST` contains errors given by user processes. + +``` text +SQL> CONNECT system/password +Connected. +SQL> SHOW PARAMETER BACKGROUND_DUMP_DEST; + +NAME TYPE VALUE +------------------------------------ ----------- ------------------------------ +background_dump_dest string /usr/lib/oracle/xe/app/oracle/ + admin/XE/bdump +``` + +The directory given by parameter `BACKGROUND_DUMP_DEST` contains errors given by the Oracle background processes. + +Find the latest log file in the preceding directories to investigate the problem. diff --git a/product_docs/docs/eprs/6.2/10_appendix/03_resolving_problems/03_common_problems_checklist.mdx b/product_docs/docs/eprs/6.2/10_appendix/03_resolving_problems/03_common_problems_checklist.mdx new file mode 100644 index 00000000000..f73708e9243 --- /dev/null +++ b/product_docs/docs/eprs/6.2/10_appendix/03_resolving_problems/03_common_problems_checklist.mdx @@ -0,0 +1,49 @@ +--- +title: "Common Problem Checklist" +--- + + + + +Use the following checklist to verify that the proper configuration steps have been followed. Omission of one or more of these steps is a common source of errors. + +**Step 1:** Verify that the database server of the publication database, the database server of the subscription database (for single-master replication systems), and the database servers of the primary nodes (for multi-master replication systems) are all running. + +**Step 2:** When viewing information in the xDB Replication Console, click the Refresh icon in the toolbar to ensure you are viewing the most current information, especially after making a configuration change to your replication system. + +**Step 3:** Verify that the publication server and the subscription server (for single-master replication systems) are running. If they are not running and cannot be started see [Starting the Publication Server or Subscription Server](../../10_appendix/03_resolving_problems/#start_pub_or_sub_server). + +**Step 4:** If you are using an Oracle publication or subscription database, verify that the Oracle JDBC driver file has been copied to the `XDB_HOME/lib/jdbc` directory. `XDB_HOME` is the location where you installed xDB Replication Server. + +See [Enabling Access to Oracle](../../05_smr_operation/01_prerequisites/#enable_access_to_oracle). + +**Step 5:** Verify that the necessary privileges have been granted to the publication database user. + +For an Oracle publication database, verify that the publication database user has CONNECT, RESOURCE, and CREATE ANY TRIGGER privileges. + +See [Oracle Publication Database](../../05_smr_operation/01_prerequisites/#oracle_pub_database). + +For a SQL Server publication database, verify the following: + +- In the msdb database, verify that the database user mapped to the SQL Server login given in the publication database definition has `EXECUTE` and `SELECT` privileges on schema `dbo`. +- In the publication database, verify that the database user mapped to the SQL Server login given in the publication database definition has its default schema set to the schema containing the xDB Replication Server metadata database objects. +- For the same database user discussed in the prior paragraph, verify that this database user is either the owner of the schema containing the xDB Replication Server metadata database objects, or has the following privileges on this schema: `ALTER, EXECUTE, SELECT, INSERT, UPDATE,` and `DELETE`. +- For the same database user discussed in the prior paragraph, verify that this database user has `CREATE TABLE` and `CREATE PROCEDURE` privileges. +- For the same database user discussed in the prior paragraph, verify that this database user has ALTER privilege on the publication tables. +- For any database user that will be updating the publication tables, verify that these database users have `EXECUTE, SELECT`, and `INSERT` privileges on the schema containing the xDB Replication Server metadata database objects. + +See [SQL Server Publication Database](../../05_smr_operation/01_prerequisites/#sql_server_pub_db). + +For a Postgres publication database in a single-master replication system, verify that the publication database user is a superuser and has the privilege to modify pg\_catalog tables. See [Postgres Publication Database](../../05_smr_operation/01_prerequisites/#postgres_pub_db). + +For the primary definition node in a multi-master replication system, verify that the publication database user is a superuser and has the privilege to modify pg\_catalog tables. See Section [Preparing the Primary definition node](../../06_mmr_operation/#prepare_pdn). + +For a primary node other than the primary definition node in a multi-master replication system, verify that the primary node database user is a superuser and has the privilege to modify pg\_catalog tables. See [Preparing Additional Primary nodes](../../06_mmr_operation/#prepare_add_pdn). + +**Step 6:** Verify that the necessary privileges have been granted to the subscription database user. + +For an Oracle subscription database, verify that the subscription database user has `CONNECT` and `RESOURCE` privileges. + +For a Postgres subscription database, verify that the subscription database user is a superuser and has the privilege to modify pg\_catalog tables. See [Preparing the Subscription Database](../../05_smr_operation/01_prerequisites/#preparing_sub_database). + +**Step 7 (For Linux only):** Verify that the network IP address returned by the `/sbin/ifconfig` command either matches the IP address associated with the host name in the /etc/hosts file (see [Network IP Addresses](../../05_smr_operation/01_prerequisites/#network_ip)), or matches the IP address specified with the `java.rmi.server.hostname` configuration option in the publication and subscription server configuration files (see [Assigning an IP Address for Remote Method Invocation](../../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/#assign_ip_adress_for_rmi)). diff --git a/product_docs/docs/eprs/6.2/10_appendix/03_resolving_problems/04_troubleshooting_areas.mdx b/product_docs/docs/eprs/6.2/10_appendix/03_resolving_problems/04_troubleshooting_areas.mdx new file mode 100644 index 00000000000..50a6d4a003d --- /dev/null +++ b/product_docs/docs/eprs/6.2/10_appendix/03_resolving_problems/04_troubleshooting_areas.mdx @@ -0,0 +1,547 @@ +--- +title: "Troubleshooting Areas" +--- + + + + +The following topics provide information on specific problem areas you may encounter. + + + +## Java Runtime Errors + +If errors are encountered regarding the Java Runtime Environment such as the Java program cannot be found or Java heap space errors, check the parameters set in the xDB Startup Configuration file `xdbReplicationServer-xx.config`. See [xDB Replication Configuration File](../../02_overview/03_replication_server_components_and_architecture/#xdb_replication_conf_file) for information on the xDB Startup Configuration file. + +The following is an example of the content of the xDB Startup Configuration file: + +``` text +#!/bin/sh + +JAVA_EXECUTABLE_PATH="/usr/bin/java" +JAVA_MINIMUM_VERSION=1.7 +JAVA_BITNESS_REQUIRED=64 +JAVA_HEAP_SIZE="-Xms256m -Xmx1536m" +PUBPORT=9051 +SUBPORT=9052 +``` + +If you make any changes to the parameters in the xDB Startup Configuration file, be sure to restart the publication server and subscription server after making the modifications. + + + +## Starting the Publication Server or Subscription Server + +
+ +
+ +Note + +
+ +The subscription server only applies to single-master replication systems. + +
+ +If you cannot start the publication server or the subscription server perform the following steps: + +**Step 1:** Check the `pubserver.log` and `subserver.log` files for errors. + +**Step 2:** Check the log file of the database server running the controller database for errors. + +**Step 3:** Verify that the user name and password in the xDB Replication Configuration file on the hosts running the publication server and subscription server match a database user name and password in the database server running the controller database that the publication server and subscription server are attempting to access. + +**Step 4:** If the controller database is a Postgres database, verify that the `pg_hba.conf` file of its Postgres database server has entries that allow access to the controller database from the IP addresses of the hosts running the publication server and subscription server by the user name in the xDB Replication Configuration file. + + + +## Deleting the Control Schema and Control Schema Objects + +The control schema completely describes the replication system. The control schema and its control schema objects must be complete and correct in order for replication to occur properly. In addition, the configuration and maintenance operations performed through the xDB Replication Console or the xDB Replication Server CLI cannot be accomplished properly unless the control schema is complete and correct. + +There may be occasions where the control schema becomes corrupted. Either one or more control schema tables containing metadata are inadvertently deleted, or the data within the control schema tables becomes corrupted. Typically, corruption occurs in the form of the first case – one or more control schema tables were deleted, or the entire control schema and its contents were deleted manually using an SQL utility rather than through the operation of the xDB Replication Console or xDB Replication Server CLI. + +In these situations, there may be no other choice than to remove all of the remaining control schema objects using the database management system’s deletion functions, which effectively deletes all replication systems managed by the control schema. + +The same control schema deletion procedure must be performed in all publication databases that share the same control schema information as the current controller database given in the xDB Replication Configuration file. + +From the viewpoint of the xDB Replication Console replication tree, a publication server that connects to the controller database has subordinate to it, the publication databases sharing the same control schema information. + +In the following example, the SMR publication database edb as well as the three MMR primary node databases `PDNnode`, `MMRnode_a`, and `MMRnode_b` are all managed by the same publication server, which connects to the controller database designated in the xDB Replication Configuration file. Thus, all publication databases `edb`, `PDNnode`, `MMRnode_a`, and `MMRnode_b` contain what should be the same control schema information. + +The control schema must be removed from all four publication databases if it is determined that the control schema is corrupted in any of the four publication databases. + +![Publication databases with shared controller database](/../../images/image295.png) + +Finally, the subscription databases of SMR systems contain a control schema object, which must be deleted as well. + +In the preceding example, subscription database `subdb` contains a control schema object that may have to be deleted if control schema deletion is performed on the publication database. + +The instructions in this section describe how to completely remove all control schema objects created by the xDB Replication Server product leaving just your original publication tables and any replicated subscription tables or publication tables of multi-master system nodes. Hence, the definition and framework for all existing single-master and multi-master replication systems are deleted. In effect, this simulates the situation when you have installed the xDB Replication Server product for the first time. + +After you have performed this deletion process, single-master replication systems must then be recreated following the directions in sections [Creating a Publication](../../05_smr_operation/02_creating_publication/#creating_publication) onward. A multi-master replication system must be recreated following the directions in sections [Creating a Publication](../../05_smr_operation/02_creating_publication/../../06_mmr_operation/#creating_publication_mmr) onward. + +Warning: Do not attempt this if any replication systems are running in production. All replication systems will become inoperable. This section describes what to look for in order to tell if the control schema is not complete, and if so, what must be deleted to completely remove the replication system. This section does not discuss the internal contents of the control schema objects. If all of the control schema objects are present, then review the checklist in Section [Common Problem Checklist](../../10_appendix/03_resolving_problems/#common_problems_checklist) before proceeding with deletion of the control schema as it is fairly unlikely that the content of a control schema table becomes corrupted. + +If you decide that you must delete all of the control schema objects, follow the steps as discussed in the following: + +**Step 1:** Stop the publication server. + +**Step 2:** Stop the subscription server. + +**Step 3:** Look for the control schema objects contained within a publication database. In the example used in this section, pubuser is the publication database user name. The publication consists of two tables – dept and emp. + +**For Oracle only:** See [Oracle Control Schema Objects](../../05_smr_operation/02_creating_publication/#ora_control_schema_objects) for a list of Oracle control schema objects. + +**For SQL Server only:** See [SQL Control Schema Objects](../../05_smr_operation/02_creating_publication/#sql_control_schema_objects) for a list of SQL Server control schema objects. + +**For Postgres only:** See [PostgreSQL Control Schema Objects](../../05_smr_operation/02_creating_publication/#postgres_control_schema_objects) for a list of Postgres control schema objects. + +**Step 4:** If the schema that is supposed to contain the control schema objects (the publication database user name for Oracle, or the control schema you created or selected when configuring a SQL Server publication database along with `_edb_replicator_pub`, `_edb_replicator_sub`, and `_edb_scheduler`, or `_edb_replicator_pub, _edb_replicator_sub`, and `_edb_scheduler` for Postgres) is missing, or there are missing database objects under the control schema, then you may need to complete the process of removing all remaining control schema objects. + +If you decide to undergo this procedure, you must remove the control schema objects from all publication databases. You must also remove all subscription metadata objects from the subscription databases. Proceed with Step 7 and repeat Step 7 for all publication databases. Then proceed with Step 8 and repeat Step 8 for all subscription databases. + +If the control schema objects look intact, repeat Step 3 for all other publication databases. If the control schema objects of all publication databases appear intact, then proceed with Step 5. + +**Step 5:** For single-master replication systems, the subscription database contains a single control schema object in the form of a table named rrep\_txset\_health. See [Subscription Metadata Object](../../05_smr_operation/03_creating_subscription/#subscription_metadata_object) for a listing of this control schema object for each type of subscription database. + +For each subscription database, verify the presence of this subscription metadata object. + +**Step 6:** If at this point, all control schemas and control schema objects appear intact in all publication databases and all subscription databases, then chances are that the problem lies elsewhere. Do not go proceed with any further steps in this section. Instead, recheck the checklist in Section 10.3.3. + +If it was determined that incomplete control schema objects exist, and you decide to go ahead with the deletion process, proceed with Step 7. + +**Step 7:** Repeat this step for every publication database to delete its control schema and control schema objects. + +**For Oracle only:** If the publication user name still exists, then log onto SQL\*Plus or any other Oracle database administration utility and drop all control schema objects owned by the publication user. Alternatively, you can drop the publication database user along with its database objects using the cascade option, but the publication database user must be recreated and privileges reassigned if you intend to rebuild your replication systems. See Section 5.1.4 for directions on creating the publication database user. The following example illustrates use of the cascade option: + +``` text +SQL> CONNECT system/password +Connected. +SQL> DROP USER pubuser CASCADE; + +User dropped. +``` + +**For SQL Server only:** If any of the control schema objects listed in Step 3 still exist, then log onto the SQL Server command line program, sqlcmd, or SQL Server Management Studio and drop these objects. The following example assumes some of the control schema objects were created under schema `pubuser`. The other control schema objects are created under `_edb_replicator_pub, _edb_replicator_sub,` and `_edb_scheduler`. The publication tables are `dept` and `emp` located in schema `edb`. + +The following example shows how to delete the jobs in the `msdb` database: + +``` text +1> USE msdb; +2> GO +Changed database context to 'msdb'. +1> EXEC sp_delete_job @job_name = 'rrep_cleanup_job_edb'; +2> GO +1> EXEC sp_delete_job @job_name = 'rrep_txset_job_edb'; +2> GO +The next example shows the deletion of the triggers on the non-snapshot only publication tables: +1> USE edb; +2> GO +Changed database context to 'edb'. +1> DROP TRIGGER edb.rrpd_edb_dept; +2> DROP TRIGGER edb.rrpi_edb_dept; +3> DROP TRIGGER edb.rrpu_edb_dept; +4> DROP TRIGGER edb.rrpd_edb_emp; +5> DROP TRIGGER edb.rrpi_edb_emp; +6> DROP TRIGGER edb.rrpu_edb_emp; +7> GO +``` + +The control schema objects under the `_edb_replicator_pub` schema are dropped as shown by the following: + +``` text +1> USE edb; +2> GO +Changed database context to 'edb'. +1> DROP TABLE _edb_replicator_pub.rrep_lock; +2> DROP TABLE _edb_replicator_pub.rrep_MMR_pub_group; +3> DROP TABLE _edb_replicator_pub.rrep_MMR_txset; +4> DROP TABLE _edb_replicator_pub.rrep_properties; +5> DROP TABLE _edb_replicator_pub.rrep_publication_subscriptions; +6> DROP TABLE _edb_replicator_pub.rrep_publication_tables; +7> DROP TABLE _edb_replicator_pub.rrep_tables; +8> DROP TABLE _edb_replicator_pub.rrep_tx_monitor; +9> DROP TABLE _edb_replicator_pub.rrep_txset; +10> DROP TABLE _edb_replicator_pub.rrep_txset_health; +11> DROP TABLE _edb_replicator_pub.rrep_txset_log; +12> DROP TABLE _edb_replicator_pub.xdb_cleanup_conf; +13> DROP TABLE _edb_replicator_pub.xdb_conflicts; +14> DROP TABLE _edb_replicator_pub.xdb_conflicts_options; +15> DROP TABLE _edb_replicator_pub.xdb_events; +16> DROP TABLE _edb_replicator_pub.xdb_events_status; +17> DROP TABLE _edb_replicator_pub.xdb_MMR_pub_group; +18> DROP TABLE _edb_replicator_pub.xdb_pub_database; +19> DROP TABLE _edb_replicator_pub.xdb_pub_table_replog; +20> DROP TABLE _edb_replicator_pub.xdb_pub_replog; +21> DROP TABLE _edb_replicator_pub.xdb_publication_filter; +22> DROP TABLE _edb_replicator_pub.xdb_publication_filter_rule; +23> DROP TABLE _edb_replicator_pub.xdb_publication_subscriptions; +24> DROP TABLE _edb_replicator_pub.xdb_publications; +25> DROP TABLE _edb_replicator_pub.xdb_pubtables_ignoredcols; +26> DROP TABLE _edb_replicator_pub.xdb_sub_servers; +27> GO +``` + +**For SQL Server 2008 only:** Drop the following control schema objects when the publication database is SQL Server 2008: + +``` text +1> USE edb; +2> GO +Changed database context to 'edb'. +1> DROP PROCEDURE _edb_replicator_pub.nextval; +2> DROP PROCEDURE _edb_replicator_pub.sp_createsequence; +3> DROP PROCEDURE _edb_replicator_pub.sp_dropsequence; +4> DROP TABLE _edb_replicator_pub.rrep_common_seq; +5> DROP TABLE _edb_replicator_pub.rrep_tx_seq; +6> DROP TABLE _edb_replicator_pub.rrep_txset_seq; +7> GO +``` + +**For SQL Server 2012, 2014 only:** Drop the following control schema objects when the publication database is SQL Server 2012 or 2014: + +``` text +1> USE edb; +2> GO +Changed database context to 'edb'. +1> DROP SEQUENCE _edb_replicator_pub.rrep_tx_seq; +2> DROP SEQUENCE _edb_replicator_pub.rrep_txset_seq; +3> DROP SEQUENCE _edb_replicator_pub.rrep_common_seq; +4> GO +``` + +Drop the `_edb_replicator_pub` control schema: + +> 1> USE edb; 2> GO +> +> Changed database context to `edb`. +> +> 1> DROP SCHEMA \_edb\_replicator\_pub; 2> GO + +The control schema objects under the`_edb_replicator_sub` schema as well as the schema itself are dropped as shown by the following. + +
+ +
+ +Note + +
+ +**(For SQL Server 2012, 2014):** When the publication database is SQL Server 2012 or 2014, the first table in the following list, `rrep_common_seq`, does not exist. Therefore do not issue the first `DROP TABLE` + +`_edb_replicator_sub.rrep_common_seq` command. + +``` text +1> USE edb; +2> GO +Changed database context to 'edb'. +1> DROP TABLE _edb_replicator_sub.rrep_common_seq; +2> DROP TABLE _edb_replicator_sub.xdb_sub_database; +3> DROP TABLE _edb_replicator_sub.xdb_subscription_tables; +4> DROP TABLE _edb_replicator_sub.xdb_subscriptions; +5> DROP TABLE _edb_replicator_sub.xdb_tables; +6> DROP SCHEMA _edb_replicator_sub; +7> GO +``` + +
+ +The control schema objects under the `_edb_scheduler` schema as well as the schema itself are dropped as shown by the following: + +``` text +1> USE edb; +2> GO +Changed database context to 'edb'. +1> DROP TABLE _edb_scheduler.sch_pub_BLOB_TRIGGERS; +2> DROP TABLE _edb_scheduler.sch_pub_CALENDARS; +3> DROP TABLE _edb_scheduler.sch_pub_CRON_TRIGGERS; +4> DROP TABLE _edb_scheduler.sch_pub_SIMPLE_TRIGGERS; +5> DROP TABLE _edb_scheduler.sch_pub_TRIGGER_LISTENERS; +6> DROP TABLE _edb_scheduler.sch_pub_FIRED_TRIGGERS; +7> DROP TABLE _edb_scheduler.sch_pub_TRIGGERS; +8> DROP TABLE _edb_scheduler.sch_pub_JOB_LISTENERS; +9> DROP TABLE _edb_scheduler.sch_pub_JOB_DETAILS; +10> DROP TABLE _edb_scheduler.sch_pub_LOCKS; +11> DROP TABLE _edb_scheduler.sch_pub_PAUSED_TRIGGER_GRPS; +12> DROP TABLE _edb_scheduler.sch_pub_SCHEDULER_STATE; +13> DROP TABLE _edb_scheduler.sch_sub_BLOB_TRIGGERS; +14> DROP TABLE _edb_scheduler.sch_sub_CALENDARS; +15> DROP TABLE _edb_scheduler.sch_sub_CRON_TRIGGERS; +16> DROP TABLE _edb_scheduler.sch_sub_SIMPLE_TRIGGERS; +17> DROP TABLE _edb_scheduler.sch_sub_TRIGGER_LISTENERS; +18> DROP TABLE _edb_scheduler.sch_sub_FIRED_TRIGGERS; +19> DROP TABLE _edb_scheduler.sch_sub_TRIGGERS; +20> DROP TABLE _edb_scheduler.sch_sub_JOB_LISTENERS; +21> DROP TABLE _edb_scheduler.sch_sub_JOB_DETAILS; +22> DROP TABLE _edb_scheduler.sch_sub_LOCKS; +23> DROP TABLE _edb_scheduler.sch_sub_PAUSED_TRIGGER_GRPS; +24> DROP TABLE _edb_scheduler.sch_sub_SCHEDULER_STATE; +25> DROP SCHEMA _edb_scheduler; +26> GO +``` + +The control schema objects under the `pubuser` schema are dropped as shown by the following: + +``` text +1> USE edb; +2> GO +Changed database context to 'edb'. +1> DROP FUNCTION pubuser.getPackageVersionNumber; +2> DROP PROCEDURE pubuser.CleanupShadowTables; +3> DROP PROCEDURE pubuser.ConfigureCleanUpJob; +4> DROP PROCEDURE pubuser.ConfigureCreateTxSetJob; +5> DROP PROCEDURE pubuser.CreateMultiTxSet; +6> DROP PROCEDURE pubuser.CreateTableLogTrigger; +7> DROP PROCEDURE pubuser.CreateTxSet; +8> DROP PROCEDURE pubuser.CreateTxSet_old; +9> DROP PROCEDURE pubuser.CreateUniTxSet; +10> DROP PROCEDURE pubuser.GetNewTxsCount; +11> DROP PROCEDURE pubuser.JobCleanup; +12> DROP PROCEDURE pubuser.JobCreateTxSet; +13> DROP PROCEDURE pubuser.LoadPubTableList; +14> DROP PROCEDURE pubuser.RemoveCleanupJob; +15> DROP PROCEDURE pubuser.RemoveCreateTxSetJob; +16> DROP TABLE pubuser.rrst_edb_dept; +17> DROP TABLE pubuser.rrst_edb_emp; +18> GO +``` + +**For Postgres only:** If any of the schemas `_edb_replicator_pub, _edb_replicator_sub,` or`_edb_scheduler` still exist in the publication database, drop the schema and all of its database objects. The following example shows a connection established in psql to the publication database edb. The `DROP SCHEMA CASCADE` statement is then used to drop the schemas. + +``` text +edb=# \c edb enterprisedb +You are now connected to database "edb" as user "enterprisedb". + +edb=# DROP SCHEMA _edb_replicator_pub CASCADE; +NOTICE: drop cascades to 51 other objects +DETAIL: drop cascades to sequence _edb_replicator_pub.rrep_common_seq +drop cascades to sequence _edb_replicator_pub.rrep_tx_seq + . + . + . +DROP SCHEMA + +edb=# DROP SCHEMA _edb_replicator_sub CASCADE; +NOTICE: drop cascades to 9 other objects +DETAIL: drop cascades to sequence _edb_replicator_sub.rrep_common_seq +drop cascades to table _edb_replicator_sub.xdb_sub_database + . + . + . +DROP SCHEMA + +edb=# DROP SCHEMA _edb_scheduler CASCADE; +NOTICE: drop cascades to 40 other objects +DETAIL: drop cascades to table _edb_scheduler.sch_pub_job_details +drop cascades to table _edb_scheduler.sch_pub_job_listeners + . + . + . +DROP SCHEMA +``` + +For synchronization replication with the trigger-based method, in the schema containing the publication tables, drop the triggers and trigger functions associated with the publication tables: + +``` text +edb=# SET search_path TO edb; +SET +edb=# DROP FUNCTION rrpd_edb_dept_tgfunc() CASCADE; +NOTICE: drop cascades to trigger rrpd_edb_dept on table dept +DROP FUNCTION +edb=# DROP FUNCTION rrpi_edb_dept_tgfunc() CASCADE; +NOTICE: drop cascades to trigger rrpi_edb_dept on table dept +DROP FUNCTION +edb=# DROP FUNCTION rrpu_edb_dept_tgfunc() CASCADE; +NOTICE: drop cascades to trigger rrpu_edb_dept on table dept +DROP FUNCTION +edb=# DROP FUNCTION rrpd_edb_emp_tgfunc() CASCADE; +NOTICE: drop cascades to trigger rrpd_edb_emp on table emp +DROP FUNCTION +edb=# DROP FUNCTION rrpi_edb_emp_tgfunc() CASCADE; +NOTICE: drop cascades to trigger rrpi_edb_emp on table emp +DROP FUNCTION +edb=# DROP FUNCTION rrpu_edb_emp_tgfunc() CASCADE; +NOTICE: drop cascades to trigger rrpu_edb_emp on table emp +DROP FUNCTION +``` + +**Step 8:** Repeat this step for every subscription database to delete its control schema and control schema object. + +For single-master replication systems, the subscription database contains a single control schema object in the form of a table named rrep\_txset\_health. Delete this table in all subscription databases. For SQL Server and Postgres subscription databases, delete the parent schema \_edb\_replicator\_sub as well. + +For Oracle subscription databases, the parent schema is not generated by xDB Replication Server, so it your decision as to whether to keep or delete the parent schema. + +**For Oracle only:** The `RREP_TXSET_HEALTH` table is created in the subscription database user’s schema. Drop this table. + +``` text +SQL> CONNECT subuser/password +Connected. +SQL> DROP TABLE rrep_txset_health; + +Table dropped. +``` + +**For SQL Server only:** The `rrep_txset_health` table is created in the schema named \_edb\_replicator\_sub. Drop this table and schema. + +``` text +1> USE subdb; +2> GO +Changed database context to 'subdb'. +1> DROP TABLE _edb_replicator_sub.rrep_txset_health; +2> GO +1> DROP SCHEMA _edb_replicator_sub; +2> GO +``` + +**For Postgres only:** The `rrep_txset_health` table is created in the schema named `_edb_replicator_sub`. Drop this table and schema. + +``` text +edb=# \c subdb enterprisedb +You are now connected to database "subdb" as user "enterprisedb". +subdb=# DROP SCHEMA _edb_replicator_sub CASCADE; +NOTICE: drop cascades to table _edb_replicator_sub.rrep_txset_health +DROP SCHEMA +``` + +**Step 9:** In the xDB Replication Configuration file, delete the lines containing the following parameters: user, password, host, port, database, and type. + +Keep the lines with the following parameters: admin\_user, admin\_password, and license\_key (if it exists). + +See [xDB Replication Configuration File](../../02_overview/03_replication_server_components_and_architecture/#xdb_replication_conf_file) for information on the xDB Replication Configuration file. See [Post Installation Host Environment](../../03_installation/#post_installation_host_environment) for the file system location of the xDB Replication Configuration file. + +The absence of these parameters prevents the publication server and subscription server from attempting to connect to this database upon publication and subscription server startup. + +The xDB Replication Configuration file should appear as follows without the controller database connection and authentication information: + +``` text +#xDB Replication Server Configuration Properties +#Fri Jan 30 17:34:06 GMT-05:00 2015 +admin_password=ygJ9AxoJEX854elcVIJPTw\=\= +admin_user=enterprisedb +``` + +**Step 10:** Start the publication server. + +**Step 11:** Start the subscription server. + +**Step 12:** In the replication tree you should see the following: + +![Replication tree after removal of all control schema objects](/../../images/image296.png) + +All the nodes under the SMR and MMR type nodes beneath the Publication Server node, and under the Subscription Server node no longer appear. + +**Step 13:** You will need to recreate the replication system as described in sections [Creating a Publication](../../05_smr_operation/02_creating_publication/#creating_publication) onward for a single-master replication system. See sections [Creating a Publication](../../05_smr_operation/02_creating_publication/../../06_mmr_operation/#creating_publication_mmr) onward for a multi-master replication system. + + + +## Dropping Replication Slots for Log-Based Synchronization Replication + +As described in Section [Logical Replication Slots](../../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#logical_replication_slots) logical replication slots are used for the log-based method of synchronization replication. While a log-based replication system is in use, these replication slots remain connected to the Postgres databases. When the replication system is removed, these replication slots are also deleted. + +There may be circumstances where it is desired to drop a Postgres database used in a replication system, but the replication system could not be removed according to the normal procedure of using the xDB Replication Console or the xDB Replication Server CLI. + +In such cases, it is assumed that the replication system has somehow become corrupted, and it is simply desired to delete the replication system components including some of the databases used in the replication system. + +When the log-based method is used, certain additional procedures may be required to remove the replication slots before dropping the databases. Postgres does not permit a database to be dropped if a replication slot is connected to it. The following describes how the replication slots can be removed in order to drop a database. + +Warning: Do not attempt this if any replication systems are running in production. All replication systems will become inoperable. + +Replication slots can be displayed by the following query on the database server containing the databases to be dropped: + +``` text +edb=# SELECT slot_name, slot_type, database, active, active_pid FROM pg_replication_slots; + slot_name | slot_type | database | active | active_pid +-------------+-----------+----------+--------+------------ + xdb_14793_5 | logical | edb | t | 5288 + xdb_79910_5 | logical | MMRnode | t | 5327 +(2 rows) +``` + +The active column indicates whether or not the replication slot is active. To deactivate an active replication slot, first stop the publication server. If the active column of the replication slot now displays f for false then you can remove the replication slot. + +If the replication slot is still active, then you can deactivate it by terminating the process shown in the `active_pid` column with the following command: + +``` text +edb=# SELECT pg_terminate_backend(5327); + pg_terminate_backend +---------------------- + t +(1 row) +``` + +The following now shows that replication slot xdb\_79910\_5 for database MMRnode has been deactivated: + +``` text +edb=# SELECT slot_name, slot_type, database, active, active_pid FROM pg_replication_slots; + slot_name | slot_type | database | active | active_pid +-------------+-----------+----------+--------+------------ + xdb_14793_5 | logical | edb | t | 5288 + xdb_79910_5 | logical | MMRnode | f | +(2 rows) +``` + +Drop the replication slot with the following command by specifying the slot name: + +``` text +edb=# SELECT pg_drop_replication_slot('xdb_79910_5'); + pg_drop_replication_slot +-------------------------- + +(1 row) +``` + +Now, the dropped replication slot does not appear when the pg\_replication\_slots directory is queried: + +``` text +edb=# SELECT slot_name, slot_type, database, active, active_pid FROM pg_replication_slots; + slot_name | slot_type | database | active | active_pid +-------------+-----------+----------+--------+------------ + xdb_14793_5 | logical | edb | t | 5288 +(1 row) +``` + +The database can now be successfully dropped: + +``` text +edb=# DROP DATABASE MMRnode; +DROP DATABASE +``` + +In addition, replication origins can be displayed with the following command: + +``` text +edb=# SELECT * FROM pg_replication_origin; + roident | roname +---------+----------------------- + 1 | xdb_MMRnode_emp_pub_1 + 2 | xdb_edb_emp_pub_6 +(2 rows) +``` + +The following command can be used to remove a replication origin: + +``` text +edb=# SELECT pg_replication_origin_drop('xdb_MMRnode_emp_pub_1'); + pg_replication_origin_drop +---------------------------- + +(1 row) +``` + +The following shows this replication origin has been removed: + +``` text +edb=# SELECT * FROM pg_replication_origin; + roident | roname +---------+----------------------- + 2 | xdb_edb_emp_pub_6 +(1 row) +``` + +For additional information on logical decoding functions see Section 9.26.6 `Replication Functions` under Section 9.26 `System Administration Functions` in the PostgreSQL Core Documentation located at: + +> + +After performing this process, it is unlikely that removal of the entire replication system can be done with the xDB Replication Console or the xDB Replication Server CLI. Complete removal of the remaining replication system components must be done manually. Part of this process is removing the control schema and control schema objects from the publication databases. See Section [Dropping Replication Slots for Log-Based Synchronization Replication](../../10_appendix/03_resolving_problems/#drop_replication_slots_for_log_based) for information on this procedure. diff --git a/product_docs/docs/eprs/6.2/10_appendix/03_resolving_problems/index.mdx b/product_docs/docs/eprs/6.2/10_appendix/03_resolving_problems/index.mdx new file mode 100644 index 00000000000..3caceac4d5c --- /dev/null +++ b/product_docs/docs/eprs/6.2/10_appendix/03_resolving_problems/index.mdx @@ -0,0 +1,14 @@ +--- +title: "Resolving Problems" +--- + + + + +This section contains tips for locating and correcting various problems that may occur. + +
+ +error\_messages where\_to\_look\_for\_errors common\_problems\_checklist troubleshooting\_areas + +
diff --git a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/01_controlling_logging_level.mdx b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/01_controlling_logging_level.mdx new file mode 100644 index 00000000000..4861e0ac8b9 --- /dev/null +++ b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/01_controlling_logging_level.mdx @@ -0,0 +1,142 @@ +--- +title: "Controlling Logging Level, Log File Sizes, and Rotation Count" +--- + + + + +
+ +
+ +Note + +
+ +The options described in this section apply to the publication server and the subscription server unless otherwise specified. + +
+ +The following options control various aspects of message logging in the publication server log file, the subscription server log file, and the Migration Toolkit log file. + +See [Publication and Subscription Server Startup Failures](../../../10_appendix/03_resolving_problems/#pub_and_sub_startup_failures) for additional information on the publication and subscription server log files. + +See [Snapshot Replication Failures](../../../10_appendix/03_resolving_problems/#snapshot_replication_failures) for additional information on the Migration Toolkit log file. + +**logging.level** + +Set the `logging.level` option to control the severity of messages written to the publication server log file and the subscription server log file. + +`logging.level={OFF | SEVERE | WARNING | INFO | CONFIG | FINE | FINER | FINEST | ALL}` + +The default value is `WARNING`. + +**logging.file.size** + +Set the `logging.file.size` option to control the maximum file size (in megabytes) of the publication server log file and the subscription server log file. + +
+ +
+ +Note + +
+ +If logging.file.count is set to 0, the setting of logging.file.size is ignored. The log file is allowed to grow without limit. + +
+ +`logging.file.size=n` + +The default value is 50 megabytes. + +`logging.file.count` + +Set the `logging.file.count` option to control the number of files in the log file rotation history of the publication server log file and the subscription server log file. + +`logging.file.count=n` + +The default value for n is 20. + +A non-zero value of n specifies the maximum number of log files that are to be created. + +
+ +
+ +Note + +
+ +In the remaining discussion the publication server log file named `pubserver.log` is used as an example. For the subscription server, the log file is named `subserver.log`. + +
+ +- Specify a value of 0 to disable log file rotation and create a single, unlimited size log file named `pubserver.log`. This log file will grow to an unlimited size ignoring any setting of logging.file.size. +- Specify a value of 1 to disable log file rotation and create a single, limited size log file named `pubserver.log`. The log file is deleted and a new one is created each time the log file reaches the size limit set by `logging.file.size`. +- Specify a value of 2 or greater to enable log file rotation. All log file names have an integer suffix (for example, pubserver.log.0, pubserver.log.1, pubserver.log.2). + +When log file rotation is enabled, the log file with the greatest integer suffix contains the oldest messages. When there are enough messages to generate every file in the history rotation, the oldest messages are in pubserver.log.n-1 where n is the setting of logging.file.count. Log file pubserver.log.0 is the current, active log file containing the most recent messages. + +When log file rotation is enabled and the current, active log file (pubserver.log.0) reaches the size specified by logging.file.size, then the following events occur: + +- The log file containing the oldest messages (pubserver.log.n-1) is deleted. +- Each remaining log file is renamed with the next greater integer suffix (pubserver.log.m is renamed to pubserver.log.m+1 with m varying from 0 to n-2). +- A new, active log file is created (pubserver.log.0). + +**mtk.logging.file.size** + +
+ +
+ +Note + +
+ +This option applies to the publication server only. + +
+ +Set the `mtk.logging.file.size` option to control the maximum file size (in megabytes) of the Migration Toolkit log file. + +`mtk.logging.file.size=n` + +The default value is 50 megabytes. + +**mtk.logging.file.count** + +
+ +
+ +Note + +
+ +This option applies to the publication server only. + +
+ +Set the `mtk.logging.file.count` option to control the number of files in the log file rotation history of the Migration Toolkit log file. + +`mtk.logging.file.count=n` + +The default value for n is 20. + +A non-zero value of n specifies the maximum number of history log files that are to be created. + +- Specify a value of 0 to disable log file rotation and create a single, limited size log file named mtk.log. The log file is deleted and a new one is created each time the log file reaches the size limit set by mtk.logging.file.size. +- Specify a value of 1 or greater to enable log file rotation. All log file names have an integer suffix (for example, mtk.log.1, mtk.log.2). + +When log file rotation is enabled, the log file with the greatest integer suffix contains the oldest messages. When there are enough messages to generate every file in the history rotation, the oldest messages are in mtk.log.n where n is the setting of mtk.logging.file.count. + +Log file `mtk.log` is the current, active log file containing the most recent messages. + +When the current, active log file (mtk.log) reaches the size specified by mtk.logging.file.size, then the following events occur: + +- The log file containing the oldest messages (mtk.log.n) is deleted. +- Each remaining log file with a suffix is renamed with the next greater integer suffix (`mtk.log.m` is renamed to `mtk.log.m+1` with m varying from 1 to n-1). +- Log file `mtk.log` is renamed to `mtk.log.1`. +- A new, active log file is created (`mtk.log`). diff --git a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/02_replacing_null_characters.mdx b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/02_replacing_null_characters.mdx new file mode 100644 index 00000000000..e53b32d55bb --- /dev/null +++ b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/02_replacing_null_characters.mdx @@ -0,0 +1,71 @@ +--- +title: "Replacing Null Characters" +--- + + + + +
+ +
+ +Note + +
+ +The options described in this section apply to the publication server only. + +
+ +A character consisting of binary zeros (also called the null character string) and represented as 000 in octal or 0x00 in hexadecimal can result in errors when attempting to load such data into a Postgres character column. + +You may get the following error in the Migration Toolkit log file when performing a snapshot replication of an Oracle table that contains the null character string: + +``` text +Loading Table Data in 8 MB batches... +Disabling FK constraints & triggers on edb.null_test before truncate... +Truncating table NULL_TEST before data load... +Disabling indexes on edb.null_test before data load... +Loading Table: NULL_TEST ... +Error Loading Data into Table: NULL_TEST: ERROR: invalid byte sequence for encoding "UTF8": 0x00 + Where: COPY null_test, line 2 +``` + +The same circumstance may also produce the following error in the Migration Toolkit log file: + +``` text +Loading Table Data in 8 MB batches... +Disabling FK constraints & triggers on edb.null_clob before truncate... +Disabling indexes on edb.null_clob before data load... +Loading Large Objects into table: NULL_CLOB ... +[NULL_CLOB] Migrated 1 rows. +com.edb.util.PSQLException: Zero bytes may not occur in string parameters., Skipping Batch +``` + +If any of these errors occur, you can set an option that will convert each null character encountered in character columns of the source tables to a space character, or to any other character of your choice, before loading the target tables. + +
+ +
+ +Note + +
+ +This option does not alter null characters encountered in columns with binary data types such as Oracle RAW and BLOB data types. + +
+ +Set the following option: + +`replaceNullChar=true` + +This option results in the substitution of a space character for each null character encountered in the source character data. If you want to use a character other than a space character to replace each null character, use the following option in addition to replaceNullChar=true. + +`nullReplacementChar=char` + +char is a single character you want to substitute for the null character. For example, the following combination will replace each null character with the hash symbol \#. + +`replaceNullChar=true` + +`nullReplacementChar=#` diff --git a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/03_schema_migration_options.mdx b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/03_schema_migration_options.mdx new file mode 100644 index 00000000000..72e1b8d1b42 --- /dev/null +++ b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/03_schema_migration_options.mdx @@ -0,0 +1,30 @@ +--- +title: "Schema Migration Options" +--- + + + + +
+ +
+ +Note + +
+ +The option described in this section applies to the subscription server only. + +
+ +The option in this section controls how certain aspects of the publication database schema are migrated to the subscription database. + +**skipCheckConst** + +By default, column CHECK constraints from publication tables are migrated to the subscription table definitions when the subscription is created. Set this option to true if you do not want CHECK constraints as part of the subscription table definitions. + +Setting this option to true is useful if the CHECK constraint is based on a built-in function supported by the publication database server, and this built-in function does not exist in the subscription database server. + +> `skipCheckConst={true | false}` + +The default value is false. diff --git a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/04_replicate_oracle_partitioned_tables.mdx b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/04_replicate_oracle_partitioned_tables.mdx new file mode 100644 index 00000000000..eaca5178ffb --- /dev/null +++ b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/04_replicate_oracle_partitioned_tables.mdx @@ -0,0 +1,88 @@ +--- +title: "Replicating Oracle Partitioned Tables" +--- + + + + +
+ +
+ +Note + +
+ +The option described in this section must be set to the same value for both the publication server and the subscription server. + +
+ +
+ +
+ +Note + +
+ +This feature applies only for subscriptions in an Advanced Server database. It does not apply to subscriptions in a PostgreSQL database. + +
+ +In Oracle, table partitioning provides the capability to store table rows in different physical locations (tablespaces) according to a rule defined on the table. + +The most common types of Oracle table partitioning are the following: + +- Range Partitioning. Ranges of values defined on a column determine which tablespace a row is stored. +- List Partitioning. A list of values defined on a column determines which tablespace a row is stored. +- Hash Partitioning. An algorithm on a column generates a hash key, which determines which tablespace a row is stored. + +
+ +
+ +Note + +
+ +If you are using Advanced Server, table partitioning using Oracle compatible table partitioning syntax is an available feature. See the section on table partitioning in the Database Compatibility for Oracle Developer’s Guide for information. See [Replicating Postgres Partitioned Tables](../../../07_common_operations/#replicating_postgres_partitioned_tables) for information on including Postgres partitioned tables in a replication system. The `importPartitionAsTable` option described in this section applies only to table partitioning in an Oracle database. + +
+ +The `importPartitionAsTable` option controls what happens when an Oracle partitioned table is part of the publication. + +`importPartitionAsTable={true | false}` + +The default value is `false`. + +Depending upon the Oracle partitioned table type and the setting of the `importPartitionAsTable` option one of the following may occur: + +- A set of inherited tables is created in Advanced Server to which the Oracle partitioned table is replicated. The rows can be stored in different physical locations. +- A plain, single table with no inheritance is created in Advanced Server to which the Oracle partitioned table is replicated. All rows are stored in one physical location. +- No table is created in Advanced Server for the Oracle partitioned table, and an error message is written to the Migration Toolkit log file. + +When `importPartitionAsTable=false` (the default setting), the following occurs: + +- A list partitioned table is replicated as a set of inherited Advanced Server tables. +- A range partitioned table is replicated as a set of inherited Advanced Server tables. +- A hash partitioned table is not replicated to Advanced Server, and an error message is written to the Migration Toolkit log file. + +
+ +
+ +Note + +
+ +If there are subscription tables created as sets of Advanced Server inherited tables, then you must also set the `enableConstBeforeDataLoad` option in the publication server configuration file to true. See [Specifying a Custom URL for an Oracle JDBC Connection](../../../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/#specify_custom_url_for_oracle_jdbc) for information on the `enableConstBeforeDataLoad` option. + +
+ +When `importPartitionAsTable=true`, the following occurs: + +- A list partitioned table is replicated as a single Advanced Server table with no inheritance. +- A range partitioned table is replicated as a single Advanced Server table with no inheritance. +- A hash partitioned table is replicated as a single Advanced Server table with no inheritance. + +Setting the `importPartitionAsTable` option to true allows you to replicate a broader range of Oracle partitioned table types, but as normal Advanced Server tables without simulating partitions by using inheritance. diff --git a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/05_specify_custom_url_for_oracle_jdbc.mdx b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/05_specify_custom_url_for_oracle_jdbc.mdx new file mode 100644 index 00000000000..710794366aa --- /dev/null +++ b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/05_specify_custom_url_for_oracle_jdbc.mdx @@ -0,0 +1,30 @@ +--- +title: "Specifying a Custom URL for an Oracle JDBC Connection" +--- + + + + +
+ +
+ +Note + +
+ +The option described in this section applies to the publication server only. + +
+ +By default the xDB Replication Server supports the basic thin client URL pattern for an Oracle JDBC connection. If there is a requirement to specify custom connectivity credentials, specify the advanced URL using the following option. + +`oraJDBCCustomURL=customURL_string` + +The following is an example of custom connectivity to an Oracle database. + +``` text +oraJDBCCustomURL=jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=$HOST)(PORT=$PORT))(CONNECT_DATA=(SERVICE_NAME =$SERVICE_NAME)(SERVER=DEDICATED))) +``` + +The parameters prefixed with a dollar sign ($) are dynamically replaced based on the actual connection values specified when adding the Oracle publication database (see [Adding a Publication Database](../../../05_smr_operation/02_creating_publication/#adding_pub_database)). Alternatively, the parameters prefixed with a dollar sign can be replaced by hardcoded values in the URL string in which case these hardcoded values override what is specified when adding the publication database. diff --git a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/06_snapshot_replication_options.mdx b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/06_snapshot_replication_options.mdx new file mode 100644 index 00000000000..08d3db26e38 --- /dev/null +++ b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/06_snapshot_replication_options.mdx @@ -0,0 +1,50 @@ +--- +title: "Snapshot Replication Options" +--- + + + + +
+ +
+ +Note + +
+ +The options described in this section apply to the publication server only unless otherwise specified. + +
+ +The server configuration options discussed in this section apply to snapshot replications. + +**escapeTabDelimiter** + +When JDBC COPY is used in snapshot replication, the data delimiter between column values is an escaped tab character (t). Set this option to false if you do not want to escape the tab delimiter character. + +`escapeTabDelimiter={true | false}` + +The default value is `true`. + +**mtkCopyDelimiter** + +When JDBC COPY is used in snapshot replication, the data delimiter between column values is an escaped tab character (t). Set this option to change the data delimiter character. + +`mtkCopyDelimiter=c` + +`c` denotes the single replacement character for the data delimiter. + +The default value is `\t.` + +**enableConstBeforeDataLoad** + +The `enableConstBeforeDataLoad` option controls whether or not table constraints, including triggers, are re-enabled before loading data into target tables. The default process is that the tables are loaded first, and then the constraints are enabled afterwards. + +Activate this option if there are triggers that affect how data is loaded into the target tables. + +If there are target tables created as sets of Postgres inherited tables resulting from partitioned Oracle source tables, then this option must be enabled. + +`enableConstBeforeDataLoad={true | false}` + +The default value is `false.` diff --git a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/07_assign_ip_adress_for_rmi.mdx b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/07_assign_ip_adress_for_rmi.mdx new file mode 100644 index 00000000000..9dd6197c5ea --- /dev/null +++ b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/07_assign_ip_adress_for_rmi.mdx @@ -0,0 +1,43 @@ +--- +title: "Assigning an IP Address for Remote Method Invocation" +--- + + + + +
+ +
+ +Note + +
+ +The option described in this section applies to the publication server and the subscription server. + +
+ +**For Linux only:** + +An alternative method to modifying the /etc/hosts file so that the host name is associated with a non-loopback IP address as discussed in Section [Network IP Addressese](../../../05_smr_operation/01_prerequisites/#network_ip) is to specify the network IP address using the java.rmi.server.hostname option. + +In the publication server configuration file, set this option to the network IP address of the host running the publication server. + +In the subscription server configuration file, set this option to the network IP address of the host running the subscription server. + +`java.rmi.server.hostname=xxx.xxx.xx.xxx` + +For example, instead of modifying the /etc/hosts file to look like the following for a publication or subscription server running on host 192.168.2.19: + +``` text +#127.0.0.1 localhost.localdomain localhost +192.168.2.19 localhost.localdomain localhost +``` + +You can set the IP address in the server configuration file as shown by the following: + +``` text +#On Linux machines, the localhost to real IP may not give correct results. Hence +#users are advised to override the following property with server IP address +java.rmi.server.hostname=192.168.2.19 +``` diff --git a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/08_using_pgagent_job_scheduling.mdx b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/08_using_pgagent_job_scheduling.mdx new file mode 100644 index 00000000000..9b74add2ce0 --- /dev/null +++ b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/08_using_pgagent_job_scheduling.mdx @@ -0,0 +1,55 @@ +--- +title: "Using pgAgent Job Scheduling" +--- + + + + +
+ +
+ +Note + +
+ +The option described in this section applies to the publication server only. + +
+ +
+ +
+ +Note + +
+ +Using pgAgent job scheduling has significance only if Postgres is the publication database. + +
+ +
+ +
+ +Note + +
+ +You must have pgAgent installed and running on the host where the publication database resides. + +
+ +When the pgdbschedule option is set to true, xDB Replication Server uses the pgAgent job scheduler instead of the default Quartz job scheduler. + +When activated, pgAgent takes over the following scheduling tasks from Quartz: + +- Scheduling shadow table history cleanup in the publication database. See [Scheduling Shadow Table History Cleanup](../../../07_common_operations/#schedule_shadow_table_history_cleanup) for information on scheduling shadow table history cleanup. +- Scheduling transaction set creation. A transaction set creation job is scheduled to run every hour to create transaction sets from the updates on the source tables. Transaction sets are applied to the target tables. + +Unlike the Quartz scheduler, pgAgent can still run and perform its tasks even if the publication server is not running. + +`pgdbschedule={true | false}` + +The default value is `false`. diff --git a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/09_forcing_shadow_table_cleanup.mdx b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/09_forcing_shadow_table_cleanup.mdx new file mode 100644 index 00000000000..a99d9622663 --- /dev/null +++ b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/09_forcing_shadow_table_cleanup.mdx @@ -0,0 +1,26 @@ +--- +title: "Forcing Immediate Shadow Table Cleanup" +--- + + + + +
+ +
+ +Note + +
+ +The option described in this section applies to the publication server only. + +
+ +A cleanup job is provided that can be run on demand or on a schedule to remove dead (processed) tuples from the shadow tables (see [Managing History](../../../07_common_operations/#managing_history)). + +However, to perform even quicker cleanup scheduling, turn on this option to force the cleanup of shadow tables after every synchronization replication. + +`postSyncShadowTableCleanup={true | false}` + +The default value is `false.` diff --git a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/10_setting_event_history_cleanup.mdx b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/10_setting_event_history_cleanup.mdx new file mode 100644 index 00000000000..4cf93039620 --- /dev/null +++ b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/10_setting_event_history_cleanup.mdx @@ -0,0 +1,16 @@ +--- +title: "Setting Event History Cleanup Threshold" +--- + + + + +The event history cleanup job is scheduled to run every day at 12 AM to remove completed, historical, event and replication history data from the control schema `xdb_events`, `xdb_events_status`, `xdb_pub_replog`, and `xdb_pub_table_replog` tables that are older than n days. By default the history data older than seven days is removed. + +Specify a value of 0 to cleanup all, completed, event history and replication history data, regardless of its age. + +See [Cleaning Up Event History](../../../07_common_operations/#clean_event_history) for information on cleaning up event and replication history. + +`historyCleanupDaysThreshold=n` + +The default value is `7` days. diff --git a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/11_ddl_change_replication_table_locking.mdx b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/11_ddl_change_replication_table_locking.mdx new file mode 100644 index 00000000000..cbed4ced4b5 --- /dev/null +++ b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/11_ddl_change_replication_table_locking.mdx @@ -0,0 +1,28 @@ +--- +title: "DDL Change Replication Table Locking" +--- + + + + +
+ +
+ +Note + +
+ +The option described in this section applies to the publication server only. + +
+ +When the DDL change replication process is invoked, each affected table in the replication system is acquired in turn with an exclusive lock before the DDL change is applied to the table. + +Set `ddlChangeTableLock` to false if you do not want an exclusive lock placed on the table before applying the DDL change. This option should be set to false only if there are no write transactions expected on the target table. If write transactions do occur, they may not be recorded by the replication system. + +See [Replicating DDL Changes](../../../07_common_operations/08_replicating_ddl_changes/#replicating_ddl_changes) for information on DDL change replication. + +`ddlChangeTableLock={true | false}` + +The default value is `true`. diff --git a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/12_persisting_zero_txn_replication_hist.mdx b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/12_persisting_zero_txn_replication_hist.mdx new file mode 100644 index 00000000000..fc7cb763269 --- /dev/null +++ b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/12_persisting_zero_txn_replication_hist.mdx @@ -0,0 +1,26 @@ +--- +title: "Persisting Zero Transaction Count Replication History" +--- + + + + +
+ +
+ +Note + +
+ +The option described in this section applies to the publication server only. + +
+ +If you wish to maintain zero transaction count records in the replication history after the publication server is restarted, set persistZeroTxRepEvent to true. Otherwise, zero transaction count records are no longer available once the publication server is restarted. + +See Section 7.4 for information on viewing replication history. + +`persistZeroTxRepEvent={true | false}` + +The default value is `false`. diff --git a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/13_skipping_grants_of_table_level_user_privileges_on_mmr.mdx b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/13_skipping_grants_of_table_level_user_privileges_on_mmr.mdx new file mode 100644 index 00000000000..288b7e3045f --- /dev/null +++ b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/13_skipping_grants_of_table_level_user_privileges_on_mmr.mdx @@ -0,0 +1,32 @@ +--- +title: "Skipping Grants of Table Level User Privileges on MMR Target Tables" +--- + + + + +
+ +
+ +Note + +
+ +This option applies to the publication server only. + +
+ +When creating non-PDN nodes in a multi-master replication system, the publication server creates the publication tables and their corresponding shadow tables in the non-PDN node database. + +When `skipTablePrivileges` is set to false, which is the default value, the database user privileges on the publication tables in the primary definition node are granted to the same database users on the publication tables in the newly created non-PDN node. + +The required privileges are also granted to these database users on the corresponding shadow tables in the non-PDN node so these database users can perform updates on the publication tables and the changes are recorded in the corresponding shadow tables. This enables proper synchronization replication of any such changes. + +This granting of privileges occurs only for database users with privileges on the primary definition node publication tables at the time the non-PDN node is defined using the xDB Replication Console or the xDB Replication Server CLI. If you do not want the publication server to grant these database user privileges to the non-PDN publication tables and shadow tables when defining the non-PDN node, set skipTablePrivileges to true. In this case, you must explicitly grant the privileges on the publication tables and corresponding shadow tables in the non-PDN node for any database user that you wish to provide update access to on these tables. See Step 2 of Section [Postgres Publication Database](../../../05_smr_operation/01_prerequisites/#postgres_pub_db) for information regarding the required privileges. + +This usage would typically be for the case where different database users are to access the non-PDN node publication tables than the database users who access the primary definition node publication tables. + +`skipTablePrivileges={true | false}` + +The default value is `false`. diff --git a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/14_applying_grants_of_table_level_user_privileges_on_smr.mdx b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/14_applying_grants_of_table_level_user_privileges_on_smr.mdx new file mode 100644 index 00000000000..d394438d8be --- /dev/null +++ b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/14_applying_grants_of_table_level_user_privileges_on_smr.mdx @@ -0,0 +1,46 @@ +--- +title: "Applying Grants of Table Level User Privileges on SMR Target Tables" +--- + + + + +
+ +
+ +Note + +
+ +This option applies to the subscription server only. + +
+ +
+ +
+ +Note + +
+ +This option applies only when both the publication database and the subscription database are Postgres databases. + +
+ +When creating a subscription in a single-master replication system, the subscription server creates the subscription tables in the subscription database. + +When `skipTablePrivileges` is set to true, which is the default value, no database user privileges are granted on these subscription tables to any database user. By default the subscription database user specified when the subscription database definition is created (see [Adding a Subscription Database](../../../05_smr_operation/03_creating_subscription/#adding_subscription_database)) is the owner of the subscription tables. + +This is the typical, expected scenario since the data in subscription tables should not be updated by user applications other than the xDB Replication Server. + +Database users that require access to the subscription tables must be explicitly granted such privileges. + +If however, you do want the subscription server to grant database user privileges to the subscription tables for the same database users that already have access privileges to the publication tables, set `skipTablePrivileges` to false in the subscription server configuration file. (The setting of `skipTablePrivileges` in the publication server configuration file is ignored for this process in a single-master replication system.) + +In this case, the same access privileges are granted on the subscription tables to database users with privileges on the publication tables at the time the subscription is defined using the xDB Replication Console or the xDB Replication Server CLI. + +`skipTablePrivileges={true | false}` + +The default value is `true.` diff --git a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/15_log_based_sync_options.mdx b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/15_log_based_sync_options.mdx new file mode 100644 index 00000000000..41f883b5415 --- /dev/null +++ b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/15_log_based_sync_options.mdx @@ -0,0 +1,50 @@ +--- +title: "Log-Based Method of Synchronization Options" +--- + + + + +
+ +
+ +Note + +
+ +This option applies to the publication server only. + +
+ +**walTxSetCreationInterval** + +When using the log-based method of synchronization replication the `walTxSetCreationInterval` option controls the time interval between creations of the transaction sets, which affects the size of the transaction set (that is, the batch size). The default setting results in the creation of a transaction set every 5,000 milliseconds (5 seconds) assuming changes to the publication tables to be replicated are available. + +This value should be adjusted based on the workload (that is, the transaction per minute (TPM) rate) on the target publication tables. + +If the TPM rate is on a higher end, the walTxSetCreationInterval option should be set to a relatively low value. + +If the TPM rate is on a lower end, the option should be set to a higher value to ensure that a transaction set is large enough to allow an average batch size in the range of 100 to 500 transactions. + +`walTxSetCreationInterval=n` The default value is 5000 milliseconds. + +**walStreamQueueLimit** + +The `walStreamQueueLimit` option defines the upper limit for the number of WAL entries that can be held in the queue pending for processing at a point in time. Once the queue becomes full, the WAL stream receiver blocks additions until space becomes available in the queue as transaction entries are popped out of the queue for processing. + +A value of 0 indicates there will be no upper limit. Note that too high a setting may result in Java heap space out of memory errors. See [Setting Heap Memory Size for the Publication and Subscription Servers](../../../05_smr_operation/01_prerequisites/#setting_heap_size_for_pub_and_sub) for information on adjusting the Java heap memory size. + +`walStreamQueueLimit=n` + +The default value is 10000. + +**pendingTxSetThreshold** + +The `pendingTxSetThreshold` option defines the upper threshold limit for the number of pending transaction sets that when reached, causes the extraction of transaction data from the WAL stream and its parsing to be put on hold until the pending transactions are processed. + +This is to avoid a situation where the data is continuously pushed over the WAL stream channel, but is not being processed and applied due to some failure or lack of scheduling of the synchronization process. This may result in a Java heap space out of heap memory error. See [Setting Heap Memory Size for the Publication and Subscription Servers](../../../05_smr_operation/01_prerequisites/#setting_heap_size_for_pub_and_sub) for information on adjusting the Java heap memory size. + +`pendingTxSetThreshold=n` + +The default value is 10. diff --git a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/16_setting_apache_dbcp_connection_validation_query.mdx b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/16_setting_apache_dbcp_connection_validation_query.mdx new file mode 100644 index 00000000000..a3c58707183 --- /dev/null +++ b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/16_setting_apache_dbcp_connection_validation_query.mdx @@ -0,0 +1,28 @@ +--- +title: "Setting the Apache DBCP Connection Validation Query Timeout" +--- + + + + +
+ +
+ +Note + +
+ +This option applies to the publication server only. + +
+ +The Apache Commons Database Connection Pooling (DBCP) component is the Apache pooling framework used by the publication server for establishing JDBC connections. + +The `jdbc.pool.validationQueryTimeout` option controls the timeout setting when a validation query is executed at the time of allocating a connection from the pool. This is the amount of time in seconds before an exception is returned if the connection validation query does not succeed. + +The default timeout value is 30 seconds. In situations where network connections are not reliable, the timeout value can be increased accordingly to allow more time for the connection attempt. Specify a value of 0 if no timeout is desired. + +`jdbc.pool.validationQueryTimeout=n` + +The default value is `30`. diff --git a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/index.mdx b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/index.mdx new file mode 100644 index 00000000000..07fa439e58d --- /dev/null +++ b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/index.mdx @@ -0,0 +1,59 @@ +--- +title: "Publication and Subscription Server Configuration Options" +--- + + + + +The publication server and the subscription server support various configuration options for purposes such as the following: + +- Optimize synchronization performance based on the types of transactions affecting the publication. (See [Optimizing Synchronization Replication](../../05_smr_operation/08_optimizing_performance/02_optimize_sync_replication/#optimize_sync_replication) for details on these particular options.) +- Utilize alternate loading methods in snapshot replications. (See [Optimizing Snapshot Replication](../../05_smr_operation/08_optimizing_performance/#optimizing_snapshot_replication) for details on these particular options.) +- Special configuration options for multi-master replication. (See [Optimizing Performance](../../06_mmr_operation/#optimizing_performance_mmr) for details on these particular options.) +- Adjust memory usage and transaction size for replications. +- Replicate certain Oracle partitioned table types. +- Replicate special characters found in publication data. +- Special configuration options for the log-based method of synchronization replication. (See [Quoted Identifiers and Default Case Translation](../../10_appendix/04_miscellaneous_xdb_processing_topics/#quoted_identifiers) for details on these particular options.) + +Most options apply to the publication server only, although a few are used by the subscription server. + +The configuration options for the publication server are set and passed in a text file called the publication server configuration file with file name `xdb_pubserver.conf.` + +The configuration options for the subscription server are set and passed in a text file called the subscription server configuration file with file name `xdb_subserver.conf.` + +See [Post Installation Host Environment](../../03_installation/#post_installation_host_environment) for the directory locations of these files. + +Modified publication server configuration options take effect after the publication server is restarted. Similarly, modified subscription server configuration options take effect after the subscription server is restarted. The configuration options that have been explicitly put into effect by overriding their defaults in the configuration files are logged in the publication server log file and the subscription server log file. Section [Post Installation Host Environment](../../03_installation/#post_installation_host_environment) contains the directory locations of these log files. + +The following is a description of how to set the configuration options. This is followed by sections describing the purpose of each option. + +**Step 1:** The publication and subscription server configuration files are created during xDB Replication Server installation and already contain all of the configuration options as comments with their default settings. + +To change the setting of a configuration option, edit the publication server or subscription server configuration file by removing the comment symbol (\#) from the option and substituting the desired value in place of the currently coded value. + +The following example shows a portion of the publication server configuration file where replacement of null characters in the publication data has been activated and the replacement character has been set to the question mark character. + +``` text +replaceNullChar = true + +#Null Replacement Character +nullReplacementChar = ? +``` + +**Step 2:** Restart the publication or subscription server. + +Use the following command for CentOS 7 or RHEL 7 and CentOS 8 or RHEL 8: + +`systemctl restart edb-xdbpubserver` + +Use the following command for previous Linux versions: + +`service edb-xdbpubserver restart` + +The following sections provide additional detail on the server configuration options. + +
+ +controlling\_logging\_level replacing\_null\_characters schema\_migration\_options replicate\_oracle\_partitioned\_tables specify\_custom\_url\_for\_oracle\_jdbc snapshot\_replication\_options assign\_ip\_adress\_for\_rmi using\_pgagent\_job\_scheduling forcing\_shadow\_table\_cleanup setting\_event\_history\_cleanup ddl\_change\_replication\_table\_locking persisting\_zero\_txn\_replication\_hist skipping\_grants\_of\_table\_level\_user\_privileges\_on\_mmr applying\_grants\_of\_table\_level\_user\_privileges\_on\_smr log\_based\_sync\_options setting\_apache\_dbcp\_connection\_validation\_query + +
diff --git a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/02_encrypt_password_inconf_file.mdx b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/02_encrypt_password_inconf_file.mdx new file mode 100644 index 00000000000..4ce78905341 --- /dev/null +++ b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/02_encrypt_password_inconf_file.mdx @@ -0,0 +1,41 @@ +--- +title: "Encrypting the Password in the xDB Replication Configuration File" +--- + + + + +If you need to change the password in the xDB Replication Configuration file, you must first encrypt the password. Use the encrypt command of the xDB Replication Server CLI to generate the encrypted form of the password from its plain text form given in an input file. + +**Step 1:** Create a text file with the password you wish to encrypt. Do not leave any white space before or after the password. + +The following example shows the text newpassword in the input file passfile: + +``` text +$ cat passfile +newpassword +$ +``` + +**Step 2:** Use the `edb-repcli.jar` file to execute the xDB Replication Server CLI with the encrypt command by first including the Java bin directory in your PATH environment variable and making XDB\_HOME/bin your current working directory. + +For example, assuming `/usr/bin` contains the java executable program and xDB Replication Server is installed into the `POSTGRES_INSTALL_HOME` directory, perform the following: + +``` text +$ export PATH=/usr/bin:$PATH +$ cd /opt/PostgresPlus/9.4AS/bin +$ java -jar edb-repcli.jar -encrypt -input ~/passfile -output ~/encrypted +The following shows the encrypted form of the password in the output file encrypted: +$ cat ~/encrypted +4mKq/4jQQoV2IypCSmPpTQ== +$ +``` + +**Step 3:** Copy and paste the encrypted password into the xDB Replication Configuration file. + +``` text +#xDB Replication Server Configuration Properties +#Thu Sep 03 11:13:27 GMT-05:00 2015 +admin_password=4mKq/4jQQoV2IypCSmPpTQ== +admin_user=admin +``` diff --git a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/03_writing_cron_exp.mdx b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/03_writing_cron_exp.mdx new file mode 100644 index 00000000000..26fded52082 --- /dev/null +++ b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/03_writing_cron_exp.mdx @@ -0,0 +1,63 @@ +--- +title: "Writing a Cron Expression" +--- + + + + +A cron expression is a text string used to express a schedule of dates and times. The Linux cron tool uses a cron expression to schedule the execution of a job. xDB Replication Server uses the Quartz job scheduling system for scheduling replications. + +When creating a schedule for an xDB Replication Server replication system, a cron expression can be specified. There are a number of formats for cron expressions. You must use the cron expression format supported by Quartz. + +The remainder of this section provides an overview of most of the types of cron expressions that can be used for an xDB Replication Server schedule. For a more comprehensive treatment of cron expressions, refer to the Quartz documentation. + +A Quartz cron expression consists of six mandatory fields, followed by one optional field. Each field is separated from its neighbors by one or more consecutive space characters. The fields are order dependent and are listed as they must appear below: + +`ss mi hr dd mm dow [ yyyy ]` + +| | | | +|--------|-------------------------|---------------------------------------------------------------------------------------------------------------------------------------| +| Field | Values | Description | +| ss | 0 - 59 | Second of the minute | +| *mi* | 0 - 59 | Minute of the hour | +| *hr* | 0 - 23 | Hour of the day | +| *dd* | 1 - 31 or ? | Day of the month – if *dow* is given, then *dd* must be specified as ? | +| *mm* | 1 - 12 or JAN - DEC | Month of the year (3-letter month abbreviations are not case sensitive) | +| *dow* | 1 – 7 or SUN – SAT or ? | Day of the week – if *dd* is given, then *dow* must be specified as ? (3-letter day of the week abbreviations are not case sensitive) | +| *yyyy* | 1970 - 2099 | Year – if omitted, then any year applies | + +**Cron Expression Fields** + +There are a number of characters that have special meaning that can be utilized in all fields unless noted. + +| | | | +|------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Character | Meaning | Example | +| , | Separates a list of values | MON,WED,FRI – Every Monday, Wednesday, and Friday | +| \- | Separates the low and high end of a range of values | MON-FRI – Every Monday through Friday | +| \* | Allows all legal values for the field | 0 10 14 \* \* ? – Every day of every month at 2:10 PM | +| *x*/*i* | Specifies an increment, *i*, starting with *x* | 0 0/10 \* \* \* ? – Every 10 minutes starting on the hour for every day of every month (e.g., 8:00:00, 8:10:00, 8:20:00) | +| L | When used in the day of the month (dd) field, means the last day of the month | 0 30 15 L 8 ? – Every August 31st at 3:30 PM | +| L | When used by itself in the day of the week field (dow), means Saturday | 30 0 12 ? AUG L – The next Saturday in August at 30 seconds past 12:00 noon | +| *xxx*L | When used in the day of the week field (dow) following a day of the week, means the last *xxx* day of the month | 30 0 12 ? AUG 6L – The last Friday in August at 30 seconds past 12:00 noon | +| *x*W | Used in the day of the month field (dd) following a day of the month, *x*, to specify the weekday closest to *x* without going over into the next or previous month. | 1W – The weekday closest to the 1st of the month. If the 1st is a Wednesday, the result is Wednesday the 1st. If the 1st is a Sunday, the result is Monday the 2nd. If the 1st is a Saturday, the result is Monday the 3rd because the result does not go into the previous or following month. | +| *xxx*\#*n* | Used in the day of the week field (dow) to specify the *n*th *xxx* day of the month | 2\#3 – The third Monday of the month (2 = Monday, 3 = third occurrence) | + +**Cron Expression Special Characters** + +The following illustrates some examples of cron expressions. + +| | | +|--------------------------|----------------------------------------------------------------------------------------------------------------------------------------------| +| Cron Expression | Meaning | +| 0 0 12 20 AUG ? 2009 | 12:00:00 noon on August 20, 2009 | +| 0 15 13 ? AUG WED | 1:15:00 PM every Wednesday in August | +| 30 30 8 ? \* MON,WED,FRI | 8:30:30 AM every Monday, Wednesday, and Friday of every month | +| 0 0 8 ? \* 2-6 | 8:00:00 AM Monday thru Friday of every month | +| 0 0/30 8,9,10 15,L \* ? | 8:00:00 AM, 8:30:00 AM, 9:00:00 AM, 9:30:00 AM, 10:00:00 AM, 10:30:00 AM on the 15th and the last day of the month of every month | +| 0 0 9 ? 9 L | 9:00:00 AM each Saturday in September | +| 0 0 1 ? \* MonL | 1:00:00 AM on the last Monday of the month of every month | +| 0 30 16 15W sep ? | 4:30:00 PM on the weekday of September closest to the 15th | +| 0 30 16 ? \* WED\#2 | 4:30:00 PM on the second Wednesday of every month | + +**Cron Expression Examples** diff --git a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/04_disable_foreign_key_constraints_for_snapshot_replication.mdx b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/04_disable_foreign_key_constraints_for_snapshot_replication.mdx new file mode 100644 index 00000000000..4dc651ed912 --- /dev/null +++ b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/04_disable_foreign_key_constraints_for_snapshot_replication.mdx @@ -0,0 +1,21 @@ +--- +title: "Disabling Foreign Key Constraints for Snapshot Replications" +--- + + + + +In a snapshot replication, the publication server calls EnterpriseDB’s Migration Toolkit, which disables foreign key constraints on tables so it can truncate the target tables before loading rows. In Postgres, foreign key constraints are implemented using triggers, so in actuality, the Migration Toolkit disables triggers on the target tables by setting column `relhastriggers` of `pg_catalog.pg_class` to false for each target table. + +No user (not even a superuser) is allowed to directly modify the data in a Postgres system catalog table unless the following conditions are satisfied: + +- The database user attempting to modify the rows of a system catalog table is a superuser. +- In the Postgres system catalog table `pg_catalog.pg_authid`, the column `rolcatupdate` is set to true for the row identifying the superuser attempting to update a system catalog table. This requirement applies only to Postgres version 9.4 or earlier. The column `rolcatupdate` no longer exists in Postgres 9.5 or later. + +To verify that a user has the privilege to update the system catalog tables, select the user name under the Login Roles node in pgAdmin (Postgres Enterprise Manager Client in Advanced Server). The Update Catalogs property should be set to Yes. + +![User with privilege to update system catalogs](/../../images/image297.png) + +If the Update Catalogs property is set to No, click the secondary mouse button on the user name in the Object Browser and choose Properties from the menu. Select the Role Privileges tab, check the **Can Modify Catalog Directly** box, and click the **OK** button. + +![Granting system catalog update privilege](/../../images/image298.png) diff --git a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/05_quoted_identifiers.mdx b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/05_quoted_identifiers.mdx new file mode 100644 index 00000000000..588723bfd23 --- /dev/null +++ b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/05_quoted_identifiers.mdx @@ -0,0 +1,16 @@ +--- +title: "Quoted Identifiers and Default Case Translation" +--- + + + + +A quoted identifier is an identifier created with its name enclosed within double quote characters ("). The text enclosed within double quotes is stored as the object identifier name exactly as given with no default case translation of alphabetic characters. Quoted identifiers occur in both Oracle and Postgres. + +For example, `CREATE TABLE "MyTable"` … produces a table name that is stored in the database system’s data dictionary as MyTable. References to this table must be made using an uppercase M, an uppercase T, and lowercase letters for the rest of the name. + +If a database object is created without the double quotes surrounding its identifier name, default case translation of alphabetic characters occurs. + +In Oracle, the default case translation is to uppercase. For example, `CREATE TABLE MyTable` … would result in an object identifier name of `MYTABLE`. + +In Postgres, the default case translation is to lowercase. For example, `CREATE TABLE MyTable …` would result in an object identifier name of mytable. diff --git a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/06_replicating_sql_server_sql_variant_data_type.mdx b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/06_replicating_sql_server_sql_variant_data_type.mdx new file mode 100644 index 00000000000..fd026515013 --- /dev/null +++ b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/06_replicating_sql_server_sql_variant_data_type.mdx @@ -0,0 +1,65 @@ +--- +title: "Replicating the SQL Server SQL_VARIANT Data Type" +--- + + + + +This section discusses how to replicate a table containing the SQL Server `SQL_VARIANT` data type. + +The `SQL_VARIANT` data type defines a column so that the individual values in that column may be of different data types. For example, the same SQL\_VARIANT column can store values that have been explicitly cast as character, integer, numeric, and date/time. + +However, if a table containing a SQL\_VARIANT column is to be replicated to a Postgres database, the usage of the column in Postgres is restricted to a single data type to which all the values in the SQL\_VARIANT column are implicitly convertible (that is, without the use of explicit casting). For example, an integer value is implicitly convertible to a FLOAT data type, but a floating point value is not implicitly convertible to an INTEGER data type. + +The following restrictions apply in order to use replication on tables with the SQL\_VARIANT data type: + +- The values stored within the SQL\_VARIANT columns of the table to be replicated must be implicitly convertible to the same data type in Postgres. +- If there is more than one table with `SQL_VARIANT` columns to be replicated to the same Postgres database, then all such `SQL_VARIANT` columns must contain values that are implicitly convertible to the same data type in Postgres. + +In the Postgres subscription database, you define a domain named `sql_variant` that maps to an underlying data type to which all values in the SQL\_VARIANT columns are implicitly convertible. + +The following example shows how to set up replication for a table containing a `SQL_VARIANT` data type used to store numeric values, but of different data types. The SQL Server table definition is the following: + +``` text +CREATE TABLE variant_tbl ( + f1 INTEGER PRIMARY KEY, + f2 SQL_VARIANT +); + +INSERT INTO variant_tbl VALUES (1, CAST(1423.23 AS NUMERIC(6,2))); +INSERT INTO variant_tbl VALUES (2, CAST(8001 AS INTEGER)); +INSERT INTO variant_tbl VALUES (3, CAST('4321' AS CHAR(4))); +GO +``` + +The following query uses a function named SQL\_VARIANT\_PROPERTY to show the values stored in column f2 and their data types. + +``` text +1> SELECT *, +2> SQL_VARIANT_PROPERTY(f2,'BaseType') AS basetype, +3> SQL_VARIANT_PROPERTY(f2,'Precision') AS precision, +4> SQL_VARIANT_PROPERTY(f2,'Scale') AS scale +5> FROM variant_tbl; +6> GO +f1 f2 basetype precision scale +----------- ---------- ---------- ---------- ---------- + 1 1423.23 numeric 6 2 + 2 8001 int 10 0 + 3 4321 char 0 0 + +(3 rows affected) +``` + +In the Postgres subscription database, create a domain named `sql_variant` with an underlying data type that is compatible with the values that are stored in the SQL Server SQL\_VARIANT column: + +``` text +CREATE DOMAIN sql_variant AS NUMERIC(6, 2); +``` + +After replication occurs, the subscription table is created using the `sql_variant` domain in place of the SQL\_VARIANT data type of the publication table. + +At the bottom of the following Object Browser window, note the presence of the sql\_variant domain under the Domains node of the public schema. + +> `CREATE TABLE MyTable …` would result in an object identifier name of mytable. +> +> ![Subscription table with sql_variant column](/../../images/image299.png) diff --git a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/index.mdx b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/index.mdx new file mode 100644 index 00000000000..433da0bd91a --- /dev/null +++ b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/index.mdx @@ -0,0 +1,20 @@ +--- +title: "Miscellaneous xDB Replication Server Processing Topics" +--- + + + + +This section contains various topics covering the following: + +- Handling special characters in replication data +- Replicating Oracle partitioned tables +- Performing an offline snapshot and subsequent synchronization +- Generating an encrypted password +- Writing cron expressions + +
+ +publications\_and\_subscriptions\_server\_conf\_options encrypt\_password\_in conf\_file writing\_cron\_exp disable\_foreign\_key\_constraints\_for\_snapshot\_replication quoted\_identifiers replicating\_sql\_server\_sql\_variant\_data\_type + +
diff --git a/product_docs/docs/eprs/6.2/10_appendix/05_service_pack_maintenance.mdx b/product_docs/docs/eprs/6.2/10_appendix/05_service_pack_maintenance.mdx new file mode 100644 index 00000000000..0cf67cd7d93 --- /dev/null +++ b/product_docs/docs/eprs/6.2/10_appendix/05_service_pack_maintenance.mdx @@ -0,0 +1,17 @@ +--- +title: "Service Pack Maintenance" +--- + + + + +Maintenance items (bug fixes and enhancements) that have been added to this version of xDB Replication Server are listed below. + +1. Registering your xDB Replication Server product with an EnterpriseDB product license key is no longer required. Thus, all components related to registering the product have been removed. The following are the removed components: + +> 1. The Product Registration dialog box accessed from the xDB Replication Console Help menu, +> 2. The `license_key` parameter located in the xDB Replication Configuration file, and +> 3. The xDB Replication Server CLI `registerkey` command. (43230) + +1. Partitioned tables created using the declarative partitioning feature of PostgreSQL and Advanced Server version 10 can now be replicated in a log-based single-master or multi-master replication system. (43134) +2. In an SMR system, removal of a table from a publication that has one or more existing subscriptions is now permitted. Previously, no tables from a publication in an SMR system could be removed if there are existing subscriptions. (43110) diff --git a/product_docs/docs/eprs/6.2/10_appendix/index.mdx b/product_docs/docs/eprs/6.2/10_appendix/index.mdx new file mode 100644 index 00000000000..0f1f1eb7d88 --- /dev/null +++ b/product_docs/docs/eprs/6.2/10_appendix/index.mdx @@ -0,0 +1,14 @@ +--- +title: "Appendix" +--- + + + + +This chapter discusses various miscellaneous topics. + +
+ +permitted\_conf\_and\_permutations upgrading\_to\_xdb6\_2 resolving\_problems miscellaneous\_xdb\_processing\_topics service\_pack\_maintenance + +
diff --git a/product_docs/docs/eprs/6.2/images/E.ico b/product_docs/docs/eprs/6.2/images/E.ico new file mode 100644 index 00000000000..7be2392833c --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/E.ico @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:890b83da8580893248e6ac1b36033fea0969ddeb650bb37d3dd4bd5e6b716a63 +size 6465 diff --git a/product_docs/docs/eprs/6.2/images/PG_to_oracle.png b/product_docs/docs/eprs/6.2/images/PG_to_oracle.png new file mode 100755 index 00000000000..f4a68f7a05d --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/PG_to_oracle.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2e8780dbc91de671a5e8714a1fb636fefe80b4b30d6a281a860e729f789fa081 +size 342309 diff --git a/product_docs/docs/eprs/6.2/images/PG_to_oracle_sc.png b/product_docs/docs/eprs/6.2/images/PG_to_oracle_sc.png new file mode 100755 index 00000000000..aef4ba121b0 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/PG_to_oracle_sc.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:304db5c4f5c52b127917848dc072b5a4b78cd25fce3f30f541ec985afb8c2d5a +size 51423 diff --git a/product_docs/docs/eprs/6.2/images/aws_instance.png b/product_docs/docs/eprs/6.2/images/aws_instance.png new file mode 100644 index 00000000000..4c466fb77cb --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/aws_instance.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:55689b90a2e64b47ee6845a3326d1602b04edbff514fee3ba3570bb465ae85a6 +size 378666 diff --git a/product_docs/docs/eprs/6.2/images/edb_logo.png b/product_docs/docs/eprs/6.2/images/edb_logo.png new file mode 100644 index 00000000000..f4a93cf57f5 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/edb_logo.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:07423b012a855204780fe5a2a5a1e33607304a5c3020ae4acbf3d575691dedd6 +size 12136 diff --git a/product_docs/docs/eprs/6.2/images/edb_logo.svg b/product_docs/docs/eprs/6.2/images/edb_logo.svg new file mode 100644 index 00000000000..f24d1dfefee --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/edb_logo.svg @@ -0,0 +1,19 @@ + + + edb-logo-disc-dark + + + + \ No newline at end of file diff --git a/product_docs/docs/eprs/6.2/images/efm_slot.png b/product_docs/docs/eprs/6.2/images/efm_slot.png new file mode 100644 index 00000000000..4d0ca1b5fb7 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/efm_slot.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:34c2e29d8b9176756717aca929baeb21548f21b5b4fe8b6637b74fe3030524ee +size 575908 diff --git a/product_docs/docs/eprs/6.2/images/efm_slot_old.png b/product_docs/docs/eprs/6.2/images/efm_slot_old.png new file mode 100644 index 00000000000..445b5a0004a --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/efm_slot_old.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d0ec1a3170980c6e606e0cc72b314a33f7cc266c42795c47659619e0b37e3e70 +size 178594 diff --git a/product_docs/docs/eprs/6.2/images/google_security_settings.png b/product_docs/docs/eprs/6.2/images/google_security_settings.png new file mode 100755 index 00000000000..26cd39490f3 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/google_security_settings.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8f8e623cfb3d2d221c5ee293b841ac91d195acb28915b3ba0a66ce06a8f36b18 +size 102431 diff --git a/product_docs/docs/eprs/6.2/images/image10.jpg b/product_docs/docs/eprs/6.2/images/image10.jpg new file mode 100644 index 00000000000..005b3e06292 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image10.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b9af678b6393a7874f0aa3a21e38b09d8587dc5c68521c2d185e605569006f93 +size 37108 diff --git a/product_docs/docs/eprs/6.2/images/image10.png b/product_docs/docs/eprs/6.2/images/image10.png new file mode 100644 index 00000000000..adbc1315e01 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image10.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:96c4d921447ef2837153cdd52dc0b78f8905dbb37dd622b45ce31a19c80820ee +size 166955 diff --git a/product_docs/docs/eprs/6.2/images/image100.jpg b/product_docs/docs/eprs/6.2/images/image100.jpg new file mode 100644 index 00000000000..70cab485ee4 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image100.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bcb2fbb506e49efe588e0fef9e684cb79d1070de6260c69359aefd522456f1c8 +size 125289 diff --git a/product_docs/docs/eprs/6.2/images/image100.png b/product_docs/docs/eprs/6.2/images/image100.png new file mode 100644 index 00000000000..44e3edee609 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image100.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:909bc6ed444db9a4a681161451bdd1a939d48acad1bc92739fc9d38616f05f8d +size 148220 diff --git a/product_docs/docs/eprs/6.2/images/image101.jpg b/product_docs/docs/eprs/6.2/images/image101.jpg new file mode 100644 index 00000000000..c45a9db8d4d --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image101.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:141b260b93e6fdd4a7e7c2337f8ffb93fb40cfd374805f1c925e1086d94b327d +size 133043 diff --git a/product_docs/docs/eprs/6.2/images/image101.png b/product_docs/docs/eprs/6.2/images/image101.png new file mode 100644 index 00000000000..3d2f000bc6b --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image101.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dacd789490ec60d212c0c967db054cdbb5543010c54cf439ca93442cea4b60ba +size 178132 diff --git a/product_docs/docs/eprs/6.2/images/image102.jpg b/product_docs/docs/eprs/6.2/images/image102.jpg new file mode 100644 index 00000000000..f167299524f --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image102.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3c8f310aae0ca79ab43b6c466dd6c9a07fbbee57dd52a2ce8aa9dcddfaabe7e6 +size 128633 diff --git a/product_docs/docs/eprs/6.2/images/image102.png b/product_docs/docs/eprs/6.2/images/image102.png new file mode 100644 index 00000000000..78efb4ff00a --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image102.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1484705584c36e595d014a171a7e5094472d85bd24875be72c169b736c6a4235 +size 182163 diff --git a/product_docs/docs/eprs/6.2/images/image103.jpg b/product_docs/docs/eprs/6.2/images/image103.jpg new file mode 100644 index 00000000000..892a23cb65a --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image103.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:24ca1a5a1d4ee048008e2de7a245e91c22347401fb7d2b29436c843d1ee8e3e6 +size 108865 diff --git a/product_docs/docs/eprs/6.2/images/image103.png b/product_docs/docs/eprs/6.2/images/image103.png new file mode 100644 index 00000000000..c41260e3c15 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image103.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dbbd086366baeca170754f3285b3a82472130c485f002c79558ebf910104dd26 +size 109635 diff --git a/product_docs/docs/eprs/6.2/images/image104.jpg b/product_docs/docs/eprs/6.2/images/image104.jpg new file mode 100644 index 00000000000..e7b72d0e64a --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image104.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c4104cb59a6ec1577f33c032f0ba2fa62b48c7081410cfc4cea0c65f7600ada +size 110514 diff --git a/product_docs/docs/eprs/6.2/images/image104.png b/product_docs/docs/eprs/6.2/images/image104.png new file mode 100644 index 00000000000..b828b8ea2e5 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image104.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ae9e7d44a5fe6837be472b9f678e839b8f578867918561d4306fb5dd64a58d99 +size 129218 diff --git a/product_docs/docs/eprs/6.2/images/image105.jpg b/product_docs/docs/eprs/6.2/images/image105.jpg new file mode 100644 index 00000000000..c1d581bd444 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image105.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ae0294dee532205e049fc21bc2168a2783ba2c75eb2b9eadb299eebf2bf4432 +size 166887 diff --git a/product_docs/docs/eprs/6.2/images/image105.png b/product_docs/docs/eprs/6.2/images/image105.png new file mode 100644 index 00000000000..91dacaf847d --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image105.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1be25998061d70c9f4211c105cc820e3e4df95b104a28a4233bc9fa3a2916525 +size 239823 diff --git a/product_docs/docs/eprs/6.2/images/image106.jpg b/product_docs/docs/eprs/6.2/images/image106.jpg new file mode 100644 index 00000000000..bd749e114d8 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image106.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:05cfdc0b3aff1c59caa5c4ab68c0caefc7617fba8e7a5474387a82a99af1b769 +size 92823 diff --git a/product_docs/docs/eprs/6.2/images/image106.png b/product_docs/docs/eprs/6.2/images/image106.png new file mode 100644 index 00000000000..61789443d4e --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image106.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8a82653b18c2381ddf5f727425276361b75d722923f19320a6d99dc126963dc0 +size 110423 diff --git a/product_docs/docs/eprs/6.2/images/image107.jpg b/product_docs/docs/eprs/6.2/images/image107.jpg new file mode 100644 index 00000000000..84f017878d9 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image107.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2c6e8e1b255b2fb4eae3e1d8ec96501e9f9429c175e2bcff788863848c93f75e +size 83284 diff --git a/product_docs/docs/eprs/6.2/images/image107.png b/product_docs/docs/eprs/6.2/images/image107.png new file mode 100644 index 00000000000..27ffd575ed2 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image107.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f037a7777d49097772df2ec59a1aed1dca87ab406669dc7cd49f711ba4a881c6 +size 101855 diff --git a/product_docs/docs/eprs/6.2/images/image108.jpg b/product_docs/docs/eprs/6.2/images/image108.jpg new file mode 100644 index 00000000000..0e7dfb4ab90 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image108.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6a10000263f58db987bbebc7473fef586df1e25306a1ac6961387fecbeb53945 +size 116762 diff --git a/product_docs/docs/eprs/6.2/images/image108.png b/product_docs/docs/eprs/6.2/images/image108.png new file mode 100644 index 00000000000..c31ad5e062f --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image108.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:35791c82fe7b1f0b370fa8be55c45e6197ad0cd6ee493c3344302c856aa4c644 +size 148905 diff --git a/product_docs/docs/eprs/6.2/images/image109.jpg b/product_docs/docs/eprs/6.2/images/image109.jpg new file mode 100644 index 00000000000..1f7e1a727b6 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image109.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:67afe40f7ab376549f28d661cf1d9b2340deba56a39a59684c997860a8a7882b +size 125413 diff --git a/product_docs/docs/eprs/6.2/images/image109.png b/product_docs/docs/eprs/6.2/images/image109.png new file mode 100644 index 00000000000..bffcfdec40f --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image109.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:869f333117c80f509c8ecff3397a2c878d5886ed7bd3e0b2031398035d5f1bde +size 193894 diff --git a/product_docs/docs/eprs/6.2/images/image11.png b/product_docs/docs/eprs/6.2/images/image11.png new file mode 100644 index 00000000000..563e06e8b66 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image11.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a3620a5cdec808b80eafb4d40951c0be0fc922cba5da43b4a84c6569c918ea57 +size 518127 diff --git a/product_docs/docs/eprs/6.2/images/image110.jpg b/product_docs/docs/eprs/6.2/images/image110.jpg new file mode 100644 index 00000000000..5c305435708 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image110.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a5db8778aac8c1715c52e1370ae832617815200cbdd99344f51155ef889d39fa +size 180168 diff --git a/product_docs/docs/eprs/6.2/images/image110.png b/product_docs/docs/eprs/6.2/images/image110.png new file mode 100644 index 00000000000..848a2c2ae81 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image110.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b68612dc342780443721ceae5f845f858c3ecb4a45b9bf3b536cb5fb43fee9c3 +size 255853 diff --git a/product_docs/docs/eprs/6.2/images/image111.jpg b/product_docs/docs/eprs/6.2/images/image111.jpg new file mode 100644 index 00000000000..e8220b796e1 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image111.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8fcc0bfe2df6d95ca69cea6fe9da06508a8655bee905d81fb016698e1ea6b350 +size 112825 diff --git a/product_docs/docs/eprs/6.2/images/image111.png b/product_docs/docs/eprs/6.2/images/image111.png new file mode 100644 index 00000000000..d8f7d46c460 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image111.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ab77a11daa3e08977361887b78ccf08b770c4796d19481e4622c3e466b6b9cf6 +size 158857 diff --git a/product_docs/docs/eprs/6.2/images/image112.jpg b/product_docs/docs/eprs/6.2/images/image112.jpg new file mode 100644 index 00000000000..87b73e9454c --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image112.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7213f777070ece7aec63ee85cc21bbf75a776bb24ff3cb3508dee36367aab085 +size 157493 diff --git a/product_docs/docs/eprs/6.2/images/image112.png b/product_docs/docs/eprs/6.2/images/image112.png new file mode 100644 index 00000000000..a10d99d1a28 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image112.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:80e143d97e9a03b5eb90a62cf38fc36454e529e3e8ff23ccc36967525e3a5777 +size 216651 diff --git a/product_docs/docs/eprs/6.2/images/image113.jpg b/product_docs/docs/eprs/6.2/images/image113.jpg new file mode 100644 index 00000000000..246d4f220a1 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image113.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b39801ea097e74b1d053339485de9f69b342c9e7dfea8535f818dd41a81faa0a +size 125504 diff --git a/product_docs/docs/eprs/6.2/images/image113.png b/product_docs/docs/eprs/6.2/images/image113.png new file mode 100644 index 00000000000..c268c10c4c5 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image113.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8830a947e2c79f9645f2ff62de96f41308380ec49f534df3be38e311e762f1b7 +size 168041 diff --git a/product_docs/docs/eprs/6.2/images/image114.jpg b/product_docs/docs/eprs/6.2/images/image114.jpg new file mode 100644 index 00000000000..b0a13f90c55 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image114.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b87f92ab8b50dde601a01ee15c825a9447d1b5953ac0071d24d0a00558385446 +size 188937 diff --git a/product_docs/docs/eprs/6.2/images/image114.png b/product_docs/docs/eprs/6.2/images/image114.png new file mode 100644 index 00000000000..8957bad4c51 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image114.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8700afbb45d8145be548ed6e601231ee4832b68806fe35123c50201818fab650 +size 234043 diff --git a/product_docs/docs/eprs/6.2/images/image115.jpg b/product_docs/docs/eprs/6.2/images/image115.jpg new file mode 100644 index 00000000000..10241c9e759 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image115.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5ff2206d94e462e5f45e23f9c2f00ea6e255ca77bfe47450f662de57bb9bbff1 +size 185522 diff --git a/product_docs/docs/eprs/6.2/images/image115.png b/product_docs/docs/eprs/6.2/images/image115.png new file mode 100644 index 00000000000..25df4e5da7b --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image115.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:07d5d7f11c9f31e517ae8f3fe5ca980bb475215bf3c10ba9ed3076d6899eeddd +size 248465 diff --git a/product_docs/docs/eprs/6.2/images/image116.jpg b/product_docs/docs/eprs/6.2/images/image116.jpg new file mode 100644 index 00000000000..622f717783d --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image116.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:885f01551f5e72faba4868a41f6795ed4ee698809268c1d5db3b8613817db928 +size 168649 diff --git a/product_docs/docs/eprs/6.2/images/image116.png b/product_docs/docs/eprs/6.2/images/image116.png new file mode 100644 index 00000000000..cf5115a8ffb --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image116.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:341e36be50678cd04db79491b0c82f7bdda5a06bfd9c9d29910b2255914b7983 +size 225810 diff --git a/product_docs/docs/eprs/6.2/images/image117.jpg b/product_docs/docs/eprs/6.2/images/image117.jpg new file mode 100644 index 00000000000..fe175d847b6 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image117.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b138fc35bf0e4e63c2e072eadcc33e94bf01b9761037ce41c4ac0083b0dfa8c +size 88687 diff --git a/product_docs/docs/eprs/6.2/images/image117.png b/product_docs/docs/eprs/6.2/images/image117.png new file mode 100644 index 00000000000..b2eaa97c565 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image117.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6cd226729002d1421286e4ac1e2b715ff0de42f9b1c4324c8028ac3fa573eecd +size 95158 diff --git a/product_docs/docs/eprs/6.2/images/image118.jpg b/product_docs/docs/eprs/6.2/images/image118.jpg new file mode 100644 index 00000000000..cd6837a258c --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image118.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa245f5ac95223464e38c9abd366bc20c94586c7c27b0c3a636a5b2c25daf506 +size 169806 diff --git a/product_docs/docs/eprs/6.2/images/image118.png b/product_docs/docs/eprs/6.2/images/image118.png new file mode 100644 index 00000000000..99481ad8923 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image118.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dd127474bab2449e39eab56501f4250474fd879466089e8b2fa6f5aad7391369 +size 173665 diff --git a/product_docs/docs/eprs/6.2/images/image119.jpg b/product_docs/docs/eprs/6.2/images/image119.jpg new file mode 100644 index 00000000000..c59fae8324a --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image119.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b533f21e9dc7c0dd2baa93f44ad107147a7d6e988a324a7c9d0898115844aca +size 192850 diff --git a/product_docs/docs/eprs/6.2/images/image119.png b/product_docs/docs/eprs/6.2/images/image119.png new file mode 100644 index 00000000000..01919d346a5 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image119.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:38f4c1a0c33503826b9d77c3c0119285c2e094581c75e2e78e871262e75e0b1f +size 189838 diff --git a/product_docs/docs/eprs/6.2/images/image12.jpg b/product_docs/docs/eprs/6.2/images/image12.jpg new file mode 100644 index 00000000000..024d72c69c9 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image12.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7ef483371e2977276ff8065f6f82a57e8056c740a7c8147d678c07c807a247e8 +size 53953 diff --git a/product_docs/docs/eprs/6.2/images/image12.png b/product_docs/docs/eprs/6.2/images/image12.png new file mode 100644 index 00000000000..0044883d369 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image12.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:02b337e561d716d334d99615f02b1ed17edd31b1379bacea3a5d0bd501bac0fa +size 281923 diff --git a/product_docs/docs/eprs/6.2/images/image120.jpg b/product_docs/docs/eprs/6.2/images/image120.jpg new file mode 100644 index 00000000000..ef4ab66e05f --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image120.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1503d0d49bfede06d74fd8fb635d8732c44fcc3691953d7d721e5e7d53f839a1 +size 179067 diff --git a/product_docs/docs/eprs/6.2/images/image120.png b/product_docs/docs/eprs/6.2/images/image120.png new file mode 100644 index 00000000000..a31f66dec26 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image120.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7eb0df13405251478a44361d62ed0a2a7e613ff4f929c149d0df94a52194546a +size 171550 diff --git a/product_docs/docs/eprs/6.2/images/image121.jpg b/product_docs/docs/eprs/6.2/images/image121.jpg new file mode 100644 index 00000000000..c5a359ff20b --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image121.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8973eeca50cb3e494ddaede3e6dbe492ac28a9131aee784394a44b2710c8b75b +size 154732 diff --git a/product_docs/docs/eprs/6.2/images/image121.png b/product_docs/docs/eprs/6.2/images/image121.png new file mode 100644 index 00000000000..2ec24e0977a --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image121.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:da7388be7caf225bd1ebbbf257e37b455243622d3847ef816fce6ec0eb90d9ec +size 144330 diff --git a/product_docs/docs/eprs/6.2/images/image122.jpg b/product_docs/docs/eprs/6.2/images/image122.jpg new file mode 100644 index 00000000000..adc2c783373 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image122.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b9a6a3461b43ebeab180176c9443298bcc913ec374905767f3157769685faa65 +size 160084 diff --git a/product_docs/docs/eprs/6.2/images/image122.png b/product_docs/docs/eprs/6.2/images/image122.png new file mode 100644 index 00000000000..8c42312322c --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image122.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:71c8ce8fa984bbf18c0b68e57ba4db3ee587ca50339cafc4c8a254ddfbf9ea9e +size 167531 diff --git a/product_docs/docs/eprs/6.2/images/image123.jpg b/product_docs/docs/eprs/6.2/images/image123.jpg new file mode 100644 index 00000000000..e053ec5ae50 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image123.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8883f3e4d4747edfd4d555fc1aced19a558129f785847f019270e84137941c82 +size 124491 diff --git a/product_docs/docs/eprs/6.2/images/image123.png b/product_docs/docs/eprs/6.2/images/image123.png new file mode 100644 index 00000000000..4a7bb444c17 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image123.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:65ef8659ccfdac48aaaa9ec816aa1673482e1d9b323ee928d26493419eb79376 +size 177516 diff --git a/product_docs/docs/eprs/6.2/images/image124.jpg b/product_docs/docs/eprs/6.2/images/image124.jpg new file mode 100644 index 00000000000..c145c79b6b2 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image124.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:54b683356c544605938094450ad6d9a27ae6c34f86d21638b890ab68ab49a2ff +size 163004 diff --git a/product_docs/docs/eprs/6.2/images/image124.png b/product_docs/docs/eprs/6.2/images/image124.png new file mode 100644 index 00000000000..ff7c2f96807 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image124.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:05723c1c31493be43dbd2a33673862c77e9c452a52f2935195f29b570b6c58aa +size 183735 diff --git a/product_docs/docs/eprs/6.2/images/image125.jpg b/product_docs/docs/eprs/6.2/images/image125.jpg new file mode 100644 index 00000000000..d93c60c0340 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image125.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a21f600b2651436b15832d040ab5c24ec29f8f6f56676cf1c37f2e84b36c43d +size 159764 diff --git a/product_docs/docs/eprs/6.2/images/image125.png b/product_docs/docs/eprs/6.2/images/image125.png new file mode 100644 index 00000000000..18e6135ab5d --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image125.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ca78bf27ae8edbb7b3758b0dece1692284e65ab93135b02a8915cf84b28aa1f7 +size 190932 diff --git a/product_docs/docs/eprs/6.2/images/image126.jpg b/product_docs/docs/eprs/6.2/images/image126.jpg new file mode 100644 index 00000000000..9c18dd3505c --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image126.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d5f15b713b890f4b0c62165dbe9c052181bfaeb9970cfe36ac48cc2452ee7921 +size 164449 diff --git a/product_docs/docs/eprs/6.2/images/image126.png b/product_docs/docs/eprs/6.2/images/image126.png new file mode 100644 index 00000000000..4739c8c3eb3 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image126.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1dee98e4dd94e501aa6a875b7d87a060f79dbdacf09bdb288264a93aa64e2bc8 +size 184260 diff --git a/product_docs/docs/eprs/6.2/images/image127.jpg b/product_docs/docs/eprs/6.2/images/image127.jpg new file mode 100644 index 00000000000..cc4cce9213e --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image127.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ff2cbc7e20fd9c77768da183c9693cdf93d03672a335e46cab4e5f04a2d07649 +size 175316 diff --git a/product_docs/docs/eprs/6.2/images/image127.png b/product_docs/docs/eprs/6.2/images/image127.png new file mode 100644 index 00000000000..f708dad0232 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image127.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7eab5caef2cce14dd3496a8c1aadc7b18384ca1ed0a9a9885d28287fcbb2627e +size 203457 diff --git a/product_docs/docs/eprs/6.2/images/image128.jpg b/product_docs/docs/eprs/6.2/images/image128.jpg new file mode 100644 index 00000000000..07842461773 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image128.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa1b02cb77d8c5742c09104ce56a2307c350753be165c26b10ca8798a05dc10b +size 182750 diff --git a/product_docs/docs/eprs/6.2/images/image128.png b/product_docs/docs/eprs/6.2/images/image128.png new file mode 100644 index 00000000000..ae8c77f607c --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image128.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4a1b77356309a05860d9a859cd5f945acdd656a265903dfac9880a4d750af012 +size 212209 diff --git a/product_docs/docs/eprs/6.2/images/image129.jpg b/product_docs/docs/eprs/6.2/images/image129.jpg new file mode 100644 index 00000000000..1cc2c759ab6 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image129.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:576b16a8b8671468c45600930426397aa142f67faff5b87c5b7d5b176065076f +size 232605 diff --git a/product_docs/docs/eprs/6.2/images/image129.png b/product_docs/docs/eprs/6.2/images/image129.png new file mode 100644 index 00000000000..10aebb0670f --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image129.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:566845181ca4f6867d6b94fa0e04ce9ed9c55084248beb65469e32ef36e25787 +size 302707 diff --git a/product_docs/docs/eprs/6.2/images/image13.jpg b/product_docs/docs/eprs/6.2/images/image13.jpg new file mode 100644 index 00000000000..c2fdd75a166 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image13.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2267bf339173ae99010d7ecaa3eab27088261dc3b535a61cb36517393027bd78 +size 65699 diff --git a/product_docs/docs/eprs/6.2/images/image13.png b/product_docs/docs/eprs/6.2/images/image13.png new file mode 100644 index 00000000000..e8cc9be3ea7 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image13.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:43c114ba4ed7846b426993bec20ee9785f44b29468589e5f329d5398e1f1fb3e +size 338237 diff --git a/product_docs/docs/eprs/6.2/images/image130.jpg b/product_docs/docs/eprs/6.2/images/image130.jpg new file mode 100644 index 00000000000..52b735fedde --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image130.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4599bd0d12ebfdabc852c56a9d501e6d4b7337630ac631cf02431e010c6ecae9 +size 230242 diff --git a/product_docs/docs/eprs/6.2/images/image130.png b/product_docs/docs/eprs/6.2/images/image130.png new file mode 100644 index 00000000000..585c8daba82 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image130.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aaf57dc9075d1361228563e373e080490b22682b8df5b34deaec1f8e46504618 +size 249475 diff --git a/product_docs/docs/eprs/6.2/images/image131.jpg b/product_docs/docs/eprs/6.2/images/image131.jpg new file mode 100644 index 00000000000..34b7994bc14 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image131.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61cabde8ce726f41c856809afd1ba007ef0713a8b21e1668740a20e829d6b7d7 +size 137697 diff --git a/product_docs/docs/eprs/6.2/images/image131.png b/product_docs/docs/eprs/6.2/images/image131.png new file mode 100644 index 00000000000..f18ebb7d491 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image131.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ec3f99a43362e4c3bb011f281a323a84b56a61a85f679847d6a413b84020e92d +size 195644 diff --git a/product_docs/docs/eprs/6.2/images/image132.jpg b/product_docs/docs/eprs/6.2/images/image132.jpg new file mode 100644 index 00000000000..62d842791bd --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image132.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e73748af52cb5490ff304b6c907020c65cd53223acc984ea17aa30f94701f070 +size 152141 diff --git a/product_docs/docs/eprs/6.2/images/image132.png b/product_docs/docs/eprs/6.2/images/image132.png new file mode 100644 index 00000000000..7a9989ca422 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image132.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6aaf8cc0cf2ce05aeb2800d78d33f7af98da6e92a23d5db7c0d9c623d34659e2 +size 214007 diff --git a/product_docs/docs/eprs/6.2/images/image133.jpg b/product_docs/docs/eprs/6.2/images/image133.jpg new file mode 100644 index 00000000000..d5137589973 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image133.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7066fcf842ecb131641f32f1f731ff7463745eb3971fa79a03f0221de3f8d662 +size 85716 diff --git a/product_docs/docs/eprs/6.2/images/image133.png b/product_docs/docs/eprs/6.2/images/image133.png new file mode 100644 index 00000000000..b6ccbddc0c6 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image133.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2a784f202b9017c53b3aacfd645339e52a3bc8301d94a1b255f747c31c758860 +size 92977 diff --git a/product_docs/docs/eprs/6.2/images/image134.jpg b/product_docs/docs/eprs/6.2/images/image134.jpg new file mode 100644 index 00000000000..24d52920d7c --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image134.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:19ac08a83e6d0b44c3cbf62fa7f7eee1f5c81ae85654136e561ba1803356e500 +size 79042 diff --git a/product_docs/docs/eprs/6.2/images/image134.png b/product_docs/docs/eprs/6.2/images/image134.png new file mode 100644 index 00000000000..e51967a0a08 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image134.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b5404eb93b5600df3529f50e4689b4efc3eeeb9d1103e7396023bd342922bac +size 100407 diff --git a/product_docs/docs/eprs/6.2/images/image135.jpg b/product_docs/docs/eprs/6.2/images/image135.jpg new file mode 100644 index 00000000000..ee700af591a --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image135.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4d97cd5f683bf0c2a10617a3747e1ff64bf157871d0b063e0ff33cc77a2bcc19 +size 153917 diff --git a/product_docs/docs/eprs/6.2/images/image135.png b/product_docs/docs/eprs/6.2/images/image135.png new file mode 100644 index 00000000000..c6d43ff07ab --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image135.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:92e51ea921d8c7bd4915f23aa69eb645a047ac4c42f35f382b4d8faabc1d9882 +size 215651 diff --git a/product_docs/docs/eprs/6.2/images/image136.jpg b/product_docs/docs/eprs/6.2/images/image136.jpg new file mode 100644 index 00000000000..b828468eb2a --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image136.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af8cbf0a01f376156ccc9a387297e98b469647b030cd06ae11f4456b5c055a46 +size 71464 diff --git a/product_docs/docs/eprs/6.2/images/image136.png b/product_docs/docs/eprs/6.2/images/image136.png new file mode 100644 index 00000000000..0cd382cca26 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image136.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5c737474139c0a9fa4ee48fe6fc3f933c147eb06c11001e85827df957141eb39 +size 82788 diff --git a/product_docs/docs/eprs/6.2/images/image137.jpg b/product_docs/docs/eprs/6.2/images/image137.jpg new file mode 100644 index 00000000000..d1dccd34a98 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image137.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ed451b7bcdf86a4d1e9956be2602787ae024644139adac290d615f9da56f3f82 +size 66089 diff --git a/product_docs/docs/eprs/6.2/images/image137.png b/product_docs/docs/eprs/6.2/images/image137.png new file mode 100644 index 00000000000..8219bffefe7 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image137.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3e666f04d03e85cdfecaa70cbc97d703f146a6a9b8015654a8ec155a2eb7d7aa +size 86421 diff --git a/product_docs/docs/eprs/6.2/images/image138.jpg b/product_docs/docs/eprs/6.2/images/image138.jpg new file mode 100644 index 00000000000..06dfb6c7c08 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image138.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:05fc515565fbdb7c4c17a3dc9b7755bbf8c56e0863c976936b95d5c58fce5226 +size 245008 diff --git a/product_docs/docs/eprs/6.2/images/image138.png b/product_docs/docs/eprs/6.2/images/image138.png new file mode 100644 index 00000000000..598d37f27f9 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image138.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d61e2de4334853ad0accc486c1a8a26b1dad3bf1e7b7f7945afbcb9593c72076 +size 292508 diff --git a/product_docs/docs/eprs/6.2/images/image139.jpg b/product_docs/docs/eprs/6.2/images/image139.jpg new file mode 100644 index 00000000000..e36d837dbbf --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image139.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bb9749cbeeeda67d1d80031311bfd58e14910f1a48aa27ed6aab7090a9a7a010 +size 195209 diff --git a/product_docs/docs/eprs/6.2/images/image139.png b/product_docs/docs/eprs/6.2/images/image139.png new file mode 100644 index 00000000000..24cc4dd3748 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image139.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4fa89c6c46af98a4dfa94849eb8aa0de8014c862f68f9fe8f41d15e27a2f9930 +size 262351 diff --git a/product_docs/docs/eprs/6.2/images/image14.jpg b/product_docs/docs/eprs/6.2/images/image14.jpg new file mode 100644 index 00000000000..e2733ad126d --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image14.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6c33beb74493650bc7a18fa74492ae171e581c9026097208905cd5f3ab490e74 +size 149889 diff --git a/product_docs/docs/eprs/6.2/images/image14.png b/product_docs/docs/eprs/6.2/images/image14.png new file mode 100644 index 00000000000..9ed607b3d91 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image14.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e02107503565bf86e230cf74b4a65a9b3deb743f5add13827edfc4d7fdc6d70d +size 218766 diff --git a/product_docs/docs/eprs/6.2/images/image140.jpg b/product_docs/docs/eprs/6.2/images/image140.jpg new file mode 100644 index 00000000000..c781d6f0f4e --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image140.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b53186251234e8bc93e2f603f384cc7b3fe5ef29f6839283a2e4048478b099a8 +size 123284 diff --git a/product_docs/docs/eprs/6.2/images/image140.png b/product_docs/docs/eprs/6.2/images/image140.png new file mode 100644 index 00000000000..c9282cfbe5c --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image140.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:866aa380ebacf2b703a587120fbda9450cdab5f4b3d13f4f922c0114efcef10f +size 116888 diff --git a/product_docs/docs/eprs/6.2/images/image141.jpg b/product_docs/docs/eprs/6.2/images/image141.jpg new file mode 100644 index 00000000000..2c9b8c2a315 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image141.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d2961a26a28321f79e83cbf481369667e9569a3ae0a730657815194dea883a01 +size 176575 diff --git a/product_docs/docs/eprs/6.2/images/image141.png b/product_docs/docs/eprs/6.2/images/image141.png new file mode 100644 index 00000000000..c803b8bd76b --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image141.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:42c878e2185ccebee366a303a703d7a1254af175e4d784d17506a0395ad6d56b +size 189066 diff --git a/product_docs/docs/eprs/6.2/images/image142.jpg b/product_docs/docs/eprs/6.2/images/image142.jpg new file mode 100644 index 00000000000..e12fb4f8076 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image142.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a34021ad5aa8bdae488f85d01d051a9920002d5df60357db08a962c60472fb37 +size 197615 diff --git a/product_docs/docs/eprs/6.2/images/image142.png b/product_docs/docs/eprs/6.2/images/image142.png new file mode 100644 index 00000000000..82345060611 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image142.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f89ec4dc3263a2a5e9e5baa30892e1f4e92e7de401f0a223383c1eab83a9b472 +size 254525 diff --git a/product_docs/docs/eprs/6.2/images/image143.jpg b/product_docs/docs/eprs/6.2/images/image143.jpg new file mode 100644 index 00000000000..cc6a936dd14 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image143.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:52eafed1e76eb8940fe1cf202d155305d8247d68df2da1d627cfe1baf791a490 +size 315737 diff --git a/product_docs/docs/eprs/6.2/images/image143.png b/product_docs/docs/eprs/6.2/images/image143.png new file mode 100644 index 00000000000..d01912babf6 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image143.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d04f2534363b2b6c973504c132324351e15df88edbce4aa19bbaf7fdf2e6ec33 +size 369381 diff --git a/product_docs/docs/eprs/6.2/images/image144.jpg b/product_docs/docs/eprs/6.2/images/image144.jpg new file mode 100644 index 00000000000..ce95c1eea87 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image144.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d9b3f5c2eee656161c68305278f6c292391db121dcc47381885d855f3dc521e2 +size 142608 diff --git a/product_docs/docs/eprs/6.2/images/image144.png b/product_docs/docs/eprs/6.2/images/image144.png new file mode 100644 index 00000000000..fb646477e21 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image144.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b45c1027ab8bb1c20f5bbed712304f9cae2bcac740bd8b1eca760fac5a8af65 +size 98732 diff --git a/product_docs/docs/eprs/6.2/images/image145.jpg b/product_docs/docs/eprs/6.2/images/image145.jpg new file mode 100644 index 00000000000..4946cb7bb10 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image145.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:236831fbce1ecf3c70223d1f86e869f54c6e9a44aa7e747012218d4d79e85b40 +size 136498 diff --git a/product_docs/docs/eprs/6.2/images/image145.png b/product_docs/docs/eprs/6.2/images/image145.png new file mode 100644 index 00000000000..f417b359a92 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image145.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c305cf702e6d109d87e8a2830117a086b2d9b257f5965fd3b913019315378165 +size 134258 diff --git a/product_docs/docs/eprs/6.2/images/image146.jpg b/product_docs/docs/eprs/6.2/images/image146.jpg new file mode 100644 index 00000000000..50c65a770ab --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image146.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b873c3ba584d346a163f2a672a073edf13102120658f5893a1b0d2ffbaad5826 +size 163649 diff --git a/product_docs/docs/eprs/6.2/images/image146.png b/product_docs/docs/eprs/6.2/images/image146.png new file mode 100644 index 00000000000..a61e4fb55e5 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image146.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d43ec56eebba3446f9950a83fbcb3e2d9a0ebf78e34a855110a3d6ec48c09307 +size 171902 diff --git a/product_docs/docs/eprs/6.2/images/image147.jpg b/product_docs/docs/eprs/6.2/images/image147.jpg new file mode 100644 index 00000000000..f7cbd2ba66b --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image147.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac0928a10f52e6d2b8722e36f98bf2949406eccefcc88d84d67de393641b5d93 +size 161871 diff --git a/product_docs/docs/eprs/6.2/images/image147.png b/product_docs/docs/eprs/6.2/images/image147.png new file mode 100644 index 00000000000..e5d3ee2ba1f --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image147.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:02de52bd7d76c1bc0a2df5b452cfa40448b0769e7e854d79e69f81ebca1e8bff +size 176822 diff --git a/product_docs/docs/eprs/6.2/images/image148.jpg b/product_docs/docs/eprs/6.2/images/image148.jpg new file mode 100644 index 00000000000..be725d180f7 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image148.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:859b98780a3e9b0bd5826f54feeae0e9fdd80a487f8db926218d06463c44ef4d +size 173988 diff --git a/product_docs/docs/eprs/6.2/images/image148.png b/product_docs/docs/eprs/6.2/images/image148.png new file mode 100644 index 00000000000..b23b04e77f0 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image148.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d74475917354fab78ef46e3d016c952ef31734f84ab6a85f81d4d11ed1b2d331 +size 180822 diff --git a/product_docs/docs/eprs/6.2/images/image149.jpg b/product_docs/docs/eprs/6.2/images/image149.jpg new file mode 100644 index 00000000000..07e0025eac8 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image149.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cb41a119b32c92b0c644de730ff31ff72cd0e3cb397d2a4bcda739b2fbd4e064 +size 179784 diff --git a/product_docs/docs/eprs/6.2/images/image149.png b/product_docs/docs/eprs/6.2/images/image149.png new file mode 100644 index 00000000000..ec76a19ecfa --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image149.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:10a54e2b592cb06ff61011ec17ab6d592446552a4491c3fabe8441db00840d5a +size 189376 diff --git a/product_docs/docs/eprs/6.2/images/image15.jpg b/product_docs/docs/eprs/6.2/images/image15.jpg new file mode 100644 index 00000000000..512de7050dc --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image15.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:485071cb4a2410b0c1a2cc8d5098c5ff759476f579806c0de5d62836a059a127 +size 64126 diff --git a/product_docs/docs/eprs/6.2/images/image15.png b/product_docs/docs/eprs/6.2/images/image15.png new file mode 100644 index 00000000000..08aabc4ad67 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image15.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3ca92e2303fded9a9d9869355fdb115dc9e13ecac7c35cc037529d8b44d7261f +size 328013 diff --git a/product_docs/docs/eprs/6.2/images/image150.jpg b/product_docs/docs/eprs/6.2/images/image150.jpg new file mode 100644 index 00000000000..28ec36e6166 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image150.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:796da749ffbb25e536349f5c34bfa84283da549d8889d26328642b59d4249a22 +size 140497 diff --git a/product_docs/docs/eprs/6.2/images/image150.png b/product_docs/docs/eprs/6.2/images/image150.png new file mode 100644 index 00000000000..b0115e6e2fc --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image150.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e96b5997e593a892bbd2dfda7564d224915f61b31cb168b87ba5f38f72f39d68 +size 126095 diff --git a/product_docs/docs/eprs/6.2/images/image151.jpg b/product_docs/docs/eprs/6.2/images/image151.jpg new file mode 100644 index 00000000000..2e1c6da4668 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image151.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cef7c5599d2247481032632f345b2d04a432133172a2c7a40a3b2e2fe21c4af4 +size 189351 diff --git a/product_docs/docs/eprs/6.2/images/image151.png b/product_docs/docs/eprs/6.2/images/image151.png new file mode 100644 index 00000000000..5db17e49e51 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image151.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c67fb0ff8abdb8cff2a6d0f42287076d8061d097e54492b713a719e5890dcc22 +size 200035 diff --git a/product_docs/docs/eprs/6.2/images/image152.jpg b/product_docs/docs/eprs/6.2/images/image152.jpg new file mode 100644 index 00000000000..59f249eeb8e --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image152.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:01fd8867e765b4a2313d3b7a7a1aad657957af80a43ed0f25abcdb4683806cf9 +size 180505 diff --git a/product_docs/docs/eprs/6.2/images/image152.png b/product_docs/docs/eprs/6.2/images/image152.png new file mode 100644 index 00000000000..246756bc3a0 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image152.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fcbe3166ab350f45466118d87395e5b753a48d9b928651021e60018fd7ad4971 +size 192686 diff --git a/product_docs/docs/eprs/6.2/images/image153.jpg b/product_docs/docs/eprs/6.2/images/image153.jpg new file mode 100644 index 00000000000..fe561112e30 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image153.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:813d6a52e80048f1940fa12cc282a06dba727610247da7b121ca3e3291f68877 +size 175846 diff --git a/product_docs/docs/eprs/6.2/images/image153.png b/product_docs/docs/eprs/6.2/images/image153.png new file mode 100644 index 00000000000..6f2948d1137 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image153.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:72f7b0fcfa1007d8c99a5993fa4a731a91a8a1131275159cb3452dfb51ecc1eb +size 178839 diff --git a/product_docs/docs/eprs/6.2/images/image154.jpg b/product_docs/docs/eprs/6.2/images/image154.jpg new file mode 100644 index 00000000000..986fce14bea --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image154.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cf1e9f9e513dba5f4e310f48535d9c53fa716f3464dd69f204b2ed14690bb3fc +size 188800 diff --git a/product_docs/docs/eprs/6.2/images/image154.png b/product_docs/docs/eprs/6.2/images/image154.png new file mode 100644 index 00000000000..6061f46c6ba --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image154.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:33dc729c1d343f33bbe8d04f4828b0e49ce493780dc7c0fca7059204a9b8f8f3 +size 196028 diff --git a/product_docs/docs/eprs/6.2/images/image155.jpg b/product_docs/docs/eprs/6.2/images/image155.jpg new file mode 100644 index 00000000000..1cefd39113b --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image155.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:991217182fa81cfa2ae86c7e53b9aa169547bfc0beb049a87d441af394a82e0b +size 211638 diff --git a/product_docs/docs/eprs/6.2/images/image155.png b/product_docs/docs/eprs/6.2/images/image155.png new file mode 100644 index 00000000000..dffd1f09d50 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image155.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ca44da52db460f5806d319a5be015d768273c10ad3e5d485d5805894e7aa6210 +size 212896 diff --git a/product_docs/docs/eprs/6.2/images/image156.jpg b/product_docs/docs/eprs/6.2/images/image156.jpg new file mode 100644 index 00000000000..61e352be887 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image156.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:70be0640347eba4ea5559966f1d50274235bc36a821d9efc27323d44195d9fbd +size 209523 diff --git a/product_docs/docs/eprs/6.2/images/image156.png b/product_docs/docs/eprs/6.2/images/image156.png new file mode 100644 index 00000000000..7dc73981daf --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image156.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f2200515d0eb4926e628ee541aec8fd726022a22b697129cf30ddeb0eac363b3 +size 201893 diff --git a/product_docs/docs/eprs/6.2/images/image157.jpg b/product_docs/docs/eprs/6.2/images/image157.jpg new file mode 100644 index 00000000000..5c11832ed4d --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image157.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3eeb0c1154750c8f52abb74db0d59550b5d176b49ffea1601bd85d672d52e087 +size 210625 diff --git a/product_docs/docs/eprs/6.2/images/image157.png b/product_docs/docs/eprs/6.2/images/image157.png new file mode 100644 index 00000000000..08733eaaf5f --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image157.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f78506354287b863a464af02329f2fb30ce1a2c8e3b9b8cf5e5a74e27ecb9298 +size 207825 diff --git a/product_docs/docs/eprs/6.2/images/image158.jpg b/product_docs/docs/eprs/6.2/images/image158.jpg new file mode 100644 index 00000000000..74f78b6453f --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image158.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e3e82dcf2c43c789161e88b2eb140a88e05ebb232b972b7cc397e3178a789741 +size 140988 diff --git a/product_docs/docs/eprs/6.2/images/image158.png b/product_docs/docs/eprs/6.2/images/image158.png new file mode 100644 index 00000000000..4734fabe072 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image158.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61289b6f9ef4a945cb0667446c9609035af640feabfa79fef522d817df47b83e +size 131077 diff --git a/product_docs/docs/eprs/6.2/images/image159.jpg b/product_docs/docs/eprs/6.2/images/image159.jpg new file mode 100644 index 00000000000..01f903739ee --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image159.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:489058ca5019f983de11ae5d598dec6d5b67a8700427a6cc4530a34912eae0b4 +size 245619 diff --git a/product_docs/docs/eprs/6.2/images/image159.png b/product_docs/docs/eprs/6.2/images/image159.png new file mode 100644 index 00000000000..a7f3700a114 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image159.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba309f190c40bd2f9fec73e9eb2f0e48416908cfdcffe5f84079304dc0ded78a +size 311216 diff --git a/product_docs/docs/eprs/6.2/images/image16.jpg b/product_docs/docs/eprs/6.2/images/image16.jpg new file mode 100644 index 00000000000..db94e174e80 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image16.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:077a7ba0b5f7df21e9b65c0585f9b17eb97af6b9f0c570c6cd3d5d4c67639154 +size 125215 diff --git a/product_docs/docs/eprs/6.2/images/image16.png b/product_docs/docs/eprs/6.2/images/image16.png new file mode 100644 index 00000000000..6b4a4aa5ccd --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image16.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a6e3e0cebe05010a0e1d1ccc22b2d80905ab9ce3ba9ff265b16f6d7542136319 +size 191308 diff --git a/product_docs/docs/eprs/6.2/images/image160.jpg b/product_docs/docs/eprs/6.2/images/image160.jpg new file mode 100644 index 00000000000..0c7b6ee71b4 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image160.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:42dac8f487b72b36f0237edcfca9ef80a4e12f2b71fa7de517b9ef272638d5f3 +size 96874 diff --git a/product_docs/docs/eprs/6.2/images/image160.png b/product_docs/docs/eprs/6.2/images/image160.png new file mode 100644 index 00000000000..d61820d17df --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image160.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b4f4a1e071367da1525d83d1f9569dc073937053c149c0cca1140849a20f9301 +size 90426 diff --git a/product_docs/docs/eprs/6.2/images/image161.jpg b/product_docs/docs/eprs/6.2/images/image161.jpg new file mode 100644 index 00000000000..d4776e22a1a --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image161.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:886b14a9f28adcb90e9c4ad6e3f1d0dc247ad07e50ae966095888af24a4c6a52 +size 167386 diff --git a/product_docs/docs/eprs/6.2/images/image161.png b/product_docs/docs/eprs/6.2/images/image161.png new file mode 100644 index 00000000000..575e2543c47 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image161.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:353345a97c896570abf5cb038a9998d8fbd9d0327fd6906830362535be9c90cf +size 168210 diff --git a/product_docs/docs/eprs/6.2/images/image162.jpg b/product_docs/docs/eprs/6.2/images/image162.jpg new file mode 100644 index 00000000000..64d6eb6561b --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image162.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:70f9fb4362e238b0cdd6a6681bf67fb7ccb39c9c8b2e5742cdce1e33a67cd36d +size 159175 diff --git a/product_docs/docs/eprs/6.2/images/image162.png b/product_docs/docs/eprs/6.2/images/image162.png new file mode 100644 index 00000000000..eaf7e95a8a4 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image162.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5c0779509d1c1deae1a9217b87bd8f60ee0cf8dd08b84eda8f856ca3a868eab1 +size 164809 diff --git a/product_docs/docs/eprs/6.2/images/image163.jpg b/product_docs/docs/eprs/6.2/images/image163.jpg new file mode 100644 index 00000000000..2ba2f8d6802 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image163.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fed76e3b50934382ded192a8675511743105ea14500aa81d65a202c90ab52f4b +size 112821 diff --git a/product_docs/docs/eprs/6.2/images/image163.png b/product_docs/docs/eprs/6.2/images/image163.png new file mode 100644 index 00000000000..4739dba9261 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image163.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ab4af035781983a18b6d840c642a97e8f4e2621612d71c86cdbe3082941107db +size 93222 diff --git a/product_docs/docs/eprs/6.2/images/image164.jpg b/product_docs/docs/eprs/6.2/images/image164.jpg new file mode 100644 index 00000000000..1a4b592efcf --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image164.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e324ebc8c69d9085b8c6b2edccc43313e6466d87db9ef9d5ea2730244b353535 +size 196213 diff --git a/product_docs/docs/eprs/6.2/images/image164.png b/product_docs/docs/eprs/6.2/images/image164.png new file mode 100644 index 00000000000..561590d0b64 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image164.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5beeeba23d668004629a0e5978beae4b134634c95b706dd433e50441c7dd6aa5 +size 187362 diff --git a/product_docs/docs/eprs/6.2/images/image165.jpg b/product_docs/docs/eprs/6.2/images/image165.jpg new file mode 100644 index 00000000000..65e8de97145 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image165.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4df0cb6abe90d3122c5ad47fb7c118280a244e2c912c5567eefbf886f6716639 +size 171019 diff --git a/product_docs/docs/eprs/6.2/images/image165.png b/product_docs/docs/eprs/6.2/images/image165.png new file mode 100644 index 00000000000..a9be225c0a5 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image165.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:89bb3f6593898cd374bba4051da7ca9c14c79358602bc263fb205bfe20321b2e +size 223851 diff --git a/product_docs/docs/eprs/6.2/images/image166.jpg b/product_docs/docs/eprs/6.2/images/image166.jpg new file mode 100644 index 00000000000..58778a8060a --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image166.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:24db924b817eee2cd8b5cf53adbe2fc91283bb5006a064b9d9831f30e215994c +size 303952 diff --git a/product_docs/docs/eprs/6.2/images/image166.png b/product_docs/docs/eprs/6.2/images/image166.png new file mode 100644 index 00000000000..063b3c6e5b9 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image166.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b667feaec2b998c2cb53403ee828aff221831be02bd26d41069a81902e58126 +size 368792 diff --git a/product_docs/docs/eprs/6.2/images/image167.jpg b/product_docs/docs/eprs/6.2/images/image167.jpg new file mode 100644 index 00000000000..fe07436503b --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image167.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0d52cfd16d371bde050e3d299457b708538d4eebfeeb3ffff6d98f34e777477d +size 199936 diff --git a/product_docs/docs/eprs/6.2/images/image167.png b/product_docs/docs/eprs/6.2/images/image167.png new file mode 100644 index 00000000000..d210a7e5ac7 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image167.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:38a590d7909d43e71f4a0263b84a6985a01cb081b54e37131228af5aa753a772 +size 277735 diff --git a/product_docs/docs/eprs/6.2/images/image168.jpg b/product_docs/docs/eprs/6.2/images/image168.jpg new file mode 100644 index 00000000000..48ccb6fda5e --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image168.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e248b74b17880f53c41725b6fe3021b219e0ecd2303098e1b2b8c3cef947d21 +size 137588 diff --git a/product_docs/docs/eprs/6.2/images/image168.png b/product_docs/docs/eprs/6.2/images/image168.png new file mode 100644 index 00000000000..43af6609a30 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image168.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e3c8932461108a772212a57058383ce8d617209d46e50b68442a83a89a1f551 +size 94184 diff --git a/product_docs/docs/eprs/6.2/images/image169.jpg b/product_docs/docs/eprs/6.2/images/image169.jpg new file mode 100644 index 00000000000..8e34a357657 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image169.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:630d05bb543bf2d14f58f537e96c11f3cb210870164d26f6dc818940e02cafa0 +size 133949 diff --git a/product_docs/docs/eprs/6.2/images/image169.png b/product_docs/docs/eprs/6.2/images/image169.png new file mode 100644 index 00000000000..b4b921e5ced --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image169.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eb598d54619359c2e0a5425e4d1565dbf528bbe4d895beeb50b499c9aeff7364 +size 195937 diff --git a/product_docs/docs/eprs/6.2/images/image17.jpg b/product_docs/docs/eprs/6.2/images/image17.jpg new file mode 100644 index 00000000000..edeac0355d8 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image17.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ed4d5182ce40c47ac28f53a162bdf518ecf32e5c2de784008cccd5ae06296110 +size 65074 diff --git a/product_docs/docs/eprs/6.2/images/image17.png b/product_docs/docs/eprs/6.2/images/image17.png new file mode 100644 index 00000000000..d0973e3e4cb --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image17.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:21ca0af58642f4055f2a6ebc81fd733ad70602fd3e08871dd0c38c5294df2c4a +size 333615 diff --git a/product_docs/docs/eprs/6.2/images/image170.jpg b/product_docs/docs/eprs/6.2/images/image170.jpg new file mode 100644 index 00000000000..79540411c9d --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image170.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:202f97c49a44956d309af3f31d8508def45b8291f2fb17cea05381330018173f +size 194580 diff --git a/product_docs/docs/eprs/6.2/images/image170.png b/product_docs/docs/eprs/6.2/images/image170.png new file mode 100644 index 00000000000..c3c615728e3 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image170.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b6ba59c12004da5573ce5a209f7dfcbbd3521825c4dd73cd5f3e30df9d1838b3 +size 260953 diff --git a/product_docs/docs/eprs/6.2/images/image171.jpg b/product_docs/docs/eprs/6.2/images/image171.jpg new file mode 100644 index 00000000000..c1ca109b153 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image171.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:51a78a95c119fee7e86712539dec42c10a3d159cd8cf248f22c27384a5b84aed +size 132511 diff --git a/product_docs/docs/eprs/6.2/images/image171.png b/product_docs/docs/eprs/6.2/images/image171.png new file mode 100644 index 00000000000..2d6d3ae58a7 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image171.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:30d2fd98e7066ede4e2285d1cbe1656ba05e9d61ccc04860350083a1e23eca16 +size 125225 diff --git a/product_docs/docs/eprs/6.2/images/image172.jpg b/product_docs/docs/eprs/6.2/images/image172.jpg new file mode 100644 index 00000000000..fab56c673b6 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image172.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6d00d6f1c3b25613b9d79484e4d52ed7a8ed142b329e6997ffab2795fa20b7d8 +size 152006 diff --git a/product_docs/docs/eprs/6.2/images/image172.png b/product_docs/docs/eprs/6.2/images/image172.png new file mode 100644 index 00000000000..9504486e956 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image172.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cefd5ff52c179c7f8dd4cf21bb37451022375f04cc1a2c9d0372a94db5abda08 +size 161984 diff --git a/product_docs/docs/eprs/6.2/images/image173.jpg b/product_docs/docs/eprs/6.2/images/image173.jpg new file mode 100644 index 00000000000..ed1fccfeb30 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image173.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:335f0229e3589069858e85cdaeff5f443365e39f18ba04dcbb2d1e2b7b123ba7 +size 135558 diff --git a/product_docs/docs/eprs/6.2/images/image173.png b/product_docs/docs/eprs/6.2/images/image173.png new file mode 100644 index 00000000000..46bb3b4ffa7 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image173.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8eb994ebb55a081794246ca21a1f21550e1e9df72e142f80317ebad66a1a3271 +size 192003 diff --git a/product_docs/docs/eprs/6.2/images/image174.jpg b/product_docs/docs/eprs/6.2/images/image174.jpg new file mode 100644 index 00000000000..3af8ed34ee8 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image174.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8daaf1c13cbe56027df843ab89d1f3e29de20cb4ba605b63f97025e2086fd0c7 +size 169293 diff --git a/product_docs/docs/eprs/6.2/images/image174.png b/product_docs/docs/eprs/6.2/images/image174.png new file mode 100644 index 00000000000..dd742c1918c --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image174.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:64fcdd1cff1540af67ef27244e512312184d00ed8143b73de842c567ac36c7e3 +size 230545 diff --git a/product_docs/docs/eprs/6.2/images/image175.jpg b/product_docs/docs/eprs/6.2/images/image175.jpg new file mode 100644 index 00000000000..39d66079f56 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image175.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a64bbceacba0683020c69b459c7604760b6291f35367b9710c41c6b6e420af67 +size 103369 diff --git a/product_docs/docs/eprs/6.2/images/image175.png b/product_docs/docs/eprs/6.2/images/image175.png new file mode 100644 index 00000000000..ee90615640e --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image175.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9447a1db5132b43cf683a98f21df45fb21aa8bbfe3bb7235f6d36da53d1404ae +size 122593 diff --git a/product_docs/docs/eprs/6.2/images/image176.jpg b/product_docs/docs/eprs/6.2/images/image176.jpg new file mode 100644 index 00000000000..553cf6e5ac8 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image176.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:902f4001f1a2e50df0c2b7e867423191bd406c4ff68a023f5d58ed776a2a8c38 +size 88753 diff --git a/product_docs/docs/eprs/6.2/images/image176.png b/product_docs/docs/eprs/6.2/images/image176.png new file mode 100644 index 00000000000..e455fa8fb15 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image176.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:074366936bf3a5067d9105368dd68e4593ad2d0bbb30994d941ba755f6946754 +size 105289 diff --git a/product_docs/docs/eprs/6.2/images/image177.jpg b/product_docs/docs/eprs/6.2/images/image177.jpg new file mode 100644 index 00000000000..226b320eab1 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image177.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7f78487667dc231b8e2bd96e906dfcc2bd0010b5ce5af42e65bb3165c1874172 +size 136138 diff --git a/product_docs/docs/eprs/6.2/images/image177.png b/product_docs/docs/eprs/6.2/images/image177.png new file mode 100644 index 00000000000..1814ad9428a --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image177.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:83cc4f99863b611bf32198d75b69beade3165ba813aac8a3107cdf8f90cf0896 +size 163062 diff --git a/product_docs/docs/eprs/6.2/images/image178.jpg b/product_docs/docs/eprs/6.2/images/image178.jpg new file mode 100644 index 00000000000..ff38032043d --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image178.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dc9128aa082872dc37f3252a1651ff9be2c5afedd268dcc7be818124d4530df6 +size 175017 diff --git a/product_docs/docs/eprs/6.2/images/image178.png b/product_docs/docs/eprs/6.2/images/image178.png new file mode 100644 index 00000000000..83e47c359c0 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image178.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:86d5f1de7b53198d114168f0fd0c409429ced226be1bad1ce85a411cea50d3de +size 225887 diff --git a/product_docs/docs/eprs/6.2/images/image179.jpg b/product_docs/docs/eprs/6.2/images/image179.jpg new file mode 100644 index 00000000000..1c994cda2dc --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image179.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c2267864534feb1031a2614b21ff2dae2ac269a97b8dc50a875e094c260e221d +size 153608 diff --git a/product_docs/docs/eprs/6.2/images/image179.png b/product_docs/docs/eprs/6.2/images/image179.png new file mode 100644 index 00000000000..9c7075623e1 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image179.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6a463a588a3d878624af42afb2360279e822e4507fff713081add8c757b9b111 +size 215624 diff --git a/product_docs/docs/eprs/6.2/images/image18.jpg b/product_docs/docs/eprs/6.2/images/image18.jpg new file mode 100644 index 00000000000..3a87d088264 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image18.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9cea72519e860f21e00102ef631af0377d68d41363d0cf08c94d7a2c79aba09b +size 142861 diff --git a/product_docs/docs/eprs/6.2/images/image18.png b/product_docs/docs/eprs/6.2/images/image18.png new file mode 100644 index 00000000000..2934f45b2c9 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image18.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1fe9adebeeaf207328bc173e5ed76465b9252b4d1d97e39e70251f611f8bc098 +size 214280 diff --git a/product_docs/docs/eprs/6.2/images/image180.jpg b/product_docs/docs/eprs/6.2/images/image180.jpg new file mode 100644 index 00000000000..42ebd6f40f4 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image180.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3c0b2c8d8c4dc53d7178e8ad5f1b02bfc610a3e3e23386216713269dda3d2d87 +size 198120 diff --git a/product_docs/docs/eprs/6.2/images/image180.png b/product_docs/docs/eprs/6.2/images/image180.png new file mode 100644 index 00000000000..d408810ebda --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image180.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7b928a7f1e91d89730357d10aefdc6ecf2b4f1a05be9e80691c06243e4272d94 +size 274205 diff --git a/product_docs/docs/eprs/6.2/images/image181.jpg b/product_docs/docs/eprs/6.2/images/image181.jpg new file mode 100644 index 00000000000..209ba9f4d24 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image181.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:05e2d89eb5d9afcbf002caabf38726d65545cb116e2caf22bb3c3878a961be24 +size 189496 diff --git a/product_docs/docs/eprs/6.2/images/image181.png b/product_docs/docs/eprs/6.2/images/image181.png new file mode 100644 index 00000000000..cc6d6d5ecad --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image181.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d05fded2084ef9c0688677fc716554b3398e6e44c56df95e9d1a2cbbfdddd6cf +size 237133 diff --git a/product_docs/docs/eprs/6.2/images/image182.jpg b/product_docs/docs/eprs/6.2/images/image182.jpg new file mode 100644 index 00000000000..8a2942acc85 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image182.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b4b527ca7aa6489a034b28f27a87d48fe161225588829c22dfcd3764cf7fb3c6 +size 168139 diff --git a/product_docs/docs/eprs/6.2/images/image182.png b/product_docs/docs/eprs/6.2/images/image182.png new file mode 100644 index 00000000000..0d0802e7188 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image182.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0d33a154bbb234b6b0c79301b40442ba2d08c0dba95f8da0dfa3649c6b826728 +size 223481 diff --git a/product_docs/docs/eprs/6.2/images/image183.jpg b/product_docs/docs/eprs/6.2/images/image183.jpg new file mode 100644 index 00000000000..21d0741024e --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image183.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ebfc4c7b67714b73538d7bc4a1a8d5580d23c2210d0b42dc4551b6fb005c23ef +size 286906 diff --git a/product_docs/docs/eprs/6.2/images/image183.png b/product_docs/docs/eprs/6.2/images/image183.png new file mode 100644 index 00000000000..bfbf0573340 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image183.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:88991873f1af80f7db3ef61102c91f48c25c35e8c83b9e362dde0d8ee0b8691e +size 376400 diff --git a/product_docs/docs/eprs/6.2/images/image184.jpg b/product_docs/docs/eprs/6.2/images/image184.jpg new file mode 100644 index 00000000000..10c1281e1fa --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image184.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1468d29b03f22acea6cd74d2503b8054a5af8ac0bce5c50015c296c940830f38 +size 202178 diff --git a/product_docs/docs/eprs/6.2/images/image184.png b/product_docs/docs/eprs/6.2/images/image184.png new file mode 100644 index 00000000000..441806b5535 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image184.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:be7829aee871c6a7107ae41b49a86e09ec5a03b6416b57b9a0c1c1c8f8b6efd6 +size 190114 diff --git a/product_docs/docs/eprs/6.2/images/image185.jpg b/product_docs/docs/eprs/6.2/images/image185.jpg new file mode 100644 index 00000000000..3b8ff32477f --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image185.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b92d4df881dba01865bb34c973a54f1af8aa67213670650bea30744c380a63d +size 235011 diff --git a/product_docs/docs/eprs/6.2/images/image185.png b/product_docs/docs/eprs/6.2/images/image185.png new file mode 100644 index 00000000000..536434f9422 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image185.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fdc2bac40c6a534525e523449871b62d904099d7883c536cfcd8bc180658654e +size 224620 diff --git a/product_docs/docs/eprs/6.2/images/image186.jpg b/product_docs/docs/eprs/6.2/images/image186.jpg new file mode 100644 index 00000000000..bb05a3733ef --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image186.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f16fa87a7b34bec2b4c232e65d4ed32a360f4973718759fe7e3e764b46be2822 +size 134441 diff --git a/product_docs/docs/eprs/6.2/images/image186.png b/product_docs/docs/eprs/6.2/images/image186.png new file mode 100644 index 00000000000..599dfea895f --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image186.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0bbb07c3a0f98720d7c9767d23854195f47a3bd1380a6c79b5b8f579744f43eb +size 133731 diff --git a/product_docs/docs/eprs/6.2/images/image187.jpg b/product_docs/docs/eprs/6.2/images/image187.jpg new file mode 100644 index 00000000000..ce263eac90e --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image187.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a7193c22bc3537197ba4edcb159c5c9af5d494f17ba600329a2bbc8809d112f6 +size 133725 diff --git a/product_docs/docs/eprs/6.2/images/image187.png b/product_docs/docs/eprs/6.2/images/image187.png new file mode 100644 index 00000000000..46db8c06bba --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image187.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b2fa4e9cb2cec11c8b67537d950f2946d2c77b8804709b6f1065bee5c664eda +size 136054 diff --git a/product_docs/docs/eprs/6.2/images/image188.jpg b/product_docs/docs/eprs/6.2/images/image188.jpg new file mode 100644 index 00000000000..35578082841 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image188.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f17efd987f468379dc5e930aa961109ef05e2e47ea7f9c307bda4a9d62d22996 +size 106950 diff --git a/product_docs/docs/eprs/6.2/images/image188.png b/product_docs/docs/eprs/6.2/images/image188.png new file mode 100644 index 00000000000..1ac2ba6b4c5 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image188.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f499dc2ca0c86ed3e271dfa802e0126370a962ddbb54224a7f135eefc9b2096d +size 98311 diff --git a/product_docs/docs/eprs/6.2/images/image189.jpg b/product_docs/docs/eprs/6.2/images/image189.jpg new file mode 100644 index 00000000000..94f95d5f8db --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image189.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fc5db64903eb5206a3750d2354f0658920cdfa384f7a941b61683bb7f1f14244 +size 132937 diff --git a/product_docs/docs/eprs/6.2/images/image189.png b/product_docs/docs/eprs/6.2/images/image189.png new file mode 100644 index 00000000000..e758519e11d --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image189.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3f539113866f0f7c00b691b285c0f0a164523b7a2cd2eb51b2bdf27347587e3c +size 130471 diff --git a/product_docs/docs/eprs/6.2/images/image19.jpg b/product_docs/docs/eprs/6.2/images/image19.jpg new file mode 100644 index 00000000000..dcdedfee0fa --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image19.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6cd6e4e2ba2152710fef5597185669e45e1842f9a7035f7607dbb0d7c82f7bc7 +size 65250 diff --git a/product_docs/docs/eprs/6.2/images/image19.png b/product_docs/docs/eprs/6.2/images/image19.png new file mode 100644 index 00000000000..d8fe526a75b --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image19.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cdfe3222c5bce9721bde3c9094d5332c7ba6be27846d81a77eb697909f0a5a76 +size 329004 diff --git a/product_docs/docs/eprs/6.2/images/image190.jpg b/product_docs/docs/eprs/6.2/images/image190.jpg new file mode 100644 index 00000000000..d81da6f806d --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image190.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ae7b57909771940961e76b26e1e3e34cdc6c70391eb2f6e27fa87678cedceca1 +size 134252 diff --git a/product_docs/docs/eprs/6.2/images/image190.png b/product_docs/docs/eprs/6.2/images/image190.png new file mode 100644 index 00000000000..d4a3d632828 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image190.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1c1d5229bb4e155c0d9adc30dece9f26f1a8b7718437499627c3c94ac960f548 +size 127648 diff --git a/product_docs/docs/eprs/6.2/images/image191.jpg b/product_docs/docs/eprs/6.2/images/image191.jpg new file mode 100644 index 00000000000..796e415a27c --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image191.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6655e478e0615a4b8c05e59d3cd9986f344464eeef868b75a0ecc317d9b39b10 +size 90906 diff --git a/product_docs/docs/eprs/6.2/images/image191.png b/product_docs/docs/eprs/6.2/images/image191.png new file mode 100644 index 00000000000..66f48c9fad9 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image191.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac1267a32845a1cccc2d3ba992230074045d826d1c44ad9dd521210045aceeea +size 83190 diff --git a/product_docs/docs/eprs/6.2/images/image192.jpg b/product_docs/docs/eprs/6.2/images/image192.jpg new file mode 100644 index 00000000000..528a0c6105c --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image192.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af14607fab255c7c0838034ec7afa76abe92452b49e7f8d5b92d886318003235 +size 259097 diff --git a/product_docs/docs/eprs/6.2/images/image192.png b/product_docs/docs/eprs/6.2/images/image192.png new file mode 100644 index 00000000000..188fbac3da4 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image192.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bca033e4295f99b5bde826a19611f18f1bf7a2a59ad4cf6b47501363f4c4832d +size 261889 diff --git a/product_docs/docs/eprs/6.2/images/image193.jpg b/product_docs/docs/eprs/6.2/images/image193.jpg new file mode 100644 index 00000000000..eb9b7ad61dc --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image193.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7b7fda09735cfe4b4aa2d8fe711a3d9454a89d7c57a63397f475477506c9fc8e +size 144661 diff --git a/product_docs/docs/eprs/6.2/images/image193.png b/product_docs/docs/eprs/6.2/images/image193.png new file mode 100644 index 00000000000..034e274710b --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image193.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3672ff65e0c7167157b39540edd2d775611acdd5e006b44b8fe0e89a4f8887e0 +size 144875 diff --git a/product_docs/docs/eprs/6.2/images/image194.jpg b/product_docs/docs/eprs/6.2/images/image194.jpg new file mode 100644 index 00000000000..eaada05a840 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image194.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0a56c9cc2b02f2f1190e881253c159578c3f3030e3138ba96dd00708e8033a4d +size 157260 diff --git a/product_docs/docs/eprs/6.2/images/image194.png b/product_docs/docs/eprs/6.2/images/image194.png new file mode 100644 index 00000000000..65042fab389 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image194.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:669a6d1230edd23d25b9262ee25d6db0cc81eb4ec222a08a3ec6da1b75cc50b1 +size 160786 diff --git a/product_docs/docs/eprs/6.2/images/image195.jpg b/product_docs/docs/eprs/6.2/images/image195.jpg new file mode 100644 index 00000000000..57dc999cff3 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image195.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3d88c66d841f1ef0f685412343ccce450f6b47090f683b8aa7182562732c5263 +size 158568 diff --git a/product_docs/docs/eprs/6.2/images/image195.png b/product_docs/docs/eprs/6.2/images/image195.png new file mode 100644 index 00000000000..85128d83866 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image195.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3c2efabf979aacc6750a008b7dbef09e8838b70b39f28fc4bfdd55e17a173363 +size 159783 diff --git a/product_docs/docs/eprs/6.2/images/image196.jpg b/product_docs/docs/eprs/6.2/images/image196.jpg new file mode 100644 index 00000000000..5442585cfdf --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image196.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e483f478c37ac20018c993c93de4e2a80342a09f5c2495a9eb31eabe1b6821bb +size 203105 diff --git a/product_docs/docs/eprs/6.2/images/image196.png b/product_docs/docs/eprs/6.2/images/image196.png new file mode 100644 index 00000000000..35c53b0acbf --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image196.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8d0f1381819822047e48750ca4dee540c7b49801802636670f836bddc19f1f0e +size 189549 diff --git a/product_docs/docs/eprs/6.2/images/image197.jpg b/product_docs/docs/eprs/6.2/images/image197.jpg new file mode 100644 index 00000000000..9497b438d26 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image197.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4a17ba9f296374d4e7a6fe8f7c682129d8ae7f3c6a65c93c705992da7908f531 +size 218237 diff --git a/product_docs/docs/eprs/6.2/images/image197.png b/product_docs/docs/eprs/6.2/images/image197.png new file mode 100644 index 00000000000..a9315d895fa --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image197.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:88adbcbdada745636db16c48cb337fa3ba94a39ec4281e6dc70f1d34cf15b044 +size 217922 diff --git a/product_docs/docs/eprs/6.2/images/image198.jpg b/product_docs/docs/eprs/6.2/images/image198.jpg new file mode 100644 index 00000000000..9f36eb07730 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image198.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ca5ca9222bd653260cca8530a661fb00459ff89130db305022f0bbaa755ef542 +size 181919 diff --git a/product_docs/docs/eprs/6.2/images/image198.png b/product_docs/docs/eprs/6.2/images/image198.png new file mode 100644 index 00000000000..e6366c050a6 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image198.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a15b3ba7e6f4ab82d7dcb23ca07da8a16c642b00c50c12dae6c2f955a3ad372 +size 183898 diff --git a/product_docs/docs/eprs/6.2/images/image199.jpg b/product_docs/docs/eprs/6.2/images/image199.jpg new file mode 100644 index 00000000000..8052772dd7d --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image199.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a687443a1e5d4dd300bf1cbb378abaf84f6b655f1a84f2ad901435fddf82804 +size 167995 diff --git a/product_docs/docs/eprs/6.2/images/image199.png b/product_docs/docs/eprs/6.2/images/image199.png new file mode 100644 index 00000000000..51cc15b0287 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image199.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:537287258328b4819d2db76d1ff1ec0223d1cba2d693c06917f280b93d681859 +size 236720 diff --git a/product_docs/docs/eprs/6.2/images/image2.png b/product_docs/docs/eprs/6.2/images/image2.png new file mode 100644 index 00000000000..edc64a0ff46 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:50824c247a9be22f3c0e10a02d4ed308dce6ce9a86adfd87bb439a00d8c121c1 +size 92905 diff --git a/product_docs/docs/eprs/6.2/images/image20.jpg b/product_docs/docs/eprs/6.2/images/image20.jpg new file mode 100644 index 00000000000..94c7d8ef599 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image20.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c4343b9682887a61c1f99aedee8d0492f0a403dc7170f6e3f17aad64f152f918 +size 126571 diff --git a/product_docs/docs/eprs/6.2/images/image20.png b/product_docs/docs/eprs/6.2/images/image20.png new file mode 100644 index 00000000000..feb8ae7ba64 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image20.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5def9a180c6d606dee58d13c39059b81d3d21d240caeeae13c79792a523e7cc6 +size 193654 diff --git a/product_docs/docs/eprs/6.2/images/image200.jpg b/product_docs/docs/eprs/6.2/images/image200.jpg new file mode 100644 index 00000000000..b652ebff75b --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image200.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0a7800b9534558581792d8b632b360815eb2692a27b5bee334bec3d133f83455 +size 169370 diff --git a/product_docs/docs/eprs/6.2/images/image200.png b/product_docs/docs/eprs/6.2/images/image200.png new file mode 100644 index 00000000000..fc148952f76 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image200.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b360d17a4557daf71ea530bc927660ab4e3cad7400b16560429389a7f2e34d02 +size 230644 diff --git a/product_docs/docs/eprs/6.2/images/image201.jpg b/product_docs/docs/eprs/6.2/images/image201.jpg new file mode 100644 index 00000000000..6efd1784124 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image201.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc1c58dbcaf5540378042271e6716cd16d5d4149947d29e3dff87c311bde7250 +size 143677 diff --git a/product_docs/docs/eprs/6.2/images/image201.png b/product_docs/docs/eprs/6.2/images/image201.png new file mode 100644 index 00000000000..feafa7a5d02 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image201.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6808dcf03d1d9ce0e5d52801ba6ff4300e4b0c93164d3d7ebec534b0bf8b89ed +size 198378 diff --git a/product_docs/docs/eprs/6.2/images/image202.jpg b/product_docs/docs/eprs/6.2/images/image202.jpg new file mode 100644 index 00000000000..f4c2047459b --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image202.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:48a91f8a211d6ffb3fea9621422e0985dd4cc30591ae6fc130af71b3aad4cc10 +size 200033 diff --git a/product_docs/docs/eprs/6.2/images/image202.png b/product_docs/docs/eprs/6.2/images/image202.png new file mode 100644 index 00000000000..2bec6e74b68 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image202.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f32e67101c9cf5ad65dd7a693575de579c5b27101859a6c1b37db2aa12fa7af5 +size 266778 diff --git a/product_docs/docs/eprs/6.2/images/image203.jpg b/product_docs/docs/eprs/6.2/images/image203.jpg new file mode 100644 index 00000000000..77e784b0655 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image203.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:401e96510b711df9de3ed0f6d5d9233957e03f4ddecb36941080dfc08cbb9ac8 +size 86815 diff --git a/product_docs/docs/eprs/6.2/images/image203.png b/product_docs/docs/eprs/6.2/images/image203.png new file mode 100644 index 00000000000..77abd229806 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image203.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aef8628ac3fb44b160e3138815f51d77b6a3a66bc05ccd4e8e6aa1c3d7489572 +size 106563 diff --git a/product_docs/docs/eprs/6.2/images/image204.jpg b/product_docs/docs/eprs/6.2/images/image204.jpg new file mode 100644 index 00000000000..b5dc8a05ef1 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image204.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9976a5db3c0b1eb2ddd53fc13e7b8dba60d1b601e1e98ed619b3d0f2b4257a68 +size 120136 diff --git a/product_docs/docs/eprs/6.2/images/image204.png b/product_docs/docs/eprs/6.2/images/image204.png new file mode 100644 index 00000000000..9b259c4a3b1 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image204.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4e756e6ff3d5d07f7f3f0b69281f100a88e3f4119c67f6d5080ae3c19abf247b +size 141283 diff --git a/product_docs/docs/eprs/6.2/images/image205.jpg b/product_docs/docs/eprs/6.2/images/image205.jpg new file mode 100644 index 00000000000..9a0a8696e09 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image205.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ad5b548eb6738bbaa79db087423f729e0861ddcc01df354617b72b5a375afe88 +size 80740 diff --git a/product_docs/docs/eprs/6.2/images/image205.png b/product_docs/docs/eprs/6.2/images/image205.png new file mode 100644 index 00000000000..44902580bb2 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image205.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9140b6174b37af353ff2b2f87b2e40d5ba37ab1b03246caa59fd75269b9a35d8 +size 97637 diff --git a/product_docs/docs/eprs/6.2/images/image206.jpg b/product_docs/docs/eprs/6.2/images/image206.jpg new file mode 100644 index 00000000000..10179856d0c --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image206.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa03be8e77939c64ff2ca651091b96651c7793bfd6a62abe4e321d676207ffa5 +size 192455 diff --git a/product_docs/docs/eprs/6.2/images/image206.png b/product_docs/docs/eprs/6.2/images/image206.png new file mode 100644 index 00000000000..b3259a4a302 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image206.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a5f45da6b9abbe96ba122f2e1d48c0613601713ef38069cd6572e50e958ed07f +size 250336 diff --git a/product_docs/docs/eprs/6.2/images/image207.jpg b/product_docs/docs/eprs/6.2/images/image207.jpg new file mode 100644 index 00000000000..0ca8ea7ceb4 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image207.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f9776a70260ce6ce570e7cde39507a58fcb0793aead01130fd8ab1ef3d15ed4a +size 158281 diff --git a/product_docs/docs/eprs/6.2/images/image207.png b/product_docs/docs/eprs/6.2/images/image207.png new file mode 100644 index 00000000000..f8d717844bc --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image207.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5561bc759c3e404d73db11d0cfd8c057fa9f2cc817f482d4e38baeed144c1320 +size 218938 diff --git a/product_docs/docs/eprs/6.2/images/image208.jpg b/product_docs/docs/eprs/6.2/images/image208.jpg new file mode 100644 index 00000000000..14456239a5f --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image208.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7f910a9f6d5accff7b966ff5aaf28b2ab55debf638cecc5a32f27a801bd1d4f1 +size 152469 diff --git a/product_docs/docs/eprs/6.2/images/image208.png b/product_docs/docs/eprs/6.2/images/image208.png new file mode 100644 index 00000000000..09371232c30 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image208.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:efbedc3d81d088fc55271b85ce29e051e48910c69bececedcb995b7bda71df43 +size 204611 diff --git a/product_docs/docs/eprs/6.2/images/image209.jpg b/product_docs/docs/eprs/6.2/images/image209.jpg new file mode 100644 index 00000000000..fea6008c238 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image209.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0bb64e5ff9f81fe94e66437be6bfb7b528f4f768196aa663565ca47b2877e7f4 +size 161578 diff --git a/product_docs/docs/eprs/6.2/images/image209.png b/product_docs/docs/eprs/6.2/images/image209.png new file mode 100644 index 00000000000..5109f638e00 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image209.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0cfdfbd2f2efed33bc42e61db0663664e76b28c846620810fd7babca1752cb4a +size 228784 diff --git a/product_docs/docs/eprs/6.2/images/image21.png b/product_docs/docs/eprs/6.2/images/image21.png new file mode 100644 index 00000000000..e8ce2c60c26 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image21.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:746059857ce6f21b1fb4b61ae053890dad165f931d513d600e07131a90d9c0cc +size 1134988 diff --git a/product_docs/docs/eprs/6.2/images/image210.jpg b/product_docs/docs/eprs/6.2/images/image210.jpg new file mode 100644 index 00000000000..82fb6354959 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image210.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8ab9170199d1e58ad1ecb3ee818c823ffe4521160d57d9d3ae5f6ac756f70b4f +size 207485 diff --git a/product_docs/docs/eprs/6.2/images/image210.png b/product_docs/docs/eprs/6.2/images/image210.png new file mode 100644 index 00000000000..3952d8eebe0 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image210.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3480f7fb23cfb05cd18c807d33b4daa4c52d76371f80f06b77b262f74c28344f +size 271861 diff --git a/product_docs/docs/eprs/6.2/images/image211.jpg b/product_docs/docs/eprs/6.2/images/image211.jpg new file mode 100644 index 00000000000..8aec8613c74 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image211.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:28bdc63a0a0699cbe2e307b9a85ea7aae11d9f8020ca9e35ed4aeb9b63f922e2 +size 96790 diff --git a/product_docs/docs/eprs/6.2/images/image211.png b/product_docs/docs/eprs/6.2/images/image211.png new file mode 100644 index 00000000000..2036cc4da84 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image211.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a2cffbb18fc3cdc401a3c836636416206403353110fb16059e9f1adf31d90e39 +size 108790 diff --git a/product_docs/docs/eprs/6.2/images/image212.jpg b/product_docs/docs/eprs/6.2/images/image212.jpg new file mode 100644 index 00000000000..cc98414281f --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image212.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4eb80832bb8d548bb8f13c7f0da4f072c242f420c58763833f9c3d2b1fa4d734 +size 156144 diff --git a/product_docs/docs/eprs/6.2/images/image212.png b/product_docs/docs/eprs/6.2/images/image212.png new file mode 100644 index 00000000000..ed1996f4d34 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image212.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c5ca6880749ba210b49eb38de38db7e6c4d58b91420fec7dd701c61396300239 +size 221950 diff --git a/product_docs/docs/eprs/6.2/images/image213.jpg b/product_docs/docs/eprs/6.2/images/image213.jpg new file mode 100644 index 00000000000..0fa15720f60 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image213.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:515faf23ee4a0bdd3c42fa0895979ae0b1b2dacfb289edfa703fa22a77b136dd +size 189613 diff --git a/product_docs/docs/eprs/6.2/images/image213.png b/product_docs/docs/eprs/6.2/images/image213.png new file mode 100644 index 00000000000..88d0ac52c75 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image213.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6822251dfbc2542b4ffba9f961f607dbc10ad0feb3dd25842e6be58570666280 +size 262949 diff --git a/product_docs/docs/eprs/6.2/images/image214.jpg b/product_docs/docs/eprs/6.2/images/image214.jpg new file mode 100644 index 00000000000..3829302ad6d --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image214.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ace6aabb6f6d49af12c6a3cd903da129955027c6f24351eba32da72ac86f00e5 +size 153166 diff --git a/product_docs/docs/eprs/6.2/images/image214.png b/product_docs/docs/eprs/6.2/images/image214.png new file mode 100644 index 00000000000..240d7b86364 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image214.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:baf3341c0b44c8dce2f4293db06ada8c5c00d311d5d03ab672549aef60ac9d4e +size 212082 diff --git a/product_docs/docs/eprs/6.2/images/image215.jpg b/product_docs/docs/eprs/6.2/images/image215.jpg new file mode 100644 index 00000000000..2bf3b3930a7 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image215.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:675dc0609319713750f009a992d6c3bf3a54511a829500f84d7f4cd6ffc6c819 +size 161245 diff --git a/product_docs/docs/eprs/6.2/images/image215.png b/product_docs/docs/eprs/6.2/images/image215.png new file mode 100644 index 00000000000..215e8a443c9 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image215.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e430d2e21d740266e772a6f939fe29bfe537c80fc5ebed8c0e991e05423012dd +size 221561 diff --git a/product_docs/docs/eprs/6.2/images/image216.jpg b/product_docs/docs/eprs/6.2/images/image216.jpg new file mode 100644 index 00000000000..097816dcadf --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image216.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:962bcd333e12daf4697c64a2dcbf68e6e7b5a11d03331c1d284710a40e413dc2 +size 138812 diff --git a/product_docs/docs/eprs/6.2/images/image216.png b/product_docs/docs/eprs/6.2/images/image216.png new file mode 100644 index 00000000000..5e8ee51d662 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image216.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b60b7a705227ce04d7b0536e5beb350f2ec33870cb1c8ce41da6fba4b3f65f48 +size 204345 diff --git a/product_docs/docs/eprs/6.2/images/image217.jpg b/product_docs/docs/eprs/6.2/images/image217.jpg new file mode 100644 index 00000000000..1e4147db86f --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image217.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5d1ac5a533fe7c3ace9658dfb3466352d2f72454ac5ae5fa38f6200f75b0535d +size 223845 diff --git a/product_docs/docs/eprs/6.2/images/image217.png b/product_docs/docs/eprs/6.2/images/image217.png new file mode 100644 index 00000000000..1e988e630ff --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image217.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8ae12a5a600c90d9ebd5861c24b9006db52f1ba5521fe25d0f4241c293897aa0 +size 233770 diff --git a/product_docs/docs/eprs/6.2/images/image218.jpg b/product_docs/docs/eprs/6.2/images/image218.jpg new file mode 100644 index 00000000000..6288e0b5de3 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image218.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3723c10b0b582429f77c97a141d2f91d64810ed50f8e6144873d4ac12be62940 +size 295264 diff --git a/product_docs/docs/eprs/6.2/images/image218.png b/product_docs/docs/eprs/6.2/images/image218.png new file mode 100644 index 00000000000..a7e8a59d39d --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image218.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0a13b7c8202268de71d9a665c583e8b0d8fa68c3866b7a700caa4912790e2a4d +size 299092 diff --git a/product_docs/docs/eprs/6.2/images/image219.jpg b/product_docs/docs/eprs/6.2/images/image219.jpg new file mode 100644 index 00000000000..7a8b0a5e8c4 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image219.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d1b6d9dbae4a79229272312fa4133d2cadf49bb78b4aa2753f476e5ebaaa9760 +size 210875 diff --git a/product_docs/docs/eprs/6.2/images/image219.png b/product_docs/docs/eprs/6.2/images/image219.png new file mode 100644 index 00000000000..cda8b41f459 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image219.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fb37c3dfb87e5801c15de036230cd4501059c10986e0a8e72143c28ea0e2b40c +size 208874 diff --git a/product_docs/docs/eprs/6.2/images/image22.jpg b/product_docs/docs/eprs/6.2/images/image22.jpg new file mode 100644 index 00000000000..a3d9adedf4b --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image22.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9ea037665883b9b3cdd21a4b8733010cb0aaf34bdcd838a8ab0189b374ab07b8 +size 188494 diff --git a/product_docs/docs/eprs/6.2/images/image22.png b/product_docs/docs/eprs/6.2/images/image22.png new file mode 100644 index 00000000000..1e51eb1dbf5 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image22.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:94890930db46333dcaf3da9b1d5ebe6a2f08619ef4ffca72d7c9429cf8a535a9 +size 266181 diff --git a/product_docs/docs/eprs/6.2/images/image220.jpg b/product_docs/docs/eprs/6.2/images/image220.jpg new file mode 100644 index 00000000000..6768799bcb5 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image220.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:13276f44be9e4fa7fbf95dc5c2e7e0696ff5a8d962849675a56261d473a50723 +size 205735 diff --git a/product_docs/docs/eprs/6.2/images/image220.png b/product_docs/docs/eprs/6.2/images/image220.png new file mode 100644 index 00000000000..07a7ab1cb1e --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image220.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1356f734b587428a2efbb22b9332350c591099ec1db1223d9bdd1736319d6c8b +size 265690 diff --git a/product_docs/docs/eprs/6.2/images/image221.jpg b/product_docs/docs/eprs/6.2/images/image221.jpg new file mode 100644 index 00000000000..2fe4c5c8f67 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image221.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e2d6613fd894039a6437cc321eec19728cad2ee3f62a684adb1bbd54c1f8799f +size 91299 diff --git a/product_docs/docs/eprs/6.2/images/image221.png b/product_docs/docs/eprs/6.2/images/image221.png new file mode 100644 index 00000000000..c8f8dff03ed --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image221.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d82545f7dce6e24420eb23291b63cf20d6e11c5f0162a4b1a8e0ba2f685a66a1 +size 94739 diff --git a/product_docs/docs/eprs/6.2/images/image222.jpg b/product_docs/docs/eprs/6.2/images/image222.jpg new file mode 100644 index 00000000000..ac8bf2f01a8 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image222.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ebdb2da68fab1f8fd62498dbaeba3e74256b26f52f5e112c937a4bd43cf92c2e +size 190203 diff --git a/product_docs/docs/eprs/6.2/images/image222.png b/product_docs/docs/eprs/6.2/images/image222.png new file mode 100644 index 00000000000..2406707eabb --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image222.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a117ac002c6d385783acbff14c44a590289ae80b54ecba34b218589250224b7 +size 156776 diff --git a/product_docs/docs/eprs/6.2/images/image223.jpg b/product_docs/docs/eprs/6.2/images/image223.jpg new file mode 100644 index 00000000000..6268ed07a85 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image223.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:724e0b963ea5593caa42f21eda8720a52c9f287af7ea878961c0ee3827d720bc +size 132972 diff --git a/product_docs/docs/eprs/6.2/images/image223.png b/product_docs/docs/eprs/6.2/images/image223.png new file mode 100644 index 00000000000..5695544fa66 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image223.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a7d0203f7784475dcb9b78f03f454e096432a100648f35d799b824e7b575d99 +size 189038 diff --git a/product_docs/docs/eprs/6.2/images/image224.jpg b/product_docs/docs/eprs/6.2/images/image224.jpg new file mode 100644 index 00000000000..1ba24ac07e5 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image224.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:57039d7c36eb0bfb0f4fa179e7e952aa763a16c6f2c09a028b1fc2e0a28a6e60 +size 161454 diff --git a/product_docs/docs/eprs/6.2/images/image224.png b/product_docs/docs/eprs/6.2/images/image224.png new file mode 100644 index 00000000000..6326cb99e44 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image224.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:815170497bc4d4974d2f2036a00f9a4c926f039ce8d017b0b30172b78431aed5 +size 190475 diff --git a/product_docs/docs/eprs/6.2/images/image225.jpg b/product_docs/docs/eprs/6.2/images/image225.jpg new file mode 100644 index 00000000000..eb46e5839e8 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image225.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:88dccdd5ac3eaa5de1c4b42b217acfef69f71fb803361714da3b84f7fc83b711 +size 156450 diff --git a/product_docs/docs/eprs/6.2/images/image225.png b/product_docs/docs/eprs/6.2/images/image225.png new file mode 100644 index 00000000000..0850ef33e5d --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image225.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b485a464121cdb3a28bcf92fc5ebfc6225d1b80b2009ab5ffb4b019ef472fe2 +size 179827 diff --git a/product_docs/docs/eprs/6.2/images/image226.jpg b/product_docs/docs/eprs/6.2/images/image226.jpg new file mode 100644 index 00000000000..033892dd145 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image226.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:adb9b26f42b7771c46ab2de9613ebc9323aa1c80fcc610eef843be4c650b0aff +size 160078 diff --git a/product_docs/docs/eprs/6.2/images/image226.png b/product_docs/docs/eprs/6.2/images/image226.png new file mode 100644 index 00000000000..ba00a82a421 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image226.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d8626f6ec4b9b030c7df4e188d4bcc63c0725cb3364129e7566ebd9e49fd976a +size 189694 diff --git a/product_docs/docs/eprs/6.2/images/image227.jpg b/product_docs/docs/eprs/6.2/images/image227.jpg new file mode 100644 index 00000000000..486dbb27c06 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image227.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:db9352371f26e5cfbba0e50b6473563bb6657f3144df9543aed0067afa093e16 +size 135056 diff --git a/product_docs/docs/eprs/6.2/images/image227.png b/product_docs/docs/eprs/6.2/images/image227.png new file mode 100644 index 00000000000..b00b3f52af9 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image227.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f1a7545653ca28de043a997f65a8edffa32126e1c2e2ee1e29e45e96edfeabca +size 192675 diff --git a/product_docs/docs/eprs/6.2/images/image228.jpg b/product_docs/docs/eprs/6.2/images/image228.jpg new file mode 100644 index 00000000000..6d8fb664e41 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image228.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79b82ae2083cc2fa8ed2bab8814cf6160d997626721955c0c508912a55aaea85 +size 167192 diff --git a/product_docs/docs/eprs/6.2/images/image228.png b/product_docs/docs/eprs/6.2/images/image228.png new file mode 100644 index 00000000000..375ac11b696 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image228.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5784090c52000eadcfb6c759ea506f82ae86bbd6197cf31e70b04309aa44f1a7 +size 236919 diff --git a/product_docs/docs/eprs/6.2/images/image229.jpg b/product_docs/docs/eprs/6.2/images/image229.jpg new file mode 100644 index 00000000000..c061b95d929 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image229.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a562b2a2a97bf059ef01a7200961b84f2f4a7d562809d9fff040688e46a31ef6 +size 198241 diff --git a/product_docs/docs/eprs/6.2/images/image229.png b/product_docs/docs/eprs/6.2/images/image229.png new file mode 100644 index 00000000000..bbafe282ce0 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image229.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2c5454e154bbcb96156586c5e840afb0badaac04c54d4715931cb2a1f2116886 +size 265735 diff --git a/product_docs/docs/eprs/6.2/images/image23.jpg b/product_docs/docs/eprs/6.2/images/image23.jpg new file mode 100644 index 00000000000..1f26cc04312 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image23.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4e25b2e7bb585fb77ce150cd7125e1b5a2236b1f0f468ccb93b9b427c07e8c38 +size 31178 diff --git a/product_docs/docs/eprs/6.2/images/image23.png b/product_docs/docs/eprs/6.2/images/image23.png new file mode 100644 index 00000000000..ac7df7f8f99 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image23.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ea0b5889c99f3ff937b53946260b44064d46cc2c73831ce5152515928ceac60 +size 148452 diff --git a/product_docs/docs/eprs/6.2/images/image230.jpg b/product_docs/docs/eprs/6.2/images/image230.jpg new file mode 100644 index 00000000000..e0a0e3ce305 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image230.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d18fa5232caeaa48eb50d67deba8d411c83cbc78def3e15a112fa699b4ba3646 +size 182203 diff --git a/product_docs/docs/eprs/6.2/images/image230.png b/product_docs/docs/eprs/6.2/images/image230.png new file mode 100644 index 00000000000..21ff8e811b7 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image230.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2ca151d59b709a505dd66ec3a4a3c310054d7f7be9e1edc630e6f6a6fd2854bb +size 249469 diff --git a/product_docs/docs/eprs/6.2/images/image231.jpg b/product_docs/docs/eprs/6.2/images/image231.jpg new file mode 100644 index 00000000000..72b07fc281b --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image231.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eeb6ebcb751f6c9482709d7bb5dd19ee40c89fca97be3e017c238df1a239a0d7 +size 245079 diff --git a/product_docs/docs/eprs/6.2/images/image231.png b/product_docs/docs/eprs/6.2/images/image231.png new file mode 100644 index 00000000000..61190e06051 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image231.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e059271a9d3334fa3f680d1f95e6a1b4f4615f9da4016c7588eb5afe0a356a24 +size 328319 diff --git a/product_docs/docs/eprs/6.2/images/image232.jpg b/product_docs/docs/eprs/6.2/images/image232.jpg new file mode 100644 index 00000000000..bfff3e70e36 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image232.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:96ac1f78fb6747b9ca615b1fced36f7888ef38166ef67b316de04a879c0064c2 +size 150313 diff --git a/product_docs/docs/eprs/6.2/images/image232.png b/product_docs/docs/eprs/6.2/images/image232.png new file mode 100644 index 00000000000..cfd0ade083c --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image232.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e130528de68b864df94d484f56740e072f8c92cab86e18748ec2a6c8389d16ba +size 211587 diff --git a/product_docs/docs/eprs/6.2/images/image233.jpg b/product_docs/docs/eprs/6.2/images/image233.jpg new file mode 100644 index 00000000000..fbfb52bcd12 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image233.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a922f1c86a9328be6a166d568d518a878cb4809a2670b838734ea86d913a4393 +size 190109 diff --git a/product_docs/docs/eprs/6.2/images/image233.png b/product_docs/docs/eprs/6.2/images/image233.png new file mode 100644 index 00000000000..988c4dfd50d --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image233.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b3f0bf79675295ba689ab6ebf1f15395919d9334211bae1c2bd8413badf2f80 +size 268633 diff --git a/product_docs/docs/eprs/6.2/images/image234.jpg b/product_docs/docs/eprs/6.2/images/image234.jpg new file mode 100644 index 00000000000..3ca38b064a7 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image234.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2a1de24d8118360a1661cbf8aec3b6839faf2cd8490eedccc1dddc5454dfea4b +size 169379 diff --git a/product_docs/docs/eprs/6.2/images/image234.png b/product_docs/docs/eprs/6.2/images/image234.png new file mode 100644 index 00000000000..e269c2be98e --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image234.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:30c51efc859c4bee0f19b1f335b2d1b15a9fcff3190824745dd9cca79eceb6fd +size 235578 diff --git a/product_docs/docs/eprs/6.2/images/image235.jpg b/product_docs/docs/eprs/6.2/images/image235.jpg new file mode 100644 index 00000000000..3c6106934fe --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image235.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:93a8b9fd3019a7fa722255ce4d750fe991cc4b29e6374e6036f05d8be4e899a0 +size 147113 diff --git a/product_docs/docs/eprs/6.2/images/image235.png b/product_docs/docs/eprs/6.2/images/image235.png new file mode 100644 index 00000000000..2c148e16db5 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image235.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ab30ccaf775d8ff11c4c55958324d53788472ac1405dfdde5eeb28f4236cf57d +size 202453 diff --git a/product_docs/docs/eprs/6.2/images/image236.jpg b/product_docs/docs/eprs/6.2/images/image236.jpg new file mode 100644 index 00000000000..6b285775caa --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image236.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7d319a6781a3df0d3629ab7db26d78dca7030d53c24476aa73365ab423155ae9 +size 128829 diff --git a/product_docs/docs/eprs/6.2/images/image236.png b/product_docs/docs/eprs/6.2/images/image236.png new file mode 100644 index 00000000000..2a155a87721 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image236.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:217a7971395aa1c31fa562dbd140c3643fd1e019c8295ca5335bbf7a936cab45 +size 171536 diff --git a/product_docs/docs/eprs/6.2/images/image237.jpg b/product_docs/docs/eprs/6.2/images/image237.jpg new file mode 100644 index 00000000000..d35067b115c --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image237.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d223f39a3069b6f623425291688fe3ac3ed2b4e9cd9a24949cd50a3812c44e95 +size 54849 diff --git a/product_docs/docs/eprs/6.2/images/image237.png b/product_docs/docs/eprs/6.2/images/image237.png new file mode 100644 index 00000000000..869d4671b27 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image237.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ff848d5df35b33bff4bec0211e6622d796f1b45803fa3eea66460f808dd4318 +size 64230 diff --git a/product_docs/docs/eprs/6.2/images/image238.jpg b/product_docs/docs/eprs/6.2/images/image238.jpg new file mode 100644 index 00000000000..4108b8234f3 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image238.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:861eba41be1da9624fa06d341c202daab14c0bf49c2f02612429e34e94223fa1 +size 67298 diff --git a/product_docs/docs/eprs/6.2/images/image238.png b/product_docs/docs/eprs/6.2/images/image238.png new file mode 100644 index 00000000000..17128c8fcb9 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image238.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:376adf7959412ae7a590024993b29ec92f156ea2ae57016de3f9d26c5db8b5a7 +size 76286 diff --git a/product_docs/docs/eprs/6.2/images/image239.jpg b/product_docs/docs/eprs/6.2/images/image239.jpg new file mode 100644 index 00000000000..b80d41808e2 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image239.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0c4c8eeff5dbb2e3306d5bbd61ee91a6d47e26b1629cb74d6a8271b31b430cfa +size 146569 diff --git a/product_docs/docs/eprs/6.2/images/image239.png b/product_docs/docs/eprs/6.2/images/image239.png new file mode 100644 index 00000000000..acda7a6237f --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image239.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4c144ddaecf6787ade835f635d812c40a9e3b5b50d3b41fed4274d0a4316c62d +size 200093 diff --git a/product_docs/docs/eprs/6.2/images/image24.jpg b/product_docs/docs/eprs/6.2/images/image24.jpg new file mode 100644 index 00000000000..958d045c46d --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image24.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e8fc818f9831e43a44866df1b8778d89344ac097fa3979cce703ad33c5618318 +size 33263 diff --git a/product_docs/docs/eprs/6.2/images/image24.png b/product_docs/docs/eprs/6.2/images/image24.png new file mode 100644 index 00000000000..22e91c394f6 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image24.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4214bb1179402399d5a9c63fbad0c5af3bfca3130ea493037bf666f3ad031851 +size 159346 diff --git a/product_docs/docs/eprs/6.2/images/image240.jpg b/product_docs/docs/eprs/6.2/images/image240.jpg new file mode 100644 index 00000000000..9e230ce6944 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image240.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a0e84ecf54d54c6407116b68099af57788a7ea8109d3b558703a72646bbd3759 +size 52638 diff --git a/product_docs/docs/eprs/6.2/images/image240.png b/product_docs/docs/eprs/6.2/images/image240.png new file mode 100644 index 00000000000..0536da4c836 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image240.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cffc0de70a18700e4ea3103e1388ba27dd414094589d33ec69c2b5b42d06953e +size 58767 diff --git a/product_docs/docs/eprs/6.2/images/image241.jpg b/product_docs/docs/eprs/6.2/images/image241.jpg new file mode 100644 index 00000000000..c656e930ba2 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image241.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:339ec7528ddd3490cd8f6fb2b0df29a6413c7ae1cf00017eb1abe27fb268634a +size 56665 diff --git a/product_docs/docs/eprs/6.2/images/image241.png b/product_docs/docs/eprs/6.2/images/image241.png new file mode 100644 index 00000000000..a3019e5899e --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image241.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:664cf648aedcf8669511831a0e9a512ca7d70d7a2fce9a4e54c3bcfcf6764bd2 +size 66334 diff --git a/product_docs/docs/eprs/6.2/images/image242.jpg b/product_docs/docs/eprs/6.2/images/image242.jpg new file mode 100644 index 00000000000..cb1f77433b4 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image242.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7758be7a3d8c185ac2bb0a3a959c03fe0855b338bc07b5816776f8509cf9321e +size 136330 diff --git a/product_docs/docs/eprs/6.2/images/image242.png b/product_docs/docs/eprs/6.2/images/image242.png new file mode 100644 index 00000000000..684caaed38d --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image242.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1b24f43d5467584a240244e0e6d168809c7699c1287bd8bf5773f2df40425c32 +size 183427 diff --git a/product_docs/docs/eprs/6.2/images/image243.jpg b/product_docs/docs/eprs/6.2/images/image243.jpg new file mode 100644 index 00000000000..8645980fa74 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image243.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8a15f58da572a477a8d4aaf585780a1648a2e60b623a20f96b83808f1e443a21 +size 135894 diff --git a/product_docs/docs/eprs/6.2/images/image243.png b/product_docs/docs/eprs/6.2/images/image243.png new file mode 100644 index 00000000000..6b83f50e376 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image243.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:55e2a361b9d1268ce59c5a022bef8ef11e0d0a6ce72040b6a7ccdd4df1323ea7 +size 152650 diff --git a/product_docs/docs/eprs/6.2/images/image244.jpg b/product_docs/docs/eprs/6.2/images/image244.jpg new file mode 100644 index 00000000000..985651cf388 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image244.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:49058e7555ad50b7feb794b46c116ee18f3e6d5fae216f74373ff645a58620c1 +size 128696 diff --git a/product_docs/docs/eprs/6.2/images/image244.png b/product_docs/docs/eprs/6.2/images/image244.png new file mode 100644 index 00000000000..c9340365594 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image244.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8dbbe62c78a256fc7691cbc4f30884a892614eedb844617b8ad1fd963b5557a6 +size 152236 diff --git a/product_docs/docs/eprs/6.2/images/image245.jpg b/product_docs/docs/eprs/6.2/images/image245.jpg new file mode 100644 index 00000000000..4a68b2a27c9 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image245.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ebd489e4492cde8abfd1bbdb87f844f8137a51e3e3286a892a1ce34c343c3422 +size 142511 diff --git a/product_docs/docs/eprs/6.2/images/image245.png b/product_docs/docs/eprs/6.2/images/image245.png new file mode 100644 index 00000000000..d0cfe4ec76f --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image245.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1d95a0e34426a208862cc7303bf59c5bf535012d4941b332fb4083924fa0d03e +size 191447 diff --git a/product_docs/docs/eprs/6.2/images/image246.jpg b/product_docs/docs/eprs/6.2/images/image246.jpg new file mode 100644 index 00000000000..c89afc712c7 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image246.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:363376a5db7b5c8e4e9f6fdd1fb06265009e517255ce290a2b43f75e10652f03 +size 160841 diff --git a/product_docs/docs/eprs/6.2/images/image246.png b/product_docs/docs/eprs/6.2/images/image246.png new file mode 100644 index 00000000000..d267c01a36a --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image246.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1046c5824b3c26a02956bc3b66450342813b386f92046cb8351b75d151648d52 +size 234104 diff --git a/product_docs/docs/eprs/6.2/images/image247.jpg b/product_docs/docs/eprs/6.2/images/image247.jpg new file mode 100644 index 00000000000..e438e6ffe7d --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image247.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:31662f07c1477343c041c53f3b55c486b4d475941b1a679b9dd89afbf47c41bc +size 206726 diff --git a/product_docs/docs/eprs/6.2/images/image247.png b/product_docs/docs/eprs/6.2/images/image247.png new file mode 100644 index 00000000000..226e4ba7e90 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image247.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0a80e49f3bc378964262e6dfd289a26f598a5612f72a1b3ff9150ec5fd94c4c6 +size 283936 diff --git a/product_docs/docs/eprs/6.2/images/image248.jpg b/product_docs/docs/eprs/6.2/images/image248.jpg new file mode 100644 index 00000000000..a143dbd4c3d --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image248.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:367a6ea0e09c3ed2ce72e4248c128000804bcd9b32dad00ca82222fb607f457e +size 83868 diff --git a/product_docs/docs/eprs/6.2/images/image248.png b/product_docs/docs/eprs/6.2/images/image248.png new file mode 100644 index 00000000000..4a962c1670f --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image248.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b83989e09433a36aa1ecb3880e23b9cfdc48d22de053918ee6f21f8720f9cb62 +size 92406 diff --git a/product_docs/docs/eprs/6.2/images/image249.jpg b/product_docs/docs/eprs/6.2/images/image249.jpg new file mode 100644 index 00000000000..b805933e5d0 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image249.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0fa38c2d60c987645a54305911f4df5c96235b2347d6c6999fbf10635c9a8f4e +size 103092 diff --git a/product_docs/docs/eprs/6.2/images/image249.png b/product_docs/docs/eprs/6.2/images/image249.png new file mode 100644 index 00000000000..c1d4134b012 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image249.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5ef74b7a205510fe95658d0bc205f79ec91755a383dd67a64aa3986fb5d55405 +size 130524 diff --git a/product_docs/docs/eprs/6.2/images/image25.png b/product_docs/docs/eprs/6.2/images/image25.png new file mode 100644 index 00000000000..a70152560a9 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image25.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8249fea8d8807ed099f813efb5b01b2e14f490be08c1fad9a1eb3299ca2f10b2 +size 492658 diff --git a/product_docs/docs/eprs/6.2/images/image250.jpg b/product_docs/docs/eprs/6.2/images/image250.jpg new file mode 100644 index 00000000000..c997e370601 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image250.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ef4eb3c332ed60722931950b921c55152ca88dceabc50f423142c69472909cbf +size 148740 diff --git a/product_docs/docs/eprs/6.2/images/image250.png b/product_docs/docs/eprs/6.2/images/image250.png new file mode 100644 index 00000000000..5b5cdf133d4 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image250.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9db1ef114eba79370791e3c406f5b74586ff91a87dc682dcae9453579e6e1d7c +size 202753 diff --git a/product_docs/docs/eprs/6.2/images/image251.jpg b/product_docs/docs/eprs/6.2/images/image251.jpg new file mode 100644 index 00000000000..6680ce7d712 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image251.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ad79dbb9957d2e1e5677cc8115334373d02cb0e0632c377a662eca6f0102d96c +size 143551 diff --git a/product_docs/docs/eprs/6.2/images/image251.png b/product_docs/docs/eprs/6.2/images/image251.png new file mode 100644 index 00000000000..f13347d8e02 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image251.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9d6a28ef691c6a9fe20562dc2edde0040ccc0d0c0f8671ad64cab8ccfe0f2f37 +size 230377 diff --git a/product_docs/docs/eprs/6.2/images/image252.jpeg b/product_docs/docs/eprs/6.2/images/image252.jpeg new file mode 100644 index 00000000000..315a406e141 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image252.jpeg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b17b24ea749a91fbd646af2bab0247d34c38a7b7eaa79c4fc6be895f177ef61 +size 16155 diff --git a/product_docs/docs/eprs/6.2/images/image252.png b/product_docs/docs/eprs/6.2/images/image252.png new file mode 100644 index 00000000000..b624af625b9 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image252.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8f08cd19f47aeb9566f9c6937642c46fcae914618494d6cadd75dc112668ef29 +size 43492 diff --git a/product_docs/docs/eprs/6.2/images/image253.jpg b/product_docs/docs/eprs/6.2/images/image253.jpg new file mode 100644 index 00000000000..592448523ec --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image253.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac911c31af2ca32e3351a43767b4218551a331e5568b1533e24bd819ce318176 +size 109047 diff --git a/product_docs/docs/eprs/6.2/images/image253.png b/product_docs/docs/eprs/6.2/images/image253.png new file mode 100644 index 00000000000..ad2e8c18044 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image253.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6b54faac298e24d6cae604f0279de031568261334406d073db4f333965847502 +size 187219 diff --git a/product_docs/docs/eprs/6.2/images/image254.jpg b/product_docs/docs/eprs/6.2/images/image254.jpg new file mode 100644 index 00000000000..eba3be9b37d --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image254.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:58efcfc440c897e28493cf24a7cd08629722e6a48d7c7d17caba32664687080b +size 119192 diff --git a/product_docs/docs/eprs/6.2/images/image254.png b/product_docs/docs/eprs/6.2/images/image254.png new file mode 100644 index 00000000000..19777fea7ca --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image254.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2e6750119fc685e6e71f9875f381c21e0f62e83d5d861a0a6cb5bd3b07ba1fed +size 206215 diff --git a/product_docs/docs/eprs/6.2/images/image255.jpg b/product_docs/docs/eprs/6.2/images/image255.jpg new file mode 100644 index 00000000000..cfd1083d3a7 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image255.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6295310cb6a76b9fc27bd5ac23a0e1d566373d915aed8ea5f19cfcd985f2658d +size 84998 diff --git a/product_docs/docs/eprs/6.2/images/image255.png b/product_docs/docs/eprs/6.2/images/image255.png new file mode 100644 index 00000000000..4c728b1cf37 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image255.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8b9f218990a8c6627d78073dd1dfc548172e8bbd984a981f1a432f03633342a7 +size 94122 diff --git a/product_docs/docs/eprs/6.2/images/image256.jpg b/product_docs/docs/eprs/6.2/images/image256.jpg new file mode 100644 index 00000000000..7e3293c46ab --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image256.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d099c71177dcab4afdbbf141189e76835897223592c7256e44dbf22b7051970d +size 116649 diff --git a/product_docs/docs/eprs/6.2/images/image256.png b/product_docs/docs/eprs/6.2/images/image256.png new file mode 100644 index 00000000000..04090fa847a --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image256.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9052e6d8a54a7e1574a9c69588c1391593036608db1204a8c57d2ed2afd29fe9 +size 141201 diff --git a/product_docs/docs/eprs/6.2/images/image257.jpg b/product_docs/docs/eprs/6.2/images/image257.jpg new file mode 100644 index 00000000000..6919decc001 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image257.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8dc059c472bce42ae4a2f752218af3d12f9968b6476106ec067c9d010e9aed63 +size 112383 diff --git a/product_docs/docs/eprs/6.2/images/image257.png b/product_docs/docs/eprs/6.2/images/image257.png new file mode 100644 index 00000000000..8bda013c52a --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image257.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:712ffdba9a88bcefb4416565c24140eff4c6846091a1fcaee22f8c0bfe6f33a5 +size 134317 diff --git a/product_docs/docs/eprs/6.2/images/image258.jpg b/product_docs/docs/eprs/6.2/images/image258.jpg new file mode 100644 index 00000000000..adbcb7c607e --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image258.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:20a7b5a1be046950c883d0f2322c74afb18f845f876d4050aae282f5270165b4 +size 106005 diff --git a/product_docs/docs/eprs/6.2/images/image258.png b/product_docs/docs/eprs/6.2/images/image258.png new file mode 100644 index 00000000000..c20afe3a8f6 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image258.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ec88a5b769ff31f4da6a36979237dcfaa20955f11d01256f406a5d9b61b1b912 +size 178952 diff --git a/product_docs/docs/eprs/6.2/images/image259.jpg b/product_docs/docs/eprs/6.2/images/image259.jpg new file mode 100644 index 00000000000..169cf8c7f09 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image259.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:991f89eed19372efe931a6103ffdab9e237fb426d7bf21973cdb07cba7f283dc +size 142095 diff --git a/product_docs/docs/eprs/6.2/images/image259.png b/product_docs/docs/eprs/6.2/images/image259.png new file mode 100644 index 00000000000..ad4de2b4e33 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image259.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69f5a85d4949a557a6ef2f5f6b3c847dba4327d45926d242a978799977683d38 +size 204749 diff --git a/product_docs/docs/eprs/6.2/images/image26.jpg b/product_docs/docs/eprs/6.2/images/image26.jpg new file mode 100644 index 00000000000..7e497257306 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image26.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d09224b222276157d7b7f85cff24ece334d8c69e646032da05e1c78f08a3b333 +size 103469 diff --git a/product_docs/docs/eprs/6.2/images/image26.png b/product_docs/docs/eprs/6.2/images/image26.png new file mode 100644 index 00000000000..88d3a7b21c0 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image26.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e9645d8be7d56db82be35fa063e85cf23c4d1f642e3e176eb5b12e839d957540 +size 204444 diff --git a/product_docs/docs/eprs/6.2/images/image260.jpg b/product_docs/docs/eprs/6.2/images/image260.jpg new file mode 100644 index 00000000000..106bf59de5f --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image260.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ae93d9eab539cbe18ba0bbb18046833edc1536e540657980554cbb9f513954ee +size 181105 diff --git a/product_docs/docs/eprs/6.2/images/image260.png b/product_docs/docs/eprs/6.2/images/image260.png new file mode 100644 index 00000000000..384b59fdb34 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image260.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4836c1a5cb5b8b62c48f7c962901706700dcdca946f2890cb764941b6ae5d3fb +size 243809 diff --git a/product_docs/docs/eprs/6.2/images/image261.jpg b/product_docs/docs/eprs/6.2/images/image261.jpg new file mode 100644 index 00000000000..c3f9ef7cadd --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image261.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c3004fbba27b2873c61cb8cbcec22465df09c5f1d17359d0dd5548cfc2e5a097 +size 170187 diff --git a/product_docs/docs/eprs/6.2/images/image261.png b/product_docs/docs/eprs/6.2/images/image261.png new file mode 100644 index 00000000000..a598d0c03e5 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image261.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2c3b4dd4e3998371713e55f71afe5656b531032e4e0956a775e344c85ce16f9c +size 160337 diff --git a/product_docs/docs/eprs/6.2/images/image262.jpg b/product_docs/docs/eprs/6.2/images/image262.jpg new file mode 100644 index 00000000000..815f36d902a --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image262.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5b0a68c1692f2b239c5c802e3458948221b6e47f9f19ab85f15dbe54d0201a9b +size 88361 diff --git a/product_docs/docs/eprs/6.2/images/image262.png b/product_docs/docs/eprs/6.2/images/image262.png new file mode 100644 index 00000000000..e78bb4067cc --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image262.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f6deffa06fe47fa6847499eaef59c69c1a1cf7b9eb52ffe37101725d687a612b +size 104520 diff --git a/product_docs/docs/eprs/6.2/images/image263.jpg b/product_docs/docs/eprs/6.2/images/image263.jpg new file mode 100644 index 00000000000..fb3ae96aba4 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image263.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1859a8227ddd057c0708a01bd87647e7ec2b87122cda8e9d55b869324b934a85 +size 167196 diff --git a/product_docs/docs/eprs/6.2/images/image263.png b/product_docs/docs/eprs/6.2/images/image263.png new file mode 100644 index 00000000000..ab7d87f3f2c --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image263.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4b4fd0a3512bfbed3171c6e54ed45e9892d72101e5d40d15270b82a53791c9c6 +size 236119 diff --git a/product_docs/docs/eprs/6.2/images/image264.jpg b/product_docs/docs/eprs/6.2/images/image264.jpg new file mode 100644 index 00000000000..74c7c77c353 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image264.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a08e7475a23adf3a35dc3103680b64d35fdf33829cf9758defd063cf8a35407b +size 189162 diff --git a/product_docs/docs/eprs/6.2/images/image264.png b/product_docs/docs/eprs/6.2/images/image264.png new file mode 100644 index 00000000000..1bd3b1cfd6a --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image264.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8088bd9bb308f01fea3806abce475560d732b440f9826fd238f66c9c0079970a +size 251385 diff --git a/product_docs/docs/eprs/6.2/images/image265.jpg b/product_docs/docs/eprs/6.2/images/image265.jpg new file mode 100644 index 00000000000..680482dfb8e --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image265.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:abd1459d2cbe58a26ccce37ded96b715c31ecf005487e1c303edd93581c41555 +size 145889 diff --git a/product_docs/docs/eprs/6.2/images/image265.png b/product_docs/docs/eprs/6.2/images/image265.png new file mode 100644 index 00000000000..1ac03c7874a --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image265.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f7352a746fbaae0283fe74b394881d0e790c0b87c9aecac0af4be9fe12c1b9e1 +size 210847 diff --git a/product_docs/docs/eprs/6.2/images/image266.jpg b/product_docs/docs/eprs/6.2/images/image266.jpg new file mode 100644 index 00000000000..2d23086cbf5 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image266.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6aa7e490ede8ac5219f3d69119cf91b0d0c5a486ee45d56118d729d22f26d42d +size 210329 diff --git a/product_docs/docs/eprs/6.2/images/image266.png b/product_docs/docs/eprs/6.2/images/image266.png new file mode 100644 index 00000000000..85a852c81c4 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image266.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1e824a97fbbb6f6a6bf1058f49a7162744fcbaec0daac895e2d1a65ba50b55e1 +size 275495 diff --git a/product_docs/docs/eprs/6.2/images/image267.jpg b/product_docs/docs/eprs/6.2/images/image267.jpg new file mode 100644 index 00000000000..375cb09d0c4 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image267.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:608d25b8db237b047fabc38c6731968e37e3a2d03058190e12620a98328a5a1d +size 207676 diff --git a/product_docs/docs/eprs/6.2/images/image267.png b/product_docs/docs/eprs/6.2/images/image267.png new file mode 100644 index 00000000000..b1302dd82ad --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image267.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8aab567d1d265a3878d06a3192a916bc26bcf8f911627aef613955f69f233e2c +size 279965 diff --git a/product_docs/docs/eprs/6.2/images/image268.jpg b/product_docs/docs/eprs/6.2/images/image268.jpg new file mode 100644 index 00000000000..a23e307ef1c --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image268.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:58f1c3e0129d7fea3fce6e07dd945581c6769c06e828f02c6471c1f5a228daf2 +size 99193 diff --git a/product_docs/docs/eprs/6.2/images/image268.png b/product_docs/docs/eprs/6.2/images/image268.png new file mode 100644 index 00000000000..161d4963613 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image268.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:43435be6f45a3fefaa0d0010ed06c77d1a186f56adabf945370f253801780491 +size 170667 diff --git a/product_docs/docs/eprs/6.2/images/image269.jpg b/product_docs/docs/eprs/6.2/images/image269.jpg new file mode 100644 index 00000000000..aedacbe6725 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image269.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1d8fbeca8e53865f5177203b216e48809f95a35e67c6c3a859ab7f57cc7618c1 +size 119090 diff --git a/product_docs/docs/eprs/6.2/images/image269.png b/product_docs/docs/eprs/6.2/images/image269.png new file mode 100644 index 00000000000..fc40974dc42 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image269.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9d6ec6a5086f7292bb88380d54b0ff9ef1ac7825316b2f5da71e28fc8df31d42 +size 203395 diff --git a/product_docs/docs/eprs/6.2/images/image27.jpg b/product_docs/docs/eprs/6.2/images/image27.jpg new file mode 100644 index 00000000000..9fb2ef720df --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image27.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eb5bae5e80a6b8f10af1e950bced92906ae2ecefe68180c49f7768552b05e73d +size 83423 diff --git a/product_docs/docs/eprs/6.2/images/image27.png b/product_docs/docs/eprs/6.2/images/image27.png new file mode 100644 index 00000000000..f022ac2a267 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image27.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1c8a7d460254ce8bf64b781fde794a8a5ccea4298ff0b0c77b298125f7ce4bcc +size 54587 diff --git a/product_docs/docs/eprs/6.2/images/image270.jpg b/product_docs/docs/eprs/6.2/images/image270.jpg new file mode 100644 index 00000000000..639d2135c5a --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image270.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:23589e0d755aaafa04d9d5154b227e2f7b771cbb390660139fdee93c43c8447d +size 132214 diff --git a/product_docs/docs/eprs/6.2/images/image270.png b/product_docs/docs/eprs/6.2/images/image270.png new file mode 100644 index 00000000000..2be4350c039 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image270.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c6550bc41c8c33ed9a40ade47ba6b7b833686ce79016c7b146420cc31d06bcc5 +size 225017 diff --git a/product_docs/docs/eprs/6.2/images/image271.jpg b/product_docs/docs/eprs/6.2/images/image271.jpg new file mode 100644 index 00000000000..c5de1387b1f --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image271.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eb974743dd82fb0d1c7ff631ee0a19f8c47c63e73760ab4501d78a59ba38ad71 +size 133589 diff --git a/product_docs/docs/eprs/6.2/images/image271.png b/product_docs/docs/eprs/6.2/images/image271.png new file mode 100644 index 00000000000..6ab1408d20e --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image271.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:299e0260c9a6bbc10149017e3ccbf218ad5480fcdbe8340ef721494216ff8f9e +size 187506 diff --git a/product_docs/docs/eprs/6.2/images/image272.jpg b/product_docs/docs/eprs/6.2/images/image272.jpg new file mode 100644 index 00000000000..82dfb94eefa --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image272.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:71ac1dd746afe698342ab2250d04f55cbb1c500f0bdbd81c9d143143556e742e +size 130514 diff --git a/product_docs/docs/eprs/6.2/images/image272.png b/product_docs/docs/eprs/6.2/images/image272.png new file mode 100644 index 00000000000..8fdefe5113c --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image272.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dcf399647224fd8d8adaedd51906bf112f377534d372b0d7ece6602b864a6589 +size 176974 diff --git a/product_docs/docs/eprs/6.2/images/image273.jpg b/product_docs/docs/eprs/6.2/images/image273.jpg new file mode 100644 index 00000000000..59eb7f2e619 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image273.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:73969950a737631ade52c05afae6bd60733872230342f9d1e3c2135f02ec9d9c +size 175572 diff --git a/product_docs/docs/eprs/6.2/images/image273.png b/product_docs/docs/eprs/6.2/images/image273.png new file mode 100644 index 00000000000..cab86e24e42 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image273.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:46603458a706d1c02fa0eafed770894949075284fc1ef9f68f4774812a08b12d +size 234897 diff --git a/product_docs/docs/eprs/6.2/images/image274.jpg b/product_docs/docs/eprs/6.2/images/image274.jpg new file mode 100644 index 00000000000..523af4c9866 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image274.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f44837e7a4a8238f0d50f08ebfbee658b77a45493c2a64ae4cf9aafc62800f27 +size 122820 diff --git a/product_docs/docs/eprs/6.2/images/image274.png b/product_docs/docs/eprs/6.2/images/image274.png new file mode 100644 index 00000000000..a2138466d2f --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image274.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:20cc411c0ff93e43a53f99cba5e3b96c0d4fcaea63e3934fcfe913b9d2580180 +size 167502 diff --git a/product_docs/docs/eprs/6.2/images/image275.jpg b/product_docs/docs/eprs/6.2/images/image275.jpg new file mode 100644 index 00000000000..9262eebb50c --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image275.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:67a8fef27e30bdade19c45e15438b4458fab6bcdea7ad60dedb0a307c7ccb62f +size 208813 diff --git a/product_docs/docs/eprs/6.2/images/image275.png b/product_docs/docs/eprs/6.2/images/image275.png new file mode 100644 index 00000000000..c3cdc347cd1 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image275.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c5549200b33f88616499c59f9a164a79542937842b971f65d7680deedb16628e +size 267778 diff --git a/product_docs/docs/eprs/6.2/images/image276.jpg b/product_docs/docs/eprs/6.2/images/image276.jpg new file mode 100644 index 00000000000..23b33ddaa39 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image276.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4d343bc3a4506c80d381dc648cf98b8045d609bdc347a95e76f683d2a38c9edd +size 198997 diff --git a/product_docs/docs/eprs/6.2/images/image276.png b/product_docs/docs/eprs/6.2/images/image276.png new file mode 100644 index 00000000000..2e8b937bf70 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image276.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6799329815956462f66c800a01c93b555d9080066411289c4c7ff6d1a0d7fc50 +size 277146 diff --git a/product_docs/docs/eprs/6.2/images/image277.jpg b/product_docs/docs/eprs/6.2/images/image277.jpg new file mode 100644 index 00000000000..abf816f9470 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image277.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:22962fd75688c5c38cd92a72d20f7dec1af31ddf1bfdebb966be05d541d67123 +size 208549 diff --git a/product_docs/docs/eprs/6.2/images/image277.png b/product_docs/docs/eprs/6.2/images/image277.png new file mode 100644 index 00000000000..790991df007 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image277.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:66e665767a3111759ad5cade8007e9da88300510f034de99af5da118736eaef0 +size 289787 diff --git a/product_docs/docs/eprs/6.2/images/image278.jpg b/product_docs/docs/eprs/6.2/images/image278.jpg new file mode 100644 index 00000000000..3b394020301 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image278.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e1a754623417ef2b36e7040f5d6c8f48fb655f42119d587f62760b56bd465960 +size 207309 diff --git a/product_docs/docs/eprs/6.2/images/image278.png b/product_docs/docs/eprs/6.2/images/image278.png new file mode 100644 index 00000000000..5c11c21c451 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image278.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f248e1a4d92bf105a0880584e991621dd426d03bd967ded2f661eab1379b9527 +size 253545 diff --git a/product_docs/docs/eprs/6.2/images/image279.jpg b/product_docs/docs/eprs/6.2/images/image279.jpg new file mode 100644 index 00000000000..7e88086b55b --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image279.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d3bfb9ef36961f406792fbfd031c50f30ec92a86363e037abf719bf508e0c338 +size 186554 diff --git a/product_docs/docs/eprs/6.2/images/image279.png b/product_docs/docs/eprs/6.2/images/image279.png new file mode 100644 index 00000000000..b0fac7366ad --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image279.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b65db4c8c90eb1899eeca21764926991e739b7a61897acf98f3249895785ce2a +size 240874 diff --git a/product_docs/docs/eprs/6.2/images/image28.jpg b/product_docs/docs/eprs/6.2/images/image28.jpg new file mode 100644 index 00000000000..53213864571 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image28.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e933af1f029843ae8cd694de49abe38906f03463d73c1e638f81f0634feb9dcd +size 196226 diff --git a/product_docs/docs/eprs/6.2/images/image28.png b/product_docs/docs/eprs/6.2/images/image28.png new file mode 100644 index 00000000000..e6a151b4075 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image28.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:08902363c2aa9941dc74811002087f79290f4a8868104fc6f5f462dccc02b955 +size 308103 diff --git a/product_docs/docs/eprs/6.2/images/image280.jpeg b/product_docs/docs/eprs/6.2/images/image280.jpeg new file mode 100644 index 00000000000..7f6b698e79f --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image280.jpeg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:14816620aae639fc99c7cd16e32d1fe22f81fdedcc950b981aafa1dc8a9adec5 +size 60929 diff --git a/product_docs/docs/eprs/6.2/images/image280.png b/product_docs/docs/eprs/6.2/images/image280.png new file mode 100644 index 00000000000..2a4147e0d93 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image280.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:db4581c81a130883fdcde02e752a07120eb1fb1f1c69db43932e76b22d9b1168 +size 104198 diff --git a/product_docs/docs/eprs/6.2/images/image281.jpeg b/product_docs/docs/eprs/6.2/images/image281.jpeg new file mode 100644 index 00000000000..ce49614d14f --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image281.jpeg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ab2cdf65ab7141de1c26adf96027030a93452fc00b293ad5fcc3b06a09d0aad4 +size 42482 diff --git a/product_docs/docs/eprs/6.2/images/image281.png b/product_docs/docs/eprs/6.2/images/image281.png new file mode 100644 index 00000000000..9c6de8618cb --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image281.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7f731c779c4479ce5d898b57002245ff5f46c602646fb48333538162fe15de1b +size 47992 diff --git a/product_docs/docs/eprs/6.2/images/image282.jpeg b/product_docs/docs/eprs/6.2/images/image282.jpeg new file mode 100644 index 00000000000..bfc291e145e --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image282.jpeg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:02a3e7460348e927550228d8c6a8df0cc7e76362d56add1a1216deb2d178cb78 +size 64257 diff --git a/product_docs/docs/eprs/6.2/images/image282.png b/product_docs/docs/eprs/6.2/images/image282.png new file mode 100644 index 00000000000..848c83c67a2 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image282.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:353e2009ca769c2c488094b05b1e74803afab3a4d839bfa0d403f688eb05b7f9 +size 74866 diff --git a/product_docs/docs/eprs/6.2/images/image283.jpeg b/product_docs/docs/eprs/6.2/images/image283.jpeg new file mode 100644 index 00000000000..4abd62096bd --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image283.jpeg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ee092e57ef21e3a705be7a2154a84216941492594f3e5798c6823bc7d311ebff +size 53585 diff --git a/product_docs/docs/eprs/6.2/images/image283.png b/product_docs/docs/eprs/6.2/images/image283.png new file mode 100644 index 00000000000..bfbefb4405c --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image283.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:925030c0271156148b041573b717f876cbb88370ab5ea0fb8e4aed51e7b5a46c +size 67330 diff --git a/product_docs/docs/eprs/6.2/images/image284.jpg b/product_docs/docs/eprs/6.2/images/image284.jpg new file mode 100644 index 00000000000..4fae08a8cc8 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image284.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3cf51d22e6694f990e4f986719d0b099f830f0817457adb43e100dc2d0edb4ed +size 140887 diff --git a/product_docs/docs/eprs/6.2/images/image284.png b/product_docs/docs/eprs/6.2/images/image284.png new file mode 100644 index 00000000000..eb1417e0fa2 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image284.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a8cbd062be7ae18d146a82965ded7d07e35773ce47406ca362b10536a832590c +size 128172 diff --git a/product_docs/docs/eprs/6.2/images/image285.jpg b/product_docs/docs/eprs/6.2/images/image285.jpg new file mode 100644 index 00000000000..c49d4fa8727 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image285.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:096d072225b5fa45a6c8a878796fb73f22a873b9f9bb67094c3398b86d830944 +size 133762 diff --git a/product_docs/docs/eprs/6.2/images/image285.png b/product_docs/docs/eprs/6.2/images/image285.png new file mode 100644 index 00000000000..82785917c07 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image285.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e16077fea3a4d131f359e5919a4423c7fe400c556de9a54de7ae5d1c1e267179 +size 195108 diff --git a/product_docs/docs/eprs/6.2/images/image286.jpg b/product_docs/docs/eprs/6.2/images/image286.jpg new file mode 100644 index 00000000000..16cfbaa2830 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image286.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:88ad8830e3a29d9e40b91b32d22a9785236b4618b4c16646a7841f998ec84851 +size 188616 diff --git a/product_docs/docs/eprs/6.2/images/image286.png b/product_docs/docs/eprs/6.2/images/image286.png new file mode 100644 index 00000000000..1701b00ec74 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image286.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:77f5fc6cd0d451be66464e7fdd8593916f42aac9b02ad7940e76b1e47d731ef2 +size 258206 diff --git a/product_docs/docs/eprs/6.2/images/image287.jpg b/product_docs/docs/eprs/6.2/images/image287.jpg new file mode 100644 index 00000000000..dca170332af --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image287.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:22a291c9f0ff8f288254f718b14abddc515bbc983faa6229f0606de644b026cb +size 129476 diff --git a/product_docs/docs/eprs/6.2/images/image287.png b/product_docs/docs/eprs/6.2/images/image287.png new file mode 100644 index 00000000000..3cb2f58aaf9 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image287.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8a25187835d5a3bd67095140852c37a253f0f5ae12514c6dbdd133c956612274 +size 114450 diff --git a/product_docs/docs/eprs/6.2/images/image288.jpg b/product_docs/docs/eprs/6.2/images/image288.jpg new file mode 100644 index 00000000000..d11490cb1f8 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image288.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:85211d73a92beb0a390e6a87116887425f4cd7d46c48a17a499a6216e8337483 +size 112971 diff --git a/product_docs/docs/eprs/6.2/images/image288.png b/product_docs/docs/eprs/6.2/images/image288.png new file mode 100644 index 00000000000..8c67263aed7 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image288.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d18ba994a1d5784400df593663b4464a05e72d8592c1ebe4b0804e23bb5db553 +size 156940 diff --git a/product_docs/docs/eprs/6.2/images/image289.jpg b/product_docs/docs/eprs/6.2/images/image289.jpg new file mode 100644 index 00000000000..daa73cd45e2 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image289.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b4672223effd301a670717fd8dcabd66191f68137f58c1995a03313f017d5350 +size 133629 diff --git a/product_docs/docs/eprs/6.2/images/image289.png b/product_docs/docs/eprs/6.2/images/image289.png new file mode 100644 index 00000000000..7e4f209deed --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image289.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c75c526116d8f228e9810f6d900988ae2caf0da5c24cfb25eb00636ee9e2cabc +size 180212 diff --git a/product_docs/docs/eprs/6.2/images/image29.jpg b/product_docs/docs/eprs/6.2/images/image29.jpg new file mode 100644 index 00000000000..c86303d24cb --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image29.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e082e3407c2c8e1d3f58263ef61c9bc96b79b2ce40b3005b24b58a329e8578b6 +size 261584 diff --git a/product_docs/docs/eprs/6.2/images/image29.png b/product_docs/docs/eprs/6.2/images/image29.png new file mode 100644 index 00000000000..95cb40bbe26 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image29.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:207cdb92f080ccf8492bcf2d95a32e98b4eebbccf81df918a2cc40e2a4d06c67 +size 408687 diff --git a/product_docs/docs/eprs/6.2/images/image290.jpeg b/product_docs/docs/eprs/6.2/images/image290.jpeg new file mode 100644 index 00000000000..d4140dab4f8 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image290.jpeg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0f72bbb25e2fb743d39b324b07bfb38a013fc9636ee9fd6e752c4aa226a70636 +size 59884 diff --git a/product_docs/docs/eprs/6.2/images/image290.png b/product_docs/docs/eprs/6.2/images/image290.png new file mode 100644 index 00000000000..dd235854e77 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image290.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a1ff4b227d93a94316be4de42041611feb70102ad7f531b0b0bba7c6048903c6 +size 85130 diff --git a/product_docs/docs/eprs/6.2/images/image291.jpg b/product_docs/docs/eprs/6.2/images/image291.jpg new file mode 100644 index 00000000000..6541d8d3c2d --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image291.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:111871ef98a37dc6f0898f3d50c1f4a312a557f02087a24bf9b34001b2f514f9 +size 282187 diff --git a/product_docs/docs/eprs/6.2/images/image291.png b/product_docs/docs/eprs/6.2/images/image291.png new file mode 100644 index 00000000000..8789afacb96 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image291.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9ed06fbd08b0ee863224974431dcb731e78f9d2406460f90e421202fd2a4c50f +size 396882 diff --git a/product_docs/docs/eprs/6.2/images/image292.jpg b/product_docs/docs/eprs/6.2/images/image292.jpg new file mode 100644 index 00000000000..0529711a743 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image292.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:60327659101ef6a9878bcc408a0d2ac620685c206e6c0723b1fd586bfe88ce73 +size 114041 diff --git a/product_docs/docs/eprs/6.2/images/image292.png b/product_docs/docs/eprs/6.2/images/image292.png new file mode 100644 index 00000000000..2a9c5191eab --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image292.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0f084d10341533317c87f75546e7294b6edcbf6d6e546afac90348fa83f8ad98 +size 148030 diff --git a/product_docs/docs/eprs/6.2/images/image293.jpg b/product_docs/docs/eprs/6.2/images/image293.jpg new file mode 100644 index 00000000000..288c2c82950 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image293.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:970c47ef4cf3f1d10c35d975acdba078ffb36dac3fa02cc8421747afeca4f0a5 +size 91423 diff --git a/product_docs/docs/eprs/6.2/images/image293.png b/product_docs/docs/eprs/6.2/images/image293.png new file mode 100644 index 00000000000..c2e08d1c470 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image293.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3d8096351f96ae8e74dd63f6720d185c69f662f691e12ce77d46c499b93b4b77 +size 126674 diff --git a/product_docs/docs/eprs/6.2/images/image294.jpg b/product_docs/docs/eprs/6.2/images/image294.jpg new file mode 100644 index 00000000000..48e2902125c --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image294.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ad219fb1715ae097f299695f8fbcddf0cfd702a51b67436769a4a0e5c2010f86 +size 75302 diff --git a/product_docs/docs/eprs/6.2/images/image294.png b/product_docs/docs/eprs/6.2/images/image294.png new file mode 100644 index 00000000000..3ddc355ab54 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image294.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:75e6425a6efa9adfdd97cd36612cfc4609f004442ccb393a1615286b2bee395a +size 95859 diff --git a/product_docs/docs/eprs/6.2/images/image295.jpeg b/product_docs/docs/eprs/6.2/images/image295.jpeg new file mode 100644 index 00000000000..4c6d293b4b4 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image295.jpeg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b3d1bb1bc8ebb120bfa4f3b7f4a5d09df1d0778c50c01eda88807a7ea5eb0ff2 +size 80449 diff --git a/product_docs/docs/eprs/6.2/images/image295.png b/product_docs/docs/eprs/6.2/images/image295.png new file mode 100644 index 00000000000..e5b00df694b --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image295.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fb931a57d527a1274735c7ad4272eb5aed6ca00ae063fb7e1fbc807f34af5f43 +size 138705 diff --git a/product_docs/docs/eprs/6.2/images/image296.jpg b/product_docs/docs/eprs/6.2/images/image296.jpg new file mode 100644 index 00000000000..93691d1dc16 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image296.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:793b70eda38eefd85a48f745fb87cc278a5005ff38b8661073eb5db957974d09 +size 113847 diff --git a/product_docs/docs/eprs/6.2/images/image296.png b/product_docs/docs/eprs/6.2/images/image296.png new file mode 100644 index 00000000000..583112e375c --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image296.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1697fc678ab849c57ec28419936e7cdc81a5ef6f4b540cd95b5f641ec44f3262 +size 158471 diff --git a/product_docs/docs/eprs/6.2/images/image297.jpg b/product_docs/docs/eprs/6.2/images/image297.jpg new file mode 100644 index 00000000000..4424957395c --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image297.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:78b6ec520c6543824b0568c5ab746a3f3089ff4fdac0312aedd7d2d94d4a20d8 +size 288224 diff --git a/product_docs/docs/eprs/6.2/images/image297.png b/product_docs/docs/eprs/6.2/images/image297.png new file mode 100644 index 00000000000..d538341a1ec --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image297.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5ee71a128a293194f37ccecb150b1d2e1e9f05c38ef373ef53fca82e3a0bc699 +size 470222 diff --git a/product_docs/docs/eprs/6.2/images/image298.jpg b/product_docs/docs/eprs/6.2/images/image298.jpg new file mode 100644 index 00000000000..3495fe92b39 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image298.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bd45f9d4d78b97c1248fa611f3cdc5c972dcb666e402f7d8974f8f059cf6c27d +size 131583 diff --git a/product_docs/docs/eprs/6.2/images/image298.png b/product_docs/docs/eprs/6.2/images/image298.png new file mode 100644 index 00000000000..f5eabe660ad --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image298.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1d9158b52d91c90da9167bf400598f6b384d11ce3a76e06c73bee01855586bc1 +size 157122 diff --git a/product_docs/docs/eprs/6.2/images/image299.jpg b/product_docs/docs/eprs/6.2/images/image299.jpg new file mode 100644 index 00000000000..914ac5b4e05 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image299.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9ed74992431a10c431e731cce2b0cd61794803eacc6885288e95e7389e6a92c1 +size 442917 diff --git a/product_docs/docs/eprs/6.2/images/image299.png b/product_docs/docs/eprs/6.2/images/image299.png new file mode 100644 index 00000000000..30fc98cea18 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image299.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:90c6515e05ec8653a85b4ec5c11775014931265a7d2d1a2c6d7b5dbc223e0b15 +size 687930 diff --git a/product_docs/docs/eprs/6.2/images/image3.jpeg b/product_docs/docs/eprs/6.2/images/image3.jpeg new file mode 100644 index 00000000000..a517e6a627a --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image3.jpeg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e37f863c9fe853e904357fea979070acbe51ee634327ad19de69f2ad32334481 +size 30502 diff --git a/product_docs/docs/eprs/6.2/images/image3.png b/product_docs/docs/eprs/6.2/images/image3.png new file mode 100644 index 00000000000..dc107491cdc --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9cb32860a9c51c799df1b6c7518fcf6bde15313b837929a1c67e5729860d408b +size 133440 diff --git a/product_docs/docs/eprs/6.2/images/image30.jpg b/product_docs/docs/eprs/6.2/images/image30.jpg new file mode 100644 index 00000000000..3ccf3478f8c --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image30.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3884fc1b41a855e173909c62326413b7f6acbde8f2c4475ee8730718349d472f +size 245080 diff --git a/product_docs/docs/eprs/6.2/images/image30.png b/product_docs/docs/eprs/6.2/images/image30.png new file mode 100644 index 00000000000..475cef1cc20 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image30.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c65820fb7501aa91e1128c2fdcf39913045996480056ddc4080880d930a676fa +size 367800 diff --git a/product_docs/docs/eprs/6.2/images/image31.jpg b/product_docs/docs/eprs/6.2/images/image31.jpg new file mode 100644 index 00000000000..847f1487a3e --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image31.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:40c99848d4ef3d7d02dc643912e87c0aaaf25139e452ba752b223cccc469d666 +size 256559 diff --git a/product_docs/docs/eprs/6.2/images/image31.png b/product_docs/docs/eprs/6.2/images/image31.png new file mode 100644 index 00000000000..f34bb9013df --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image31.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8b78189ea4e26fd7aa63b1112bbec28c5b1b387c0aac2d1513697209b466ad7e +size 421034 diff --git a/product_docs/docs/eprs/6.2/images/image32.jpg b/product_docs/docs/eprs/6.2/images/image32.jpg new file mode 100644 index 00000000000..170dcf3c2f5 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image32.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d3df2fbd9fd91f7a0a28ed81e96fbe574f7cf5602797f34c6f591da598996bd2 +size 148704 diff --git a/product_docs/docs/eprs/6.2/images/image32.png b/product_docs/docs/eprs/6.2/images/image32.png new file mode 100644 index 00000000000..03ab51800c9 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image32.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1cf1836d6b12deb0afeb195653e8de240225c0a51eb97f92e06cdb76eb209d71 +size 258549 diff --git a/product_docs/docs/eprs/6.2/images/image33.jpg b/product_docs/docs/eprs/6.2/images/image33.jpg new file mode 100644 index 00000000000..7548ee9924b --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image33.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1d6921e2ab17b807a9c2649941c3c287792f078db323c1b580e01830d329c69e +size 150148 diff --git a/product_docs/docs/eprs/6.2/images/image33.png b/product_docs/docs/eprs/6.2/images/image33.png new file mode 100644 index 00000000000..480afcfee3d --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image33.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:99d4dc8538bb95524da2aa966f5d61db3d6770c53c2af82e03bbf7821196af79 +size 251860 diff --git a/product_docs/docs/eprs/6.2/images/image34.jpg b/product_docs/docs/eprs/6.2/images/image34.jpg new file mode 100644 index 00000000000..ec170e9eb01 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image34.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:606ce310286c4f2a7df6481ec04e93aede9d9874d6ba22b7bdbecee9937d8903 +size 60069 diff --git a/product_docs/docs/eprs/6.2/images/image34.png b/product_docs/docs/eprs/6.2/images/image34.png new file mode 100644 index 00000000000..5cbf293de58 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image34.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4676ee8269749f3f5c71ae95ef81b7a1ade1e9dce5a79f8fccc522b5ac7a6eff +size 75240 diff --git a/product_docs/docs/eprs/6.2/images/image35.jpg b/product_docs/docs/eprs/6.2/images/image35.jpg new file mode 100644 index 00000000000..7ad2d5510e0 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image35.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e8c1fa37ffca4011057460944d4ec3407ffa0ba07be30a63ef58f50e3cdca0f9 +size 167442 diff --git a/product_docs/docs/eprs/6.2/images/image35.png b/product_docs/docs/eprs/6.2/images/image35.png new file mode 100644 index 00000000000..96b9499c3f5 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image35.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:47cdb844e9ca853bb9c834e34cdd4f33cc51871548a491ad5a86f4c15c6913ce +size 275923 diff --git a/product_docs/docs/eprs/6.2/images/image36.jpg b/product_docs/docs/eprs/6.2/images/image36.jpg new file mode 100644 index 00000000000..e2e0f98bb4c --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image36.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e6e718c63def8c12d07f2aa996842a0ff6ff74e3319864067478e33ca09eda74 +size 39672 diff --git a/product_docs/docs/eprs/6.2/images/image36.png b/product_docs/docs/eprs/6.2/images/image36.png new file mode 100644 index 00000000000..603cb513490 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image36.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:800907e955ea36ed9886ee7cbd3fc94106be97d05fde099c91413d292e1d6315 +size 53690 diff --git a/product_docs/docs/eprs/6.2/images/image37.jpg b/product_docs/docs/eprs/6.2/images/image37.jpg new file mode 100644 index 00000000000..8d4b0bfb9d6 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image37.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5c4390900d5098f6adf06b37365f35c31e95cffe28a2ece39fd1461eb330aa79 +size 111792 diff --git a/product_docs/docs/eprs/6.2/images/image37.png b/product_docs/docs/eprs/6.2/images/image37.png new file mode 100644 index 00000000000..c8e9d540216 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image37.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:051a37e4be7e37a339e00f5d126946ed3e773a28a8e1a0e911b35eff591870e5 +size 179640 diff --git a/product_docs/docs/eprs/6.2/images/image38.jpg b/product_docs/docs/eprs/6.2/images/image38.jpg new file mode 100644 index 00000000000..4c46016acc9 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image38.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:18ba702ac596bb7683385916a61c5cdc16cccd0c3c85b81b40e37af09d9fe64e +size 260122 diff --git a/product_docs/docs/eprs/6.2/images/image38.png b/product_docs/docs/eprs/6.2/images/image38.png new file mode 100644 index 00000000000..e41c2012e88 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image38.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d59de300a488fcd213f9ed4c8f5ce9bed8f4c339cf88796f8c447ba64129cd73 +size 302205 diff --git a/product_docs/docs/eprs/6.2/images/image39.jpg b/product_docs/docs/eprs/6.2/images/image39.jpg new file mode 100644 index 00000000000..e0209ae800e --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image39.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9e1f8fb45c304b2e343bfbf9c251f3f9f2c5c540de9cb1e8dd0e01b2b6788c87 +size 109341 diff --git a/product_docs/docs/eprs/6.2/images/image39.png b/product_docs/docs/eprs/6.2/images/image39.png new file mode 100644 index 00000000000..2db76e4661e --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image39.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9e970f2e1086d85ac9135a5e267499e16942c3200b8da338f5b3882550c1a81b +size 138658 diff --git a/product_docs/docs/eprs/6.2/images/image4.jpeg b/product_docs/docs/eprs/6.2/images/image4.jpeg new file mode 100644 index 00000000000..d65cc64f097 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image4.jpeg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d533f13c9e62f8cd85f11c83b3c740a48c686c9e449bc3c3771b2c42ee8f789f +size 31748 diff --git a/product_docs/docs/eprs/6.2/images/image4.png b/product_docs/docs/eprs/6.2/images/image4.png new file mode 100644 index 00000000000..f6d43dc4f4b --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image4.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:631d47855d65fd2ec6466156b7eedc40d8c086eac8441846bbf1bfed36cbc506 +size 142118 diff --git a/product_docs/docs/eprs/6.2/images/image40.jpg b/product_docs/docs/eprs/6.2/images/image40.jpg new file mode 100644 index 00000000000..78a1713df09 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image40.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b51ee2f9898da80e14f1efcf24e11bc7004de69f957f4ddd1fb63164f962983 +size 106216 diff --git a/product_docs/docs/eprs/6.2/images/image40.png b/product_docs/docs/eprs/6.2/images/image40.png new file mode 100644 index 00000000000..8fa5857d293 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image40.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d89357a4c94c7c6bdd1c3e35c46b634a3ecb6f005e87263318d30c1039940a45 +size 124096 diff --git a/product_docs/docs/eprs/6.2/images/image41.jpg b/product_docs/docs/eprs/6.2/images/image41.jpg new file mode 100644 index 00000000000..a9f876f542a --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image41.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:29aef519171e1bed623b207d99e3cbd96d6426017f328af3b12116553c9b9c03 +size 150270 diff --git a/product_docs/docs/eprs/6.2/images/image41.png b/product_docs/docs/eprs/6.2/images/image41.png new file mode 100644 index 00000000000..d8c22d3fa51 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image41.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5636bff1f1385abd8ffdf6bcd12de7f8cc77e7f31ddcb8c5d15110608bc2107c +size 219036 diff --git a/product_docs/docs/eprs/6.2/images/image42.jpg b/product_docs/docs/eprs/6.2/images/image42.jpg new file mode 100644 index 00000000000..7d59005bf9f --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image42.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f19c6552072624d56859db199b8eec3b6f4786361947639bd89df15bac00118d +size 96588 diff --git a/product_docs/docs/eprs/6.2/images/image42.png b/product_docs/docs/eprs/6.2/images/image42.png new file mode 100644 index 00000000000..025439638e1 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image42.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9060dee4efee394fb4170625c694f1d0b07ea26b0f9d8397daf906a22efad048 +size 117493 diff --git a/product_docs/docs/eprs/6.2/images/image43.jpg b/product_docs/docs/eprs/6.2/images/image43.jpg new file mode 100644 index 00000000000..79e891b1fee --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image43.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a4d87a29c7def2baf814e03088ab7ec259fc3bdb1e71a38e2d7e2521bf24c6a1 +size 111594 diff --git a/product_docs/docs/eprs/6.2/images/image43.png b/product_docs/docs/eprs/6.2/images/image43.png new file mode 100644 index 00000000000..aef046cc812 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image43.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cd02014ecc1d8c9aa669726bf21cd7418fc7ffe60a9afd6808eb71808f6f5379 +size 133860 diff --git a/product_docs/docs/eprs/6.2/images/image44.jpg b/product_docs/docs/eprs/6.2/images/image44.jpg new file mode 100644 index 00000000000..8ec39af13b2 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image44.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e2f6eb9b5a91a7df65b13e7c2d64cad381c10e3f7ae980e25059d7b493614b40 +size 81527 diff --git a/product_docs/docs/eprs/6.2/images/image44.png b/product_docs/docs/eprs/6.2/images/image44.png new file mode 100644 index 00000000000..ff4d3596257 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image44.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6f7ebe51ede7a044cabe2ee49a0217813d08055d7ffad032320d68a6b6562195 +size 95158 diff --git a/product_docs/docs/eprs/6.2/images/image45.jpg b/product_docs/docs/eprs/6.2/images/image45.jpg new file mode 100644 index 00000000000..5f9d651c799 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image45.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:91f0c350f686e9f9215629e5e23cea484e331fe6dc65b212a41e244f110046c1 +size 80670 diff --git a/product_docs/docs/eprs/6.2/images/image45.png b/product_docs/docs/eprs/6.2/images/image45.png new file mode 100644 index 00000000000..fad079158c9 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image45.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3497bb71e52587039017620a2c6d076c7c0b177b099c89c35927a386875e1439 +size 98247 diff --git a/product_docs/docs/eprs/6.2/images/image46.jpg b/product_docs/docs/eprs/6.2/images/image46.jpg new file mode 100644 index 00000000000..7377b543e15 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image46.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:65e66b3fe37f7f9c2203b775afbdd445d76da630128d8c102835983fd076c985 +size 98738 diff --git a/product_docs/docs/eprs/6.2/images/image46.png b/product_docs/docs/eprs/6.2/images/image46.png new file mode 100644 index 00000000000..298a5115416 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image46.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6d09320b5e8a71a947b91a1662a1c8178bb09671adf8d9a8ac68997cee2bec18 +size 123928 diff --git a/product_docs/docs/eprs/6.2/images/image47.jpg b/product_docs/docs/eprs/6.2/images/image47.jpg new file mode 100644 index 00000000000..2d5873af9b4 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image47.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2be9d3af8296e4f3c446daa06f61dbc610af0e479974f3e7735608420f93d66b +size 82319 diff --git a/product_docs/docs/eprs/6.2/images/image47.png b/product_docs/docs/eprs/6.2/images/image47.png new file mode 100644 index 00000000000..5a09a28b1fa --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image47.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:133ba483696634d29aa48f17ec8625aaf0ae347d2a1f8765e7fafb8f03a32cf0 +size 102479 diff --git a/product_docs/docs/eprs/6.2/images/image48.jpg b/product_docs/docs/eprs/6.2/images/image48.jpg new file mode 100644 index 00000000000..24daf87a2cc --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image48.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:78ceaa24b636e59a62fdaefb0a070084fdbbfd0f994f0785581a971546169077 +size 112091 diff --git a/product_docs/docs/eprs/6.2/images/image48.png b/product_docs/docs/eprs/6.2/images/image48.png new file mode 100644 index 00000000000..95373e55c6a --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image48.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3a848c9f3b9e8056e1a387b2b08acb978acccfa73fa7007a30ee6f19f4055c65 +size 148060 diff --git a/product_docs/docs/eprs/6.2/images/image49.jpg b/product_docs/docs/eprs/6.2/images/image49.jpg new file mode 100644 index 00000000000..c85404644e0 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image49.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8254e983d70a229bc2ba8fe0a5e5b0151a022f8fdaf8cd2b354e57e59160f844 +size 138180 diff --git a/product_docs/docs/eprs/6.2/images/image49.png b/product_docs/docs/eprs/6.2/images/image49.png new file mode 100644 index 00000000000..d50fdf7867d --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image49.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:664c0e3e16bab98ff1be2dce4d8b62db30f46a3fd3068281bc7da2c412cdd6f7 +size 205276 diff --git a/product_docs/docs/eprs/6.2/images/image5.jpeg b/product_docs/docs/eprs/6.2/images/image5.jpeg new file mode 100644 index 00000000000..8bf9fb04d3b --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image5.jpeg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:242d457df681b4df92f36c3d9e4b1a076e7d022c2dee72040a371e69dc361c84 +size 31128 diff --git a/product_docs/docs/eprs/6.2/images/image5.png b/product_docs/docs/eprs/6.2/images/image5.png new file mode 100644 index 00000000000..1fc290b8103 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image5.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ca64d9dc3fdc45b7976e68bbb1fae5b734a3c0467e7c2a6404b924774468260d +size 138654 diff --git a/product_docs/docs/eprs/6.2/images/image50.jpg b/product_docs/docs/eprs/6.2/images/image50.jpg new file mode 100644 index 00000000000..bd9214491c1 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image50.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:023af28a9b58749ae0e6c790bcc18e74b63997f43077014b5535538637749798 +size 183980 diff --git a/product_docs/docs/eprs/6.2/images/image50.png b/product_docs/docs/eprs/6.2/images/image50.png new file mode 100644 index 00000000000..732f191a4c7 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image50.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b88057bbd45309ae3e22aa2bfec9a208a73f993168462ef5f8b0c373ba49981e +size 302850 diff --git a/product_docs/docs/eprs/6.2/images/image51.jpg b/product_docs/docs/eprs/6.2/images/image51.jpg new file mode 100644 index 00000000000..34d0bcea110 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image51.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b570149d4777c95319954e5cc63b27c67d6f30e9cb578c173675fb9a3cdcd971 +size 39532 diff --git a/product_docs/docs/eprs/6.2/images/image51.png b/product_docs/docs/eprs/6.2/images/image51.png new file mode 100644 index 00000000000..d085827d1ea --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image51.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:392fd73138180c30198e8792d03d652b730d9f50387075aed72d1e3703f98afb +size 58543 diff --git a/product_docs/docs/eprs/6.2/images/image52.jpg b/product_docs/docs/eprs/6.2/images/image52.jpg new file mode 100644 index 00000000000..e3dfab43838 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image52.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f0a6cc30bd97d82adbc820616693044b729c3a452695c78ce5e6562d66cbaf90 +size 102715 diff --git a/product_docs/docs/eprs/6.2/images/image52.png b/product_docs/docs/eprs/6.2/images/image52.png new file mode 100644 index 00000000000..a80cc2ea9fa --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image52.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:82b098f6180062ca616c71764e8fcda93d81bbbf33cd093c95ee0f9b92ac05bf +size 130486 diff --git a/product_docs/docs/eprs/6.2/images/image53.jpg b/product_docs/docs/eprs/6.2/images/image53.jpg new file mode 100644 index 00000000000..81f5252e0ed --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image53.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:716c252d4853f75e62d34e0661d11c6f48fbbab54b0d83175654a65c8b7ca04d +size 232419 diff --git a/product_docs/docs/eprs/6.2/images/image53.png b/product_docs/docs/eprs/6.2/images/image53.png new file mode 100644 index 00000000000..d967c0585d9 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image53.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:da1e08cd1bc1dc62abda05bbe10e8b29958662649234dc4d1cc712fcfe0d7f96 +size 503981 diff --git a/product_docs/docs/eprs/6.2/images/image54.jpg b/product_docs/docs/eprs/6.2/images/image54.jpg new file mode 100644 index 00000000000..d84b4cf6891 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image54.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:abe0bcffee50802c25b0643aaa661c068bb6286c1a9b168d290995c9d3e6bbf4 +size 346885 diff --git a/product_docs/docs/eprs/6.2/images/image54.png b/product_docs/docs/eprs/6.2/images/image54.png new file mode 100644 index 00000000000..7e0bc17a17a --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image54.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8ad813d41fd062c73b8447d6270933546b786eac62921912ac5f12efb0393795 +size 747320 diff --git a/product_docs/docs/eprs/6.2/images/image55.jpg b/product_docs/docs/eprs/6.2/images/image55.jpg new file mode 100644 index 00000000000..56962cb3e5f --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image55.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3f1e55e1339d4558ffb190453f88adcd9b409b583d99c745ee031c19d7e6d838 +size 28208 diff --git a/product_docs/docs/eprs/6.2/images/image55.png b/product_docs/docs/eprs/6.2/images/image55.png new file mode 100644 index 00000000000..0297dda10df --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image55.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c4ad9653b778e768a7be738c82a56fb48036e46646b72cbf54b5a1fbe00edf9b +size 67790 diff --git a/product_docs/docs/eprs/6.2/images/image56.jpg b/product_docs/docs/eprs/6.2/images/image56.jpg new file mode 100644 index 00000000000..fa7f8c95429 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image56.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9e3376da6739b4330ab366f1d7774f1a135aa07822e8cee3d59713e6c34b8a81 +size 65895 diff --git a/product_docs/docs/eprs/6.2/images/image56.png b/product_docs/docs/eprs/6.2/images/image56.png new file mode 100644 index 00000000000..71f0a814f17 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image56.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79e1e218cf31e606ba0048b9aef1e5756908bf71e2d1d07dfd13063ec6be84bb +size 136794 diff --git a/product_docs/docs/eprs/6.2/images/image57.jpg b/product_docs/docs/eprs/6.2/images/image57.jpg new file mode 100644 index 00000000000..b254311e747 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image57.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c5293707f5d4421f2187ab7a54caeb88ae44681d9780a2a5d7bacf818769b58c +size 136803 diff --git a/product_docs/docs/eprs/6.2/images/image57.png b/product_docs/docs/eprs/6.2/images/image57.png new file mode 100644 index 00000000000..4c495c97ea9 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image57.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b0724e036bef2c53bc762b269896374b76d15dd64fa73f981320a0ecc1c10f0d +size 195327 diff --git a/product_docs/docs/eprs/6.2/images/image58.jpg b/product_docs/docs/eprs/6.2/images/image58.jpg new file mode 100644 index 00000000000..2617c27ddba --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image58.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:793713befcbc69539fb50d672ed9e3e725476d8e0fccb42c2ffcfa96d017b6fe +size 41419 diff --git a/product_docs/docs/eprs/6.2/images/image58.png b/product_docs/docs/eprs/6.2/images/image58.png new file mode 100644 index 00000000000..3a296183e0e --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image58.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ee662968569ed53d4375458efff312afdb2563e52957767dc2b54a0fb5269b40 +size 68809 diff --git a/product_docs/docs/eprs/6.2/images/image59.jpg b/product_docs/docs/eprs/6.2/images/image59.jpg new file mode 100644 index 00000000000..298bf78c63e --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image59.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e3594015c63f3db38741b79095737c31495936bc8f44034d477dd182be46e61a +size 74731 diff --git a/product_docs/docs/eprs/6.2/images/image59.png b/product_docs/docs/eprs/6.2/images/image59.png new file mode 100644 index 00000000000..eb90f10c65f --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image59.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c78a6a8297021cc53c3be12a3396b89b13e054d95792c991ff05da1c22466241 +size 121399 diff --git a/product_docs/docs/eprs/6.2/images/image6.jpeg b/product_docs/docs/eprs/6.2/images/image6.jpeg new file mode 100644 index 00000000000..612702125c6 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image6.jpeg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2538befe672f0327ed1744384ca1b63114793d77820df0a7bd95bff897d1b65f +size 34356 diff --git a/product_docs/docs/eprs/6.2/images/image6.png b/product_docs/docs/eprs/6.2/images/image6.png new file mode 100644 index 00000000000..e96c1ad6618 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image6.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e800d34a8c12910b9bf047b2e8516efd94c88ad175040a4ebe0c6ee0d0432e9 +size 152218 diff --git a/product_docs/docs/eprs/6.2/images/image60.jpg b/product_docs/docs/eprs/6.2/images/image60.jpg new file mode 100644 index 00000000000..53cabceb9d9 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image60.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:062d83c8f85f0da79635c35b8b257806888bc91d24ffdb4f82ab4be9c65dc1a7 +size 79345 diff --git a/product_docs/docs/eprs/6.2/images/image60.png b/product_docs/docs/eprs/6.2/images/image60.png new file mode 100644 index 00000000000..07c163ad9d5 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image60.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8ea7e52400f750115a0e065cd750e4db523b2a56321c909a962a5b52da6d6eb4 +size 129730 diff --git a/product_docs/docs/eprs/6.2/images/image61.jpg b/product_docs/docs/eprs/6.2/images/image61.jpg new file mode 100644 index 00000000000..8b20fe92eb8 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image61.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9ed20e141b388f64863e062725555978fc336014c9fd149a7fb82de5bb764ed8 +size 81278 diff --git a/product_docs/docs/eprs/6.2/images/image61.png b/product_docs/docs/eprs/6.2/images/image61.png new file mode 100644 index 00000000000..4725a7ed28e --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image61.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:197eea7f07d0f201046259ec271e8d7d734b7f8d7817c7c6f92b616bef3b4f2e +size 127163 diff --git a/product_docs/docs/eprs/6.2/images/image62.jpg b/product_docs/docs/eprs/6.2/images/image62.jpg new file mode 100644 index 00000000000..4bed74a550b --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image62.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c3f5267f6bedaa8a15bd1ddbe3cf9c2d9ac028c99e1302a9adea8eae1c47ec49 +size 89625 diff --git a/product_docs/docs/eprs/6.2/images/image62.png b/product_docs/docs/eprs/6.2/images/image62.png new file mode 100644 index 00000000000..eb04bb9bf12 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image62.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ee5fefb917a824120cf39d86eb0e4c7d97054988222c7adb777cc8221861cfb4 +size 141631 diff --git a/product_docs/docs/eprs/6.2/images/image63.jpg b/product_docs/docs/eprs/6.2/images/image63.jpg new file mode 100644 index 00000000000..5ee9abeb948 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image63.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1159c0429069adc94bed1180bf4d1238e180f1c05dfc1836976f0413630a3b7e +size 60657 diff --git a/product_docs/docs/eprs/6.2/images/image63.png b/product_docs/docs/eprs/6.2/images/image63.png new file mode 100644 index 00000000000..9400fda0901 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image63.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e5798e6980cca3c9f1f391ab1bdd36504e385cc3ec689d40c8f9e8c52dcf64b6 +size 65350 diff --git a/product_docs/docs/eprs/6.2/images/image64.jpg b/product_docs/docs/eprs/6.2/images/image64.jpg new file mode 100644 index 00000000000..9012558a9e2 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image64.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7ef01a4801580af57be36e3e42caed1d16c5cb7d3ab8101795b186be820f0e7d +size 62088 diff --git a/product_docs/docs/eprs/6.2/images/image64.png b/product_docs/docs/eprs/6.2/images/image64.png new file mode 100644 index 00000000000..b774e92ee6d --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image64.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7740f4664592a9fddd09723582a6b82ee949d17e88d36a20b420042bc260df17 +size 75075 diff --git a/product_docs/docs/eprs/6.2/images/image65.jpg b/product_docs/docs/eprs/6.2/images/image65.jpg new file mode 100644 index 00000000000..2e1b9ce3dd4 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image65.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3a2b6df39b511c44df80840c92c5352d781e4c4d70a91af38aaaf8d8a3520ec4 +size 148555 diff --git a/product_docs/docs/eprs/6.2/images/image65.png b/product_docs/docs/eprs/6.2/images/image65.png new file mode 100644 index 00000000000..d2166936363 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image65.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:37bcb36c1452fc756725233fbbd32eec928f9d51da6886e9614b08fa8dc9a6d5 +size 302995 diff --git a/product_docs/docs/eprs/6.2/images/image66.jpg b/product_docs/docs/eprs/6.2/images/image66.jpg new file mode 100644 index 00000000000..70e3b6895be --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image66.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d379a03f28e90f5967445d895afaaebf6e8e0ff95bd6e09cfc0722329c1bf74f +size 117580 diff --git a/product_docs/docs/eprs/6.2/images/image66.png b/product_docs/docs/eprs/6.2/images/image66.png new file mode 100644 index 00000000000..a5afef16474 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image66.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:86c64eafc0c65953369890e357b753bd0e852e6816851bb1889d08edfd3c4600 +size 254819 diff --git a/product_docs/docs/eprs/6.2/images/image67.jpg b/product_docs/docs/eprs/6.2/images/image67.jpg new file mode 100644 index 00000000000..b598e9e063c --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image67.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ceb5a7cf455b7f1b85893d3884e4512db044c8e148134f99fd320fb7027071b +size 103112 diff --git a/product_docs/docs/eprs/6.2/images/image67.png b/product_docs/docs/eprs/6.2/images/image67.png new file mode 100644 index 00000000000..c20c4103e04 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image67.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1d0902da1515f2d76e0811fee86a6099bdcbe28b20e8db6395a61630574f4a58 +size 116698 diff --git a/product_docs/docs/eprs/6.2/images/image68.jpg b/product_docs/docs/eprs/6.2/images/image68.jpg new file mode 100644 index 00000000000..bf76928b4fb --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image68.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:16821267da29af43f43ddb6d1e515e36b392da0bf7be12376354996e009ce734 +size 112294 diff --git a/product_docs/docs/eprs/6.2/images/image68.png b/product_docs/docs/eprs/6.2/images/image68.png new file mode 100644 index 00000000000..1ef03701717 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image68.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3c3cf317913df26677494d9fd9fbb1c36659b7e15186b7dabba4c18397e0001a +size 152755 diff --git a/product_docs/docs/eprs/6.2/images/image69.jpg b/product_docs/docs/eprs/6.2/images/image69.jpg new file mode 100644 index 00000000000..836babed6cb --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image69.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:745f62da86af035e3b1005be27e295be8fbdee1c39f9366ac2d63ff2f8dcb537 +size 120393 diff --git a/product_docs/docs/eprs/6.2/images/image69.png b/product_docs/docs/eprs/6.2/images/image69.png new file mode 100644 index 00000000000..b18aabf7b88 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image69.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3836afb58930522320801febc79c8e7e0b3ce1517c98abd2e79eb347ca4fade8 +size 133092 diff --git a/product_docs/docs/eprs/6.2/images/image7.jpeg b/product_docs/docs/eprs/6.2/images/image7.jpeg new file mode 100644 index 00000000000..1bf77ad689f --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image7.jpeg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:299ad9778eb20c8da530930c940fd1ba9c79a16775146d74f322eeabdff5e395 +size 38125 diff --git a/product_docs/docs/eprs/6.2/images/image7.png b/product_docs/docs/eprs/6.2/images/image7.png new file mode 100644 index 00000000000..64f8d91e189 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image7.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a246dbe7290dcc5ae0a683f95c5ba928b5b7dc7e8260561e6c8f6e028ebd9aaa +size 176504 diff --git a/product_docs/docs/eprs/6.2/images/image70.jpg b/product_docs/docs/eprs/6.2/images/image70.jpg new file mode 100644 index 00000000000..b2697a083e2 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image70.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9bc9eb9c9e3f3477f8f95f55d1363378a02919139a492b3189839e1821efa766 +size 136597 diff --git a/product_docs/docs/eprs/6.2/images/image70.png b/product_docs/docs/eprs/6.2/images/image70.png new file mode 100644 index 00000000000..1910027b696 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image70.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:143ad62d0e06c16d6d182d02010dca287192b54f588e45b1e4a202aa2ef74a24 +size 154127 diff --git a/product_docs/docs/eprs/6.2/images/image71.jpg b/product_docs/docs/eprs/6.2/images/image71.jpg new file mode 100644 index 00000000000..8f30f96202b --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image71.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:76fc9c2999b74a96ab2c3a28b1c8add747089619f43ba28f26154089cbf2589e +size 120510 diff --git a/product_docs/docs/eprs/6.2/images/image71.png b/product_docs/docs/eprs/6.2/images/image71.png new file mode 100644 index 00000000000..9660c124386 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image71.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:994cc1e347a1f7f9d929e1b00287ddbb1522fc119288ee5f77615c5270b1272e +size 143260 diff --git a/product_docs/docs/eprs/6.2/images/image72.jpg b/product_docs/docs/eprs/6.2/images/image72.jpg new file mode 100644 index 00000000000..0285386bda3 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image72.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:51586f5e728609a1928733ebf71366b7b5ea7991d3ea23b76cfa8d8551d45914 +size 140149 diff --git a/product_docs/docs/eprs/6.2/images/image72.png b/product_docs/docs/eprs/6.2/images/image72.png new file mode 100644 index 00000000000..f334a91e73f --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image72.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1ab2cd9b7c149e50462e96bc0d16b966c95dfacd3805c872013e7ca6b56db1b2 +size 180792 diff --git a/product_docs/docs/eprs/6.2/images/image73.jpg b/product_docs/docs/eprs/6.2/images/image73.jpg new file mode 100644 index 00000000000..e013b6da2b4 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image73.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:45b9e75bedd2363b0098699775f2db513786c0534244dcf1666a6d725daab254 +size 102079 diff --git a/product_docs/docs/eprs/6.2/images/image73.png b/product_docs/docs/eprs/6.2/images/image73.png new file mode 100644 index 00000000000..ef9427ee154 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image73.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:90c93624397dd7252715c7a3cb8f21ed98767feb97e96d74cc1a20174761d642 +size 111542 diff --git a/product_docs/docs/eprs/6.2/images/image74.jpg b/product_docs/docs/eprs/6.2/images/image74.jpg new file mode 100644 index 00000000000..5e1ed8c4a5e --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image74.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9e09ccdcf846573fd37474a103d386ec108fcc7201baa5de637618e51bdaf856 +size 161485 diff --git a/product_docs/docs/eprs/6.2/images/image74.png b/product_docs/docs/eprs/6.2/images/image74.png new file mode 100644 index 00000000000..1dc36697762 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image74.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:006317270d1b5851fccf21823040580cd3b0484b296ce88b50d7a5e3667312a5 +size 165723 diff --git a/product_docs/docs/eprs/6.2/images/image75.jpg b/product_docs/docs/eprs/6.2/images/image75.jpg new file mode 100644 index 00000000000..7a8600fe0ac --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image75.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7dd14fba3d353fd3db36bf410671878241e09fc71b5640d54aab1b2431a085a0 +size 187927 diff --git a/product_docs/docs/eprs/6.2/images/image75.png b/product_docs/docs/eprs/6.2/images/image75.png new file mode 100644 index 00000000000..4c62d22356e --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image75.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0da99c9a664eb519225774de761bdbd4dbf413ddc998f6480d52d930a51408d5 +size 188566 diff --git a/product_docs/docs/eprs/6.2/images/image76.jpg b/product_docs/docs/eprs/6.2/images/image76.jpg new file mode 100644 index 00000000000..b9910adfe1f --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image76.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e225479da38fb913bca2d06435ff25b5106f8f9b0f0e1455d285535172b07820 +size 193166 diff --git a/product_docs/docs/eprs/6.2/images/image76.png b/product_docs/docs/eprs/6.2/images/image76.png new file mode 100644 index 00000000000..594e7f30532 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image76.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6707473c2a2283192aedb0d4409d152c6eb27c59d4accd92981b23a64cde3405 +size 178594 diff --git a/product_docs/docs/eprs/6.2/images/image77.jpg b/product_docs/docs/eprs/6.2/images/image77.jpg new file mode 100644 index 00000000000..34ae9db834a --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image77.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9e636e4efaf7605cbbc6b26f879267cdf67d315701dc25da8fe1718642f75afb +size 197741 diff --git a/product_docs/docs/eprs/6.2/images/image77.png b/product_docs/docs/eprs/6.2/images/image77.png new file mode 100644 index 00000000000..b7d8745d8fa --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image77.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:34b5efe43bf845d60c39a592dd322d55567bb1a945fd1524c743bdb2d2ea5562 +size 201028 diff --git a/product_docs/docs/eprs/6.2/images/image78.jpg b/product_docs/docs/eprs/6.2/images/image78.jpg new file mode 100644 index 00000000000..1792df32b8e --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image78.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:84132d8be3a6ffb49ee0e6f2c375dfec31d067bb00dec038fef0c7b1b80416a8 +size 130521 diff --git a/product_docs/docs/eprs/6.2/images/image78.png b/product_docs/docs/eprs/6.2/images/image78.png new file mode 100644 index 00000000000..f45b3d089b4 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image78.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9cc417fc74dee6a3f801aa5a369d7a5b6f3b442cf08fe3094bfb4c4ead8a59b6 +size 184892 diff --git a/product_docs/docs/eprs/6.2/images/image79.jpg b/product_docs/docs/eprs/6.2/images/image79.jpg new file mode 100644 index 00000000000..c187a6d191b --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image79.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:976501f988635b3508252a4fbd8b007d68660f8c55e109585e0535466ffd9fb1 +size 137179 diff --git a/product_docs/docs/eprs/6.2/images/image79.png b/product_docs/docs/eprs/6.2/images/image79.png new file mode 100644 index 00000000000..861acf44f60 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image79.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:90318175933c38c9409848afc56bc5716414590643ab1399fb36c9bc3b0b9fc9 +size 282095 diff --git a/product_docs/docs/eprs/6.2/images/image8.png b/product_docs/docs/eprs/6.2/images/image8.png new file mode 100644 index 00000000000..181e69f46dd --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image8.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d91c7df61b664a9b39a0ad3f1c7a32fbf1f4f67c345b646395ed58feab34d186 +size 365236 diff --git a/product_docs/docs/eprs/6.2/images/image80.jpg b/product_docs/docs/eprs/6.2/images/image80.jpg new file mode 100644 index 00000000000..ec39d926774 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image80.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:17860f4fe635130dbf0390722fdcb55e20f05c126dfc03f149be586a852641f6 +size 155850 diff --git a/product_docs/docs/eprs/6.2/images/image80.png b/product_docs/docs/eprs/6.2/images/image80.png new file mode 100644 index 00000000000..8675adce0ad --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image80.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:60d18ee1a16e601071e3a2c1e4c606394f6555bca764d5a01285db7b0f12c9f5 +size 214862 diff --git a/product_docs/docs/eprs/6.2/images/image81.jpg b/product_docs/docs/eprs/6.2/images/image81.jpg new file mode 100644 index 00000000000..cd65b2ab332 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image81.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2587e1850196288d8e1a4ca8613074703bca7d17c4589ff1e20ae36afd88ec7a +size 129218 diff --git a/product_docs/docs/eprs/6.2/images/image81.png b/product_docs/docs/eprs/6.2/images/image81.png new file mode 100644 index 00000000000..4f632268aef --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image81.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:94e44e9e81830658cfc161be4e7f26cc73583bd29062b203ca8840598729988c +size 147746 diff --git a/product_docs/docs/eprs/6.2/images/image82.jpg b/product_docs/docs/eprs/6.2/images/image82.jpg new file mode 100644 index 00000000000..75c72489e7c --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image82.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:13cee83d835baaba08c4cad7d6e4529dea67e6c7c2ecb59d5f93d78cb43abfca +size 132991 diff --git a/product_docs/docs/eprs/6.2/images/image82.png b/product_docs/docs/eprs/6.2/images/image82.png new file mode 100644 index 00000000000..4e7e9bf327c --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image82.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d5205aefa7259541d2eac3e07efb88974d4afb72d0e6772c89cecc56c98728c7 +size 160174 diff --git a/product_docs/docs/eprs/6.2/images/image83.jpg b/product_docs/docs/eprs/6.2/images/image83.jpg new file mode 100644 index 00000000000..e9fcca6caa0 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image83.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:92934fb9cdf2f80e29e5490ca227757d7fc42c8c3a528c2168aab0bc94d98a15 +size 151078 diff --git a/product_docs/docs/eprs/6.2/images/image83.png b/product_docs/docs/eprs/6.2/images/image83.png new file mode 100644 index 00000000000..13b7a35f74d --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image83.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f64f8f1fbd70ef0966c19f9c98574c555968c28ce9a70dbdefb598d93593a269 +size 210585 diff --git a/product_docs/docs/eprs/6.2/images/image84.jpg b/product_docs/docs/eprs/6.2/images/image84.jpg new file mode 100644 index 00000000000..01828cb71ed --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image84.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9bb4163f6c120b7caacd1a79ab6a5709dd0a09847a5cf55bfc98ef0177318f74 +size 109885 diff --git a/product_docs/docs/eprs/6.2/images/image84.png b/product_docs/docs/eprs/6.2/images/image84.png new file mode 100644 index 00000000000..0f03a60522a --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image84.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7d647a3f58c2c73aff258633120def066eb3cc155efd1a330755155c241b1699 +size 120952 diff --git a/product_docs/docs/eprs/6.2/images/image85.jpg b/product_docs/docs/eprs/6.2/images/image85.jpg new file mode 100644 index 00000000000..e58ce407a06 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image85.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:99079e403959fa2b0ccce64b9934a790c45b4a6f815b27e5fcba35388782b821 +size 100062 diff --git a/product_docs/docs/eprs/6.2/images/image85.png b/product_docs/docs/eprs/6.2/images/image85.png new file mode 100644 index 00000000000..02620520466 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image85.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b8926f320c858980fdd92e895cca2e0281cbbe2a4307e5f7a19187cafb66979 +size 120922 diff --git a/product_docs/docs/eprs/6.2/images/image86.jpg b/product_docs/docs/eprs/6.2/images/image86.jpg new file mode 100644 index 00000000000..739eb0551c2 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image86.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0faf852ec84c5073b44fd63d28aadac25a282f22b88e0745802dc1d2f1d30cf2 +size 129247 diff --git a/product_docs/docs/eprs/6.2/images/image86.png b/product_docs/docs/eprs/6.2/images/image86.png new file mode 100644 index 00000000000..45df05ac318 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image86.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c2ad15da7d20fb84e1d55ba6364e41cf37d4ebed9734f02067f1238aa7cfc9d4 +size 166122 diff --git a/product_docs/docs/eprs/6.2/images/image87.jpg b/product_docs/docs/eprs/6.2/images/image87.jpg new file mode 100644 index 00000000000..83036677b17 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image87.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:639fd742bac1291ecfcff3b263a2d5c09ed33b5b4c029ef51a9e7ac6f46edd98 +size 179718 diff --git a/product_docs/docs/eprs/6.2/images/image87.png b/product_docs/docs/eprs/6.2/images/image87.png new file mode 100644 index 00000000000..89a3425aed2 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image87.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc06f081ea8c17645131acd2d2d1b7ea8b4dd82d0910e7192d114cac288ee89d +size 253051 diff --git a/product_docs/docs/eprs/6.2/images/image88.jpg b/product_docs/docs/eprs/6.2/images/image88.jpg new file mode 100644 index 00000000000..45760e12caf --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image88.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1e2db8632dfcc89c9f5d9fd5398f5c26e1af32879e9a2b6cc790a177a7edfca9 +size 262414 diff --git a/product_docs/docs/eprs/6.2/images/image88.png b/product_docs/docs/eprs/6.2/images/image88.png new file mode 100644 index 00000000000..bfc7297655a --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image88.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:13e54c20c1b3ffb6fe036dc00b6589a87b03b956b8528be991d0d0290f0ad5c8 +size 410524 diff --git a/product_docs/docs/eprs/6.2/images/image89.jpg b/product_docs/docs/eprs/6.2/images/image89.jpg new file mode 100644 index 00000000000..7acb8dfa01b --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image89.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a7f02d1e2e6ad1980ec0cf5d1d07138f7428f1038cbc33c3dd02b25e30841cc8 +size 122394 diff --git a/product_docs/docs/eprs/6.2/images/image89.png b/product_docs/docs/eprs/6.2/images/image89.png new file mode 100644 index 00000000000..59f3f216efa --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image89.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1e7136a984ed9e950feb278237825b2c9505a3c03fcfd997c8d4fde69ccfeb61 +size 183410 diff --git a/product_docs/docs/eprs/6.2/images/image9.png b/product_docs/docs/eprs/6.2/images/image9.png new file mode 100644 index 00000000000..e9285de4f8d --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image9.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:342303a9e7f281d0251577290cfd36587bd61c2883c20a4ceb1aa1511c8ba181 +size 764809 diff --git a/product_docs/docs/eprs/6.2/images/image90.jpg b/product_docs/docs/eprs/6.2/images/image90.jpg new file mode 100644 index 00000000000..f7f9d835b26 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image90.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ff39c2b449e2d0b453ef9b3505ca546ca64681d9b339837ec027c033f672cd2b +size 157585 diff --git a/product_docs/docs/eprs/6.2/images/image90.png b/product_docs/docs/eprs/6.2/images/image90.png new file mode 100644 index 00000000000..5982f6be26e --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image90.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:29b0f8cee1da13396cecf43c45dab2dd672a1f2daf3a1498d6ac6b16921ae314 +size 226847 diff --git a/product_docs/docs/eprs/6.2/images/image91.jpg b/product_docs/docs/eprs/6.2/images/image91.jpg new file mode 100644 index 00000000000..ae1b8731635 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image91.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b7259b09e3aa7ff8c05c56eb9370bd09ddde4097247b576d96b6d7e91f0bfe65 +size 91838 diff --git a/product_docs/docs/eprs/6.2/images/image91.png b/product_docs/docs/eprs/6.2/images/image91.png new file mode 100644 index 00000000000..86f480c8960 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image91.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:84dbd5b27978d91e6754c01bb5a041ecafaa1c7cec40fd474cccb97236b3f2bb +size 100619 diff --git a/product_docs/docs/eprs/6.2/images/image92.jpg b/product_docs/docs/eprs/6.2/images/image92.jpg new file mode 100644 index 00000000000..dabf5c1254d --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image92.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa4344b15054625acf5198a13a75c1f631dce09622c1ba80afe466080ca7d268 +size 79771 diff --git a/product_docs/docs/eprs/6.2/images/image92.png b/product_docs/docs/eprs/6.2/images/image92.png new file mode 100644 index 00000000000..1f425be3971 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image92.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4a8fd833a7d58747d8bd48b52c4528a553e4884d104bf01111ba4a23ce6f5661 +size 104152 diff --git a/product_docs/docs/eprs/6.2/images/image93.jpg b/product_docs/docs/eprs/6.2/images/image93.jpg new file mode 100644 index 00000000000..16479ad6d76 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image93.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:721a7c4eb6d1315f6699712c9b80fba1cb868ef27d73024eac7700dc16be0a9e +size 127540 diff --git a/product_docs/docs/eprs/6.2/images/image93.png b/product_docs/docs/eprs/6.2/images/image93.png new file mode 100644 index 00000000000..a3071bf7d1b --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image93.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c4f2de2d0c98a17c1f7f99affc8999702c079d38be9f8b8f4ebc414a6db5c9ae +size 180422 diff --git a/product_docs/docs/eprs/6.2/images/image94.jpg b/product_docs/docs/eprs/6.2/images/image94.jpg new file mode 100644 index 00000000000..bebc591605e --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image94.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af3c3ce2df2deb643b5895fd17fc99f1a2e71d5a74e6e918d58119ffbb159f4a +size 69176 diff --git a/product_docs/docs/eprs/6.2/images/image94.png b/product_docs/docs/eprs/6.2/images/image94.png new file mode 100644 index 00000000000..f81a597136b --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image94.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:372de227f4094245f60817b20cdd037579038e439ae7163d717f827e59741bf0 +size 92008 diff --git a/product_docs/docs/eprs/6.2/images/image95.jpg b/product_docs/docs/eprs/6.2/images/image95.jpg new file mode 100644 index 00000000000..44d285be6e8 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image95.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c971bb5200c1fab199595906d5f6bc1a2b8762c29f028f24981d9b3d5bea2a1a +size 113395 diff --git a/product_docs/docs/eprs/6.2/images/image95.png b/product_docs/docs/eprs/6.2/images/image95.png new file mode 100644 index 00000000000..d07dba68656 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image95.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ea17b0e694409c1e880d09b4179327068c77dca65443244faf644201aff1ed89 +size 154587 diff --git a/product_docs/docs/eprs/6.2/images/image96.jpg b/product_docs/docs/eprs/6.2/images/image96.jpg new file mode 100644 index 00000000000..c3affc68886 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image96.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2ed87075dfce68ae026df1d7414a5fad592caa7336247b8e5b610128651722af +size 55641 diff --git a/product_docs/docs/eprs/6.2/images/image96.png b/product_docs/docs/eprs/6.2/images/image96.png new file mode 100644 index 00000000000..0d158d3c5d6 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image96.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69f06e4389991053ea69fdb2041fd5e029423232082bcacaa47a3076c648b322 +size 68165 diff --git a/product_docs/docs/eprs/6.2/images/image97.jpg b/product_docs/docs/eprs/6.2/images/image97.jpg new file mode 100644 index 00000000000..91c239cf351 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image97.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8ed225c25de17603eaefd56eeee8fed9f22cd6c3772e4a0991f21497e2372835 +size 64320 diff --git a/product_docs/docs/eprs/6.2/images/image97.png b/product_docs/docs/eprs/6.2/images/image97.png new file mode 100644 index 00000000000..acc875568a9 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image97.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4c018af001a8645a8016df648f37cae0a2c7ab336f09662394bb3071d1652281 +size 76257 diff --git a/product_docs/docs/eprs/6.2/images/image98.jpg b/product_docs/docs/eprs/6.2/images/image98.jpg new file mode 100644 index 00000000000..e3f8a2711f1 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image98.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:60af07b98172af3a6c952be927c0c7be77a46cde3f7c73e9bd0de134e26a69a0 +size 117621 diff --git a/product_docs/docs/eprs/6.2/images/image98.png b/product_docs/docs/eprs/6.2/images/image98.png new file mode 100644 index 00000000000..bff657e2885 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image98.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:16a024d013712dcc07e7cbd52cefa77fecbff5675a10dbfb67a9c97120b0282a +size 159266 diff --git a/product_docs/docs/eprs/6.2/images/image99.jpg b/product_docs/docs/eprs/6.2/images/image99.jpg new file mode 100644 index 00000000000..c01ebd0c986 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image99.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9d52c8af870ce382048b8d3cdcf4230155c378cd583afc8756181d5ffa582c07 +size 125740 diff --git a/product_docs/docs/eprs/6.2/images/image99.png b/product_docs/docs/eprs/6.2/images/image99.png new file mode 100644 index 00000000000..1bf4ccf9de4 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/image99.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f5ac348a5a33bddb97d12a35d0352e7034e114daad1ec99899a522625e345b66 +size 141328 diff --git a/product_docs/docs/eprs/6.2/images/less_secure_apps.png b/product_docs/docs/eprs/6.2/images/less_secure_apps.png new file mode 100755 index 00000000000..6a1839f2a9e --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/less_secure_apps.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:09ad7af4c5948eb9261f6a09e6a98832be139b6d83b37ea27c1ef2b11b1efec9 +size 23835 diff --git a/product_docs/docs/eprs/6.2/images/media/aws_instance.png b/product_docs/docs/eprs/6.2/images/media/aws_instance.png new file mode 100644 index 00000000000..4c466fb77cb --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/aws_instance.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:55689b90a2e64b47ee6845a3326d1602b04edbff514fee3ba3570bb465ae85a6 +size 378666 diff --git a/product_docs/docs/eprs/6.2/images/media/edb_logo.png b/product_docs/docs/eprs/6.2/images/media/edb_logo.png new file mode 100644 index 00000000000..f4a93cf57f5 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/edb_logo.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:07423b012a855204780fe5a2a5a1e33607304a5c3020ae4acbf3d575691dedd6 +size 12136 diff --git a/product_docs/docs/eprs/6.2/images/media/edb_logo.svg b/product_docs/docs/eprs/6.2/images/media/edb_logo.svg new file mode 100644 index 00000000000..f24d1dfefee --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/edb_logo.svg @@ -0,0 +1,19 @@ + + + edb-logo-disc-dark + + + + \ No newline at end of file diff --git a/product_docs/docs/eprs/6.2/images/media/efm_slot.png b/product_docs/docs/eprs/6.2/images/media/efm_slot.png new file mode 100644 index 00000000000..4d0ca1b5fb7 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/efm_slot.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:34c2e29d8b9176756717aca929baeb21548f21b5b4fe8b6637b74fe3030524ee +size 575908 diff --git a/product_docs/docs/eprs/6.2/images/media/efm_slot_old.png b/product_docs/docs/eprs/6.2/images/media/efm_slot_old.png new file mode 100644 index 00000000000..445b5a0004a --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/efm_slot_old.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d0ec1a3170980c6e606e0cc72b314a33f7cc266c42795c47659619e0b37e3e70 +size 178594 diff --git a/product_docs/docs/eprs/6.2/images/media/google_security_settings.png b/product_docs/docs/eprs/6.2/images/media/google_security_settings.png new file mode 100755 index 00000000000..26cd39490f3 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/google_security_settings.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8f8e623cfb3d2d221c5ee293b841ac91d195acb28915b3ba0a66ce06a8f36b18 +size 102431 diff --git a/product_docs/docs/eprs/6.2/images/media/image10.jpg b/product_docs/docs/eprs/6.2/images/media/image10.jpg new file mode 100644 index 00000000000..005b3e06292 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image10.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b9af678b6393a7874f0aa3a21e38b09d8587dc5c68521c2d185e605569006f93 +size 37108 diff --git a/product_docs/docs/eprs/6.2/images/media/image100.jpg b/product_docs/docs/eprs/6.2/images/media/image100.jpg new file mode 100644 index 00000000000..70cab485ee4 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image100.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bcb2fbb506e49efe588e0fef9e684cb79d1070de6260c69359aefd522456f1c8 +size 125289 diff --git a/product_docs/docs/eprs/6.2/images/media/image101.jpg b/product_docs/docs/eprs/6.2/images/media/image101.jpg new file mode 100644 index 00000000000..c45a9db8d4d --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image101.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:141b260b93e6fdd4a7e7c2337f8ffb93fb40cfd374805f1c925e1086d94b327d +size 133043 diff --git a/product_docs/docs/eprs/6.2/images/media/image102.jpg b/product_docs/docs/eprs/6.2/images/media/image102.jpg new file mode 100644 index 00000000000..f167299524f --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image102.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3c8f310aae0ca79ab43b6c466dd6c9a07fbbee57dd52a2ce8aa9dcddfaabe7e6 +size 128633 diff --git a/product_docs/docs/eprs/6.2/images/media/image103.jpg b/product_docs/docs/eprs/6.2/images/media/image103.jpg new file mode 100644 index 00000000000..892a23cb65a --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image103.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:24ca1a5a1d4ee048008e2de7a245e91c22347401fb7d2b29436c843d1ee8e3e6 +size 108865 diff --git a/product_docs/docs/eprs/6.2/images/media/image104.jpg b/product_docs/docs/eprs/6.2/images/media/image104.jpg new file mode 100644 index 00000000000..e7b72d0e64a --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image104.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c4104cb59a6ec1577f33c032f0ba2fa62b48c7081410cfc4cea0c65f7600ada +size 110514 diff --git a/product_docs/docs/eprs/6.2/images/media/image105.jpg b/product_docs/docs/eprs/6.2/images/media/image105.jpg new file mode 100644 index 00000000000..c1d581bd444 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image105.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ae0294dee532205e049fc21bc2168a2783ba2c75eb2b9eadb299eebf2bf4432 +size 166887 diff --git a/product_docs/docs/eprs/6.2/images/media/image106.jpg b/product_docs/docs/eprs/6.2/images/media/image106.jpg new file mode 100644 index 00000000000..bd749e114d8 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image106.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:05cfdc0b3aff1c59caa5c4ab68c0caefc7617fba8e7a5474387a82a99af1b769 +size 92823 diff --git a/product_docs/docs/eprs/6.2/images/media/image107.jpg b/product_docs/docs/eprs/6.2/images/media/image107.jpg new file mode 100644 index 00000000000..84f017878d9 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image107.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2c6e8e1b255b2fb4eae3e1d8ec96501e9f9429c175e2bcff788863848c93f75e +size 83284 diff --git a/product_docs/docs/eprs/6.2/images/media/image108.jpg b/product_docs/docs/eprs/6.2/images/media/image108.jpg new file mode 100644 index 00000000000..0e7dfb4ab90 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image108.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6a10000263f58db987bbebc7473fef586df1e25306a1ac6961387fecbeb53945 +size 116762 diff --git a/product_docs/docs/eprs/6.2/images/media/image109.jpg b/product_docs/docs/eprs/6.2/images/media/image109.jpg new file mode 100644 index 00000000000..1f7e1a727b6 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image109.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:67afe40f7ab376549f28d661cf1d9b2340deba56a39a59684c997860a8a7882b +size 125413 diff --git a/product_docs/docs/eprs/6.2/images/media/image11.png b/product_docs/docs/eprs/6.2/images/media/image11.png new file mode 100644 index 00000000000..563e06e8b66 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image11.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a3620a5cdec808b80eafb4d40951c0be0fc922cba5da43b4a84c6569c918ea57 +size 518127 diff --git a/product_docs/docs/eprs/6.2/images/media/image110.jpg b/product_docs/docs/eprs/6.2/images/media/image110.jpg new file mode 100644 index 00000000000..5c305435708 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image110.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a5db8778aac8c1715c52e1370ae832617815200cbdd99344f51155ef889d39fa +size 180168 diff --git a/product_docs/docs/eprs/6.2/images/media/image111.jpg b/product_docs/docs/eprs/6.2/images/media/image111.jpg new file mode 100644 index 00000000000..e8220b796e1 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image111.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8fcc0bfe2df6d95ca69cea6fe9da06508a8655bee905d81fb016698e1ea6b350 +size 112825 diff --git a/product_docs/docs/eprs/6.2/images/media/image112.jpg b/product_docs/docs/eprs/6.2/images/media/image112.jpg new file mode 100644 index 00000000000..87b73e9454c --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image112.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7213f777070ece7aec63ee85cc21bbf75a776bb24ff3cb3508dee36367aab085 +size 157493 diff --git a/product_docs/docs/eprs/6.2/images/media/image113.jpg b/product_docs/docs/eprs/6.2/images/media/image113.jpg new file mode 100644 index 00000000000..246d4f220a1 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image113.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b39801ea097e74b1d053339485de9f69b342c9e7dfea8535f818dd41a81faa0a +size 125504 diff --git a/product_docs/docs/eprs/6.2/images/media/image114.jpg b/product_docs/docs/eprs/6.2/images/media/image114.jpg new file mode 100644 index 00000000000..b0a13f90c55 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image114.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b87f92ab8b50dde601a01ee15c825a9447d1b5953ac0071d24d0a00558385446 +size 188937 diff --git a/product_docs/docs/eprs/6.2/images/media/image115.jpg b/product_docs/docs/eprs/6.2/images/media/image115.jpg new file mode 100644 index 00000000000..10241c9e759 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image115.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5ff2206d94e462e5f45e23f9c2f00ea6e255ca77bfe47450f662de57bb9bbff1 +size 185522 diff --git a/product_docs/docs/eprs/6.2/images/media/image116.jpg b/product_docs/docs/eprs/6.2/images/media/image116.jpg new file mode 100644 index 00000000000..622f717783d --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image116.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:885f01551f5e72faba4868a41f6795ed4ee698809268c1d5db3b8613817db928 +size 168649 diff --git a/product_docs/docs/eprs/6.2/images/media/image117.jpg b/product_docs/docs/eprs/6.2/images/media/image117.jpg new file mode 100644 index 00000000000..fe175d847b6 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image117.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b138fc35bf0e4e63c2e072eadcc33e94bf01b9761037ce41c4ac0083b0dfa8c +size 88687 diff --git a/product_docs/docs/eprs/6.2/images/media/image118.jpg b/product_docs/docs/eprs/6.2/images/media/image118.jpg new file mode 100644 index 00000000000..cd6837a258c --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image118.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa245f5ac95223464e38c9abd366bc20c94586c7c27b0c3a636a5b2c25daf506 +size 169806 diff --git a/product_docs/docs/eprs/6.2/images/media/image119.jpg b/product_docs/docs/eprs/6.2/images/media/image119.jpg new file mode 100644 index 00000000000..c59fae8324a --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image119.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b533f21e9dc7c0dd2baa93f44ad107147a7d6e988a324a7c9d0898115844aca +size 192850 diff --git a/product_docs/docs/eprs/6.2/images/media/image12.jpg b/product_docs/docs/eprs/6.2/images/media/image12.jpg new file mode 100644 index 00000000000..024d72c69c9 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image12.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7ef483371e2977276ff8065f6f82a57e8056c740a7c8147d678c07c807a247e8 +size 53953 diff --git a/product_docs/docs/eprs/6.2/images/media/image120.jpg b/product_docs/docs/eprs/6.2/images/media/image120.jpg new file mode 100644 index 00000000000..ef4ab66e05f --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image120.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1503d0d49bfede06d74fd8fb635d8732c44fcc3691953d7d721e5e7d53f839a1 +size 179067 diff --git a/product_docs/docs/eprs/6.2/images/media/image121.jpg b/product_docs/docs/eprs/6.2/images/media/image121.jpg new file mode 100644 index 00000000000..c5a359ff20b --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image121.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8973eeca50cb3e494ddaede3e6dbe492ac28a9131aee784394a44b2710c8b75b +size 154732 diff --git a/product_docs/docs/eprs/6.2/images/media/image122.jpg b/product_docs/docs/eprs/6.2/images/media/image122.jpg new file mode 100644 index 00000000000..adc2c783373 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image122.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b9a6a3461b43ebeab180176c9443298bcc913ec374905767f3157769685faa65 +size 160084 diff --git a/product_docs/docs/eprs/6.2/images/media/image123.jpg b/product_docs/docs/eprs/6.2/images/media/image123.jpg new file mode 100644 index 00000000000..e053ec5ae50 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image123.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8883f3e4d4747edfd4d555fc1aced19a558129f785847f019270e84137941c82 +size 124491 diff --git a/product_docs/docs/eprs/6.2/images/media/image124.jpg b/product_docs/docs/eprs/6.2/images/media/image124.jpg new file mode 100644 index 00000000000..c145c79b6b2 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image124.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:54b683356c544605938094450ad6d9a27ae6c34f86d21638b890ab68ab49a2ff +size 163004 diff --git a/product_docs/docs/eprs/6.2/images/media/image125.jpg b/product_docs/docs/eprs/6.2/images/media/image125.jpg new file mode 100644 index 00000000000..d93c60c0340 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image125.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a21f600b2651436b15832d040ab5c24ec29f8f6f56676cf1c37f2e84b36c43d +size 159764 diff --git a/product_docs/docs/eprs/6.2/images/media/image126.jpg b/product_docs/docs/eprs/6.2/images/media/image126.jpg new file mode 100644 index 00000000000..9c18dd3505c --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image126.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d5f15b713b890f4b0c62165dbe9c052181bfaeb9970cfe36ac48cc2452ee7921 +size 164449 diff --git a/product_docs/docs/eprs/6.2/images/media/image127.jpg b/product_docs/docs/eprs/6.2/images/media/image127.jpg new file mode 100644 index 00000000000..cc4cce9213e --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image127.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ff2cbc7e20fd9c77768da183c9693cdf93d03672a335e46cab4e5f04a2d07649 +size 175316 diff --git a/product_docs/docs/eprs/6.2/images/media/image128.jpg b/product_docs/docs/eprs/6.2/images/media/image128.jpg new file mode 100644 index 00000000000..07842461773 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image128.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa1b02cb77d8c5742c09104ce56a2307c350753be165c26b10ca8798a05dc10b +size 182750 diff --git a/product_docs/docs/eprs/6.2/images/media/image129.jpg b/product_docs/docs/eprs/6.2/images/media/image129.jpg new file mode 100644 index 00000000000..1cc2c759ab6 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image129.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:576b16a8b8671468c45600930426397aa142f67faff5b87c5b7d5b176065076f +size 232605 diff --git a/product_docs/docs/eprs/6.2/images/media/image13.jpg b/product_docs/docs/eprs/6.2/images/media/image13.jpg new file mode 100644 index 00000000000..c2fdd75a166 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image13.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2267bf339173ae99010d7ecaa3eab27088261dc3b535a61cb36517393027bd78 +size 65699 diff --git a/product_docs/docs/eprs/6.2/images/media/image130.jpg b/product_docs/docs/eprs/6.2/images/media/image130.jpg new file mode 100644 index 00000000000..52b735fedde --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image130.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4599bd0d12ebfdabc852c56a9d501e6d4b7337630ac631cf02431e010c6ecae9 +size 230242 diff --git a/product_docs/docs/eprs/6.2/images/media/image131.jpg b/product_docs/docs/eprs/6.2/images/media/image131.jpg new file mode 100644 index 00000000000..34b7994bc14 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image131.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61cabde8ce726f41c856809afd1ba007ef0713a8b21e1668740a20e829d6b7d7 +size 137697 diff --git a/product_docs/docs/eprs/6.2/images/media/image132.jpg b/product_docs/docs/eprs/6.2/images/media/image132.jpg new file mode 100644 index 00000000000..62d842791bd --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image132.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e73748af52cb5490ff304b6c907020c65cd53223acc984ea17aa30f94701f070 +size 152141 diff --git a/product_docs/docs/eprs/6.2/images/media/image133.jpg b/product_docs/docs/eprs/6.2/images/media/image133.jpg new file mode 100644 index 00000000000..d5137589973 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image133.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7066fcf842ecb131641f32f1f731ff7463745eb3971fa79a03f0221de3f8d662 +size 85716 diff --git a/product_docs/docs/eprs/6.2/images/media/image134.jpg b/product_docs/docs/eprs/6.2/images/media/image134.jpg new file mode 100644 index 00000000000..24d52920d7c --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image134.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:19ac08a83e6d0b44c3cbf62fa7f7eee1f5c81ae85654136e561ba1803356e500 +size 79042 diff --git a/product_docs/docs/eprs/6.2/images/media/image135.jpg b/product_docs/docs/eprs/6.2/images/media/image135.jpg new file mode 100644 index 00000000000..ee700af591a --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image135.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4d97cd5f683bf0c2a10617a3747e1ff64bf157871d0b063e0ff33cc77a2bcc19 +size 153917 diff --git a/product_docs/docs/eprs/6.2/images/media/image136.jpg b/product_docs/docs/eprs/6.2/images/media/image136.jpg new file mode 100644 index 00000000000..b828468eb2a --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image136.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af8cbf0a01f376156ccc9a387297e98b469647b030cd06ae11f4456b5c055a46 +size 71464 diff --git a/product_docs/docs/eprs/6.2/images/media/image137.jpg b/product_docs/docs/eprs/6.2/images/media/image137.jpg new file mode 100644 index 00000000000..d1dccd34a98 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image137.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ed451b7bcdf86a4d1e9956be2602787ae024644139adac290d615f9da56f3f82 +size 66089 diff --git a/product_docs/docs/eprs/6.2/images/media/image138.jpg b/product_docs/docs/eprs/6.2/images/media/image138.jpg new file mode 100644 index 00000000000..06dfb6c7c08 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image138.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:05fc515565fbdb7c4c17a3dc9b7755bbf8c56e0863c976936b95d5c58fce5226 +size 245008 diff --git a/product_docs/docs/eprs/6.2/images/media/image139.jpg b/product_docs/docs/eprs/6.2/images/media/image139.jpg new file mode 100644 index 00000000000..e36d837dbbf --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image139.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bb9749cbeeeda67d1d80031311bfd58e14910f1a48aa27ed6aab7090a9a7a010 +size 195209 diff --git a/product_docs/docs/eprs/6.2/images/media/image14.jpg b/product_docs/docs/eprs/6.2/images/media/image14.jpg new file mode 100644 index 00000000000..e2733ad126d --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image14.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6c33beb74493650bc7a18fa74492ae171e581c9026097208905cd5f3ab490e74 +size 149889 diff --git a/product_docs/docs/eprs/6.2/images/media/image140.jpg b/product_docs/docs/eprs/6.2/images/media/image140.jpg new file mode 100644 index 00000000000..c781d6f0f4e --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image140.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b53186251234e8bc93e2f603f384cc7b3fe5ef29f6839283a2e4048478b099a8 +size 123284 diff --git a/product_docs/docs/eprs/6.2/images/media/image141.jpg b/product_docs/docs/eprs/6.2/images/media/image141.jpg new file mode 100644 index 00000000000..2c9b8c2a315 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image141.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d2961a26a28321f79e83cbf481369667e9569a3ae0a730657815194dea883a01 +size 176575 diff --git a/product_docs/docs/eprs/6.2/images/media/image142.jpg b/product_docs/docs/eprs/6.2/images/media/image142.jpg new file mode 100644 index 00000000000..e12fb4f8076 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image142.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a34021ad5aa8bdae488f85d01d051a9920002d5df60357db08a962c60472fb37 +size 197615 diff --git a/product_docs/docs/eprs/6.2/images/media/image143.jpg b/product_docs/docs/eprs/6.2/images/media/image143.jpg new file mode 100644 index 00000000000..cc6a936dd14 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image143.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:52eafed1e76eb8940fe1cf202d155305d8247d68df2da1d627cfe1baf791a490 +size 315737 diff --git a/product_docs/docs/eprs/6.2/images/media/image144.jpg b/product_docs/docs/eprs/6.2/images/media/image144.jpg new file mode 100644 index 00000000000..ce95c1eea87 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image144.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d9b3f5c2eee656161c68305278f6c292391db121dcc47381885d855f3dc521e2 +size 142608 diff --git a/product_docs/docs/eprs/6.2/images/media/image145.jpg b/product_docs/docs/eprs/6.2/images/media/image145.jpg new file mode 100644 index 00000000000..4946cb7bb10 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image145.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:236831fbce1ecf3c70223d1f86e869f54c6e9a44aa7e747012218d4d79e85b40 +size 136498 diff --git a/product_docs/docs/eprs/6.2/images/media/image146.jpg b/product_docs/docs/eprs/6.2/images/media/image146.jpg new file mode 100644 index 00000000000..50c65a770ab --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image146.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b873c3ba584d346a163f2a672a073edf13102120658f5893a1b0d2ffbaad5826 +size 163649 diff --git a/product_docs/docs/eprs/6.2/images/media/image147.jpg b/product_docs/docs/eprs/6.2/images/media/image147.jpg new file mode 100644 index 00000000000..f7cbd2ba66b --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image147.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac0928a10f52e6d2b8722e36f98bf2949406eccefcc88d84d67de393641b5d93 +size 161871 diff --git a/product_docs/docs/eprs/6.2/images/media/image148.jpg b/product_docs/docs/eprs/6.2/images/media/image148.jpg new file mode 100644 index 00000000000..be725d180f7 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image148.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:859b98780a3e9b0bd5826f54feeae0e9fdd80a487f8db926218d06463c44ef4d +size 173988 diff --git a/product_docs/docs/eprs/6.2/images/media/image149.jpg b/product_docs/docs/eprs/6.2/images/media/image149.jpg new file mode 100644 index 00000000000..07e0025eac8 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image149.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cb41a119b32c92b0c644de730ff31ff72cd0e3cb397d2a4bcda739b2fbd4e064 +size 179784 diff --git a/product_docs/docs/eprs/6.2/images/media/image15.jpg b/product_docs/docs/eprs/6.2/images/media/image15.jpg new file mode 100644 index 00000000000..512de7050dc --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image15.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:485071cb4a2410b0c1a2cc8d5098c5ff759476f579806c0de5d62836a059a127 +size 64126 diff --git a/product_docs/docs/eprs/6.2/images/media/image150.jpg b/product_docs/docs/eprs/6.2/images/media/image150.jpg new file mode 100644 index 00000000000..28ec36e6166 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image150.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:796da749ffbb25e536349f5c34bfa84283da549d8889d26328642b59d4249a22 +size 140497 diff --git a/product_docs/docs/eprs/6.2/images/media/image151.jpg b/product_docs/docs/eprs/6.2/images/media/image151.jpg new file mode 100644 index 00000000000..2e1c6da4668 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image151.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cef7c5599d2247481032632f345b2d04a432133172a2c7a40a3b2e2fe21c4af4 +size 189351 diff --git a/product_docs/docs/eprs/6.2/images/media/image152.jpg b/product_docs/docs/eprs/6.2/images/media/image152.jpg new file mode 100644 index 00000000000..59f249eeb8e --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image152.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:01fd8867e765b4a2313d3b7a7a1aad657957af80a43ed0f25abcdb4683806cf9 +size 180505 diff --git a/product_docs/docs/eprs/6.2/images/media/image153.jpg b/product_docs/docs/eprs/6.2/images/media/image153.jpg new file mode 100644 index 00000000000..fe561112e30 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image153.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:813d6a52e80048f1940fa12cc282a06dba727610247da7b121ca3e3291f68877 +size 175846 diff --git a/product_docs/docs/eprs/6.2/images/media/image154.jpg b/product_docs/docs/eprs/6.2/images/media/image154.jpg new file mode 100644 index 00000000000..986fce14bea --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image154.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cf1e9f9e513dba5f4e310f48535d9c53fa716f3464dd69f204b2ed14690bb3fc +size 188800 diff --git a/product_docs/docs/eprs/6.2/images/media/image155.jpg b/product_docs/docs/eprs/6.2/images/media/image155.jpg new file mode 100644 index 00000000000..1cefd39113b --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image155.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:991217182fa81cfa2ae86c7e53b9aa169547bfc0beb049a87d441af394a82e0b +size 211638 diff --git a/product_docs/docs/eprs/6.2/images/media/image156.jpg b/product_docs/docs/eprs/6.2/images/media/image156.jpg new file mode 100644 index 00000000000..61e352be887 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image156.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:70be0640347eba4ea5559966f1d50274235bc36a821d9efc27323d44195d9fbd +size 209523 diff --git a/product_docs/docs/eprs/6.2/images/media/image157.jpg b/product_docs/docs/eprs/6.2/images/media/image157.jpg new file mode 100644 index 00000000000..5c11832ed4d --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image157.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3eeb0c1154750c8f52abb74db0d59550b5d176b49ffea1601bd85d672d52e087 +size 210625 diff --git a/product_docs/docs/eprs/6.2/images/media/image158.jpg b/product_docs/docs/eprs/6.2/images/media/image158.jpg new file mode 100644 index 00000000000..74f78b6453f --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image158.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e3e82dcf2c43c789161e88b2eb140a88e05ebb232b972b7cc397e3178a789741 +size 140988 diff --git a/product_docs/docs/eprs/6.2/images/media/image159.jpg b/product_docs/docs/eprs/6.2/images/media/image159.jpg new file mode 100644 index 00000000000..01f903739ee --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image159.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:489058ca5019f983de11ae5d598dec6d5b67a8700427a6cc4530a34912eae0b4 +size 245619 diff --git a/product_docs/docs/eprs/6.2/images/media/image16.jpg b/product_docs/docs/eprs/6.2/images/media/image16.jpg new file mode 100644 index 00000000000..db94e174e80 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image16.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:077a7ba0b5f7df21e9b65c0585f9b17eb97af6b9f0c570c6cd3d5d4c67639154 +size 125215 diff --git a/product_docs/docs/eprs/6.2/images/media/image160.jpg b/product_docs/docs/eprs/6.2/images/media/image160.jpg new file mode 100644 index 00000000000..0c7b6ee71b4 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image160.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:42dac8f487b72b36f0237edcfca9ef80a4e12f2b71fa7de517b9ef272638d5f3 +size 96874 diff --git a/product_docs/docs/eprs/6.2/images/media/image161.jpg b/product_docs/docs/eprs/6.2/images/media/image161.jpg new file mode 100644 index 00000000000..d4776e22a1a --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image161.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:886b14a9f28adcb90e9c4ad6e3f1d0dc247ad07e50ae966095888af24a4c6a52 +size 167386 diff --git a/product_docs/docs/eprs/6.2/images/media/image162.jpg b/product_docs/docs/eprs/6.2/images/media/image162.jpg new file mode 100644 index 00000000000..64d6eb6561b --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image162.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:70f9fb4362e238b0cdd6a6681bf67fb7ccb39c9c8b2e5742cdce1e33a67cd36d +size 159175 diff --git a/product_docs/docs/eprs/6.2/images/media/image163.jpg b/product_docs/docs/eprs/6.2/images/media/image163.jpg new file mode 100644 index 00000000000..2ba2f8d6802 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image163.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fed76e3b50934382ded192a8675511743105ea14500aa81d65a202c90ab52f4b +size 112821 diff --git a/product_docs/docs/eprs/6.2/images/media/image164.jpg b/product_docs/docs/eprs/6.2/images/media/image164.jpg new file mode 100644 index 00000000000..1a4b592efcf --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image164.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e324ebc8c69d9085b8c6b2edccc43313e6466d87db9ef9d5ea2730244b353535 +size 196213 diff --git a/product_docs/docs/eprs/6.2/images/media/image165.jpg b/product_docs/docs/eprs/6.2/images/media/image165.jpg new file mode 100644 index 00000000000..65e8de97145 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image165.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4df0cb6abe90d3122c5ad47fb7c118280a244e2c912c5567eefbf886f6716639 +size 171019 diff --git a/product_docs/docs/eprs/6.2/images/media/image166.jpg b/product_docs/docs/eprs/6.2/images/media/image166.jpg new file mode 100644 index 00000000000..58778a8060a --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image166.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:24db924b817eee2cd8b5cf53adbe2fc91283bb5006a064b9d9831f30e215994c +size 303952 diff --git a/product_docs/docs/eprs/6.2/images/media/image167.jpg b/product_docs/docs/eprs/6.2/images/media/image167.jpg new file mode 100644 index 00000000000..fe07436503b --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image167.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0d52cfd16d371bde050e3d299457b708538d4eebfeeb3ffff6d98f34e777477d +size 199936 diff --git a/product_docs/docs/eprs/6.2/images/media/image168.jpg b/product_docs/docs/eprs/6.2/images/media/image168.jpg new file mode 100644 index 00000000000..48ccb6fda5e --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image168.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e248b74b17880f53c41725b6fe3021b219e0ecd2303098e1b2b8c3cef947d21 +size 137588 diff --git a/product_docs/docs/eprs/6.2/images/media/image169.jpg b/product_docs/docs/eprs/6.2/images/media/image169.jpg new file mode 100644 index 00000000000..8e34a357657 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image169.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:630d05bb543bf2d14f58f537e96c11f3cb210870164d26f6dc818940e02cafa0 +size 133949 diff --git a/product_docs/docs/eprs/6.2/images/media/image17.jpg b/product_docs/docs/eprs/6.2/images/media/image17.jpg new file mode 100644 index 00000000000..edeac0355d8 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image17.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ed4d5182ce40c47ac28f53a162bdf518ecf32e5c2de784008cccd5ae06296110 +size 65074 diff --git a/product_docs/docs/eprs/6.2/images/media/image170.jpg b/product_docs/docs/eprs/6.2/images/media/image170.jpg new file mode 100644 index 00000000000..79540411c9d --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image170.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:202f97c49a44956d309af3f31d8508def45b8291f2fb17cea05381330018173f +size 194580 diff --git a/product_docs/docs/eprs/6.2/images/media/image171.jpg b/product_docs/docs/eprs/6.2/images/media/image171.jpg new file mode 100644 index 00000000000..c1ca109b153 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image171.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:51a78a95c119fee7e86712539dec42c10a3d159cd8cf248f22c27384a5b84aed +size 132511 diff --git a/product_docs/docs/eprs/6.2/images/media/image172.jpg b/product_docs/docs/eprs/6.2/images/media/image172.jpg new file mode 100644 index 00000000000..fab56c673b6 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image172.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6d00d6f1c3b25613b9d79484e4d52ed7a8ed142b329e6997ffab2795fa20b7d8 +size 152006 diff --git a/product_docs/docs/eprs/6.2/images/media/image173.jpg b/product_docs/docs/eprs/6.2/images/media/image173.jpg new file mode 100644 index 00000000000..ed1fccfeb30 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image173.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:335f0229e3589069858e85cdaeff5f443365e39f18ba04dcbb2d1e2b7b123ba7 +size 135558 diff --git a/product_docs/docs/eprs/6.2/images/media/image174.jpg b/product_docs/docs/eprs/6.2/images/media/image174.jpg new file mode 100644 index 00000000000..3af8ed34ee8 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image174.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8daaf1c13cbe56027df843ab89d1f3e29de20cb4ba605b63f97025e2086fd0c7 +size 169293 diff --git a/product_docs/docs/eprs/6.2/images/media/image175.jpg b/product_docs/docs/eprs/6.2/images/media/image175.jpg new file mode 100644 index 00000000000..39d66079f56 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image175.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a64bbceacba0683020c69b459c7604760b6291f35367b9710c41c6b6e420af67 +size 103369 diff --git a/product_docs/docs/eprs/6.2/images/media/image176.jpg b/product_docs/docs/eprs/6.2/images/media/image176.jpg new file mode 100644 index 00000000000..553cf6e5ac8 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image176.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:902f4001f1a2e50df0c2b7e867423191bd406c4ff68a023f5d58ed776a2a8c38 +size 88753 diff --git a/product_docs/docs/eprs/6.2/images/media/image177.jpg b/product_docs/docs/eprs/6.2/images/media/image177.jpg new file mode 100644 index 00000000000..226b320eab1 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image177.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7f78487667dc231b8e2bd96e906dfcc2bd0010b5ce5af42e65bb3165c1874172 +size 136138 diff --git a/product_docs/docs/eprs/6.2/images/media/image178.jpg b/product_docs/docs/eprs/6.2/images/media/image178.jpg new file mode 100644 index 00000000000..ff38032043d --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image178.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dc9128aa082872dc37f3252a1651ff9be2c5afedd268dcc7be818124d4530df6 +size 175017 diff --git a/product_docs/docs/eprs/6.2/images/media/image179.jpg b/product_docs/docs/eprs/6.2/images/media/image179.jpg new file mode 100644 index 00000000000..1c994cda2dc --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image179.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c2267864534feb1031a2614b21ff2dae2ac269a97b8dc50a875e094c260e221d +size 153608 diff --git a/product_docs/docs/eprs/6.2/images/media/image18.jpg b/product_docs/docs/eprs/6.2/images/media/image18.jpg new file mode 100644 index 00000000000..3a87d088264 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image18.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9cea72519e860f21e00102ef631af0377d68d41363d0cf08c94d7a2c79aba09b +size 142861 diff --git a/product_docs/docs/eprs/6.2/images/media/image180.jpg b/product_docs/docs/eprs/6.2/images/media/image180.jpg new file mode 100644 index 00000000000..42ebd6f40f4 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image180.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3c0b2c8d8c4dc53d7178e8ad5f1b02bfc610a3e3e23386216713269dda3d2d87 +size 198120 diff --git a/product_docs/docs/eprs/6.2/images/media/image181.jpg b/product_docs/docs/eprs/6.2/images/media/image181.jpg new file mode 100644 index 00000000000..209ba9f4d24 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image181.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:05e2d89eb5d9afcbf002caabf38726d65545cb116e2caf22bb3c3878a961be24 +size 189496 diff --git a/product_docs/docs/eprs/6.2/images/media/image182.jpg b/product_docs/docs/eprs/6.2/images/media/image182.jpg new file mode 100644 index 00000000000..8a2942acc85 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image182.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b4b527ca7aa6489a034b28f27a87d48fe161225588829c22dfcd3764cf7fb3c6 +size 168139 diff --git a/product_docs/docs/eprs/6.2/images/media/image183.jpg b/product_docs/docs/eprs/6.2/images/media/image183.jpg new file mode 100644 index 00000000000..21d0741024e --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image183.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ebfc4c7b67714b73538d7bc4a1a8d5580d23c2210d0b42dc4551b6fb005c23ef +size 286906 diff --git a/product_docs/docs/eprs/6.2/images/media/image184.jpg b/product_docs/docs/eprs/6.2/images/media/image184.jpg new file mode 100644 index 00000000000..10c1281e1fa --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image184.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1468d29b03f22acea6cd74d2503b8054a5af8ac0bce5c50015c296c940830f38 +size 202178 diff --git a/product_docs/docs/eprs/6.2/images/media/image185.jpg b/product_docs/docs/eprs/6.2/images/media/image185.jpg new file mode 100644 index 00000000000..3b8ff32477f --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image185.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b92d4df881dba01865bb34c973a54f1af8aa67213670650bea30744c380a63d +size 235011 diff --git a/product_docs/docs/eprs/6.2/images/media/image186.jpg b/product_docs/docs/eprs/6.2/images/media/image186.jpg new file mode 100644 index 00000000000..bb05a3733ef --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image186.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f16fa87a7b34bec2b4c232e65d4ed32a360f4973718759fe7e3e764b46be2822 +size 134441 diff --git a/product_docs/docs/eprs/6.2/images/media/image187.jpg b/product_docs/docs/eprs/6.2/images/media/image187.jpg new file mode 100644 index 00000000000..ce263eac90e --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image187.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a7193c22bc3537197ba4edcb159c5c9af5d494f17ba600329a2bbc8809d112f6 +size 133725 diff --git a/product_docs/docs/eprs/6.2/images/media/image188.jpg b/product_docs/docs/eprs/6.2/images/media/image188.jpg new file mode 100644 index 00000000000..35578082841 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image188.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f17efd987f468379dc5e930aa961109ef05e2e47ea7f9c307bda4a9d62d22996 +size 106950 diff --git a/product_docs/docs/eprs/6.2/images/media/image189.jpg b/product_docs/docs/eprs/6.2/images/media/image189.jpg new file mode 100644 index 00000000000..94f95d5f8db --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image189.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fc5db64903eb5206a3750d2354f0658920cdfa384f7a941b61683bb7f1f14244 +size 132937 diff --git a/product_docs/docs/eprs/6.2/images/media/image19.jpg b/product_docs/docs/eprs/6.2/images/media/image19.jpg new file mode 100644 index 00000000000..dcdedfee0fa --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image19.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6cd6e4e2ba2152710fef5597185669e45e1842f9a7035f7607dbb0d7c82f7bc7 +size 65250 diff --git a/product_docs/docs/eprs/6.2/images/media/image190.jpg b/product_docs/docs/eprs/6.2/images/media/image190.jpg new file mode 100644 index 00000000000..d81da6f806d --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image190.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ae7b57909771940961e76b26e1e3e34cdc6c70391eb2f6e27fa87678cedceca1 +size 134252 diff --git a/product_docs/docs/eprs/6.2/images/media/image191.jpg b/product_docs/docs/eprs/6.2/images/media/image191.jpg new file mode 100644 index 00000000000..796e415a27c --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image191.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6655e478e0615a4b8c05e59d3cd9986f344464eeef868b75a0ecc317d9b39b10 +size 90906 diff --git a/product_docs/docs/eprs/6.2/images/media/image192.jpg b/product_docs/docs/eprs/6.2/images/media/image192.jpg new file mode 100644 index 00000000000..528a0c6105c --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image192.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af14607fab255c7c0838034ec7afa76abe92452b49e7f8d5b92d886318003235 +size 259097 diff --git a/product_docs/docs/eprs/6.2/images/media/image193.jpg b/product_docs/docs/eprs/6.2/images/media/image193.jpg new file mode 100644 index 00000000000..eb9b7ad61dc --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image193.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7b7fda09735cfe4b4aa2d8fe711a3d9454a89d7c57a63397f475477506c9fc8e +size 144661 diff --git a/product_docs/docs/eprs/6.2/images/media/image194.jpg b/product_docs/docs/eprs/6.2/images/media/image194.jpg new file mode 100644 index 00000000000..eaada05a840 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image194.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0a56c9cc2b02f2f1190e881253c159578c3f3030e3138ba96dd00708e8033a4d +size 157260 diff --git a/product_docs/docs/eprs/6.2/images/media/image195.jpg b/product_docs/docs/eprs/6.2/images/media/image195.jpg new file mode 100644 index 00000000000..57dc999cff3 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image195.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3d88c66d841f1ef0f685412343ccce450f6b47090f683b8aa7182562732c5263 +size 158568 diff --git a/product_docs/docs/eprs/6.2/images/media/image196.jpg b/product_docs/docs/eprs/6.2/images/media/image196.jpg new file mode 100644 index 00000000000..5442585cfdf --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image196.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e483f478c37ac20018c993c93de4e2a80342a09f5c2495a9eb31eabe1b6821bb +size 203105 diff --git a/product_docs/docs/eprs/6.2/images/media/image197.jpg b/product_docs/docs/eprs/6.2/images/media/image197.jpg new file mode 100644 index 00000000000..9497b438d26 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image197.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4a17ba9f296374d4e7a6fe8f7c682129d8ae7f3c6a65c93c705992da7908f531 +size 218237 diff --git a/product_docs/docs/eprs/6.2/images/media/image198.jpg b/product_docs/docs/eprs/6.2/images/media/image198.jpg new file mode 100644 index 00000000000..9f36eb07730 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image198.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ca5ca9222bd653260cca8530a661fb00459ff89130db305022f0bbaa755ef542 +size 181919 diff --git a/product_docs/docs/eprs/6.2/images/media/image199.jpg b/product_docs/docs/eprs/6.2/images/media/image199.jpg new file mode 100644 index 00000000000..8052772dd7d --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image199.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a687443a1e5d4dd300bf1cbb378abaf84f6b655f1a84f2ad901435fddf82804 +size 167995 diff --git a/product_docs/docs/eprs/6.2/images/media/image2.png b/product_docs/docs/eprs/6.2/images/media/image2.png new file mode 100644 index 00000000000..edc64a0ff46 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:50824c247a9be22f3c0e10a02d4ed308dce6ce9a86adfd87bb439a00d8c121c1 +size 92905 diff --git a/product_docs/docs/eprs/6.2/images/media/image20.jpg b/product_docs/docs/eprs/6.2/images/media/image20.jpg new file mode 100644 index 00000000000..94c7d8ef599 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image20.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c4343b9682887a61c1f99aedee8d0492f0a403dc7170f6e3f17aad64f152f918 +size 126571 diff --git a/product_docs/docs/eprs/6.2/images/media/image200.jpg b/product_docs/docs/eprs/6.2/images/media/image200.jpg new file mode 100644 index 00000000000..b652ebff75b --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image200.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0a7800b9534558581792d8b632b360815eb2692a27b5bee334bec3d133f83455 +size 169370 diff --git a/product_docs/docs/eprs/6.2/images/media/image201.jpg b/product_docs/docs/eprs/6.2/images/media/image201.jpg new file mode 100644 index 00000000000..6efd1784124 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image201.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc1c58dbcaf5540378042271e6716cd16d5d4149947d29e3dff87c311bde7250 +size 143677 diff --git a/product_docs/docs/eprs/6.2/images/media/image202.jpg b/product_docs/docs/eprs/6.2/images/media/image202.jpg new file mode 100644 index 00000000000..f4c2047459b --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image202.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:48a91f8a211d6ffb3fea9621422e0985dd4cc30591ae6fc130af71b3aad4cc10 +size 200033 diff --git a/product_docs/docs/eprs/6.2/images/media/image203.jpg b/product_docs/docs/eprs/6.2/images/media/image203.jpg new file mode 100644 index 00000000000..77e784b0655 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image203.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:401e96510b711df9de3ed0f6d5d9233957e03f4ddecb36941080dfc08cbb9ac8 +size 86815 diff --git a/product_docs/docs/eprs/6.2/images/media/image204.jpg b/product_docs/docs/eprs/6.2/images/media/image204.jpg new file mode 100644 index 00000000000..b5dc8a05ef1 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image204.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9976a5db3c0b1eb2ddd53fc13e7b8dba60d1b601e1e98ed619b3d0f2b4257a68 +size 120136 diff --git a/product_docs/docs/eprs/6.2/images/media/image205.jpg b/product_docs/docs/eprs/6.2/images/media/image205.jpg new file mode 100644 index 00000000000..9a0a8696e09 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image205.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ad5b548eb6738bbaa79db087423f729e0861ddcc01df354617b72b5a375afe88 +size 80740 diff --git a/product_docs/docs/eprs/6.2/images/media/image206.jpg b/product_docs/docs/eprs/6.2/images/media/image206.jpg new file mode 100644 index 00000000000..10179856d0c --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image206.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa03be8e77939c64ff2ca651091b96651c7793bfd6a62abe4e321d676207ffa5 +size 192455 diff --git a/product_docs/docs/eprs/6.2/images/media/image207.jpg b/product_docs/docs/eprs/6.2/images/media/image207.jpg new file mode 100644 index 00000000000..0ca8ea7ceb4 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image207.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f9776a70260ce6ce570e7cde39507a58fcb0793aead01130fd8ab1ef3d15ed4a +size 158281 diff --git a/product_docs/docs/eprs/6.2/images/media/image208.jpg b/product_docs/docs/eprs/6.2/images/media/image208.jpg new file mode 100644 index 00000000000..14456239a5f --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image208.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7f910a9f6d5accff7b966ff5aaf28b2ab55debf638cecc5a32f27a801bd1d4f1 +size 152469 diff --git a/product_docs/docs/eprs/6.2/images/media/image209.jpg b/product_docs/docs/eprs/6.2/images/media/image209.jpg new file mode 100644 index 00000000000..fea6008c238 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image209.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0bb64e5ff9f81fe94e66437be6bfb7b528f4f768196aa663565ca47b2877e7f4 +size 161578 diff --git a/product_docs/docs/eprs/6.2/images/media/image21.png b/product_docs/docs/eprs/6.2/images/media/image21.png new file mode 100644 index 00000000000..e8ce2c60c26 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image21.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:746059857ce6f21b1fb4b61ae053890dad165f931d513d600e07131a90d9c0cc +size 1134988 diff --git a/product_docs/docs/eprs/6.2/images/media/image210.jpg b/product_docs/docs/eprs/6.2/images/media/image210.jpg new file mode 100644 index 00000000000..82fb6354959 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image210.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8ab9170199d1e58ad1ecb3ee818c823ffe4521160d57d9d3ae5f6ac756f70b4f +size 207485 diff --git a/product_docs/docs/eprs/6.2/images/media/image211.jpg b/product_docs/docs/eprs/6.2/images/media/image211.jpg new file mode 100644 index 00000000000..8aec8613c74 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image211.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:28bdc63a0a0699cbe2e307b9a85ea7aae11d9f8020ca9e35ed4aeb9b63f922e2 +size 96790 diff --git a/product_docs/docs/eprs/6.2/images/media/image212.jpg b/product_docs/docs/eprs/6.2/images/media/image212.jpg new file mode 100644 index 00000000000..cc98414281f --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image212.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4eb80832bb8d548bb8f13c7f0da4f072c242f420c58763833f9c3d2b1fa4d734 +size 156144 diff --git a/product_docs/docs/eprs/6.2/images/media/image213.jpg b/product_docs/docs/eprs/6.2/images/media/image213.jpg new file mode 100644 index 00000000000..0fa15720f60 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image213.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:515faf23ee4a0bdd3c42fa0895979ae0b1b2dacfb289edfa703fa22a77b136dd +size 189613 diff --git a/product_docs/docs/eprs/6.2/images/media/image214.jpg b/product_docs/docs/eprs/6.2/images/media/image214.jpg new file mode 100644 index 00000000000..3829302ad6d --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image214.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ace6aabb6f6d49af12c6a3cd903da129955027c6f24351eba32da72ac86f00e5 +size 153166 diff --git a/product_docs/docs/eprs/6.2/images/media/image215.jpg b/product_docs/docs/eprs/6.2/images/media/image215.jpg new file mode 100644 index 00000000000..2bf3b3930a7 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image215.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:675dc0609319713750f009a992d6c3bf3a54511a829500f84d7f4cd6ffc6c819 +size 161245 diff --git a/product_docs/docs/eprs/6.2/images/media/image216.jpg b/product_docs/docs/eprs/6.2/images/media/image216.jpg new file mode 100644 index 00000000000..097816dcadf --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image216.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:962bcd333e12daf4697c64a2dcbf68e6e7b5a11d03331c1d284710a40e413dc2 +size 138812 diff --git a/product_docs/docs/eprs/6.2/images/media/image217.jpg b/product_docs/docs/eprs/6.2/images/media/image217.jpg new file mode 100644 index 00000000000..1e4147db86f --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image217.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5d1ac5a533fe7c3ace9658dfb3466352d2f72454ac5ae5fa38f6200f75b0535d +size 223845 diff --git a/product_docs/docs/eprs/6.2/images/media/image218.jpg b/product_docs/docs/eprs/6.2/images/media/image218.jpg new file mode 100644 index 00000000000..6288e0b5de3 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image218.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3723c10b0b582429f77c97a141d2f91d64810ed50f8e6144873d4ac12be62940 +size 295264 diff --git a/product_docs/docs/eprs/6.2/images/media/image219.jpg b/product_docs/docs/eprs/6.2/images/media/image219.jpg new file mode 100644 index 00000000000..7a8b0a5e8c4 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image219.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d1b6d9dbae4a79229272312fa4133d2cadf49bb78b4aa2753f476e5ebaaa9760 +size 210875 diff --git a/product_docs/docs/eprs/6.2/images/media/image22.jpg b/product_docs/docs/eprs/6.2/images/media/image22.jpg new file mode 100644 index 00000000000..a3d9adedf4b --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image22.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9ea037665883b9b3cdd21a4b8733010cb0aaf34bdcd838a8ab0189b374ab07b8 +size 188494 diff --git a/product_docs/docs/eprs/6.2/images/media/image220.jpg b/product_docs/docs/eprs/6.2/images/media/image220.jpg new file mode 100644 index 00000000000..6768799bcb5 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image220.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:13276f44be9e4fa7fbf95dc5c2e7e0696ff5a8d962849675a56261d473a50723 +size 205735 diff --git a/product_docs/docs/eprs/6.2/images/media/image221.jpg b/product_docs/docs/eprs/6.2/images/media/image221.jpg new file mode 100644 index 00000000000..2fe4c5c8f67 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image221.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e2d6613fd894039a6437cc321eec19728cad2ee3f62a684adb1bbd54c1f8799f +size 91299 diff --git a/product_docs/docs/eprs/6.2/images/media/image222.jpg b/product_docs/docs/eprs/6.2/images/media/image222.jpg new file mode 100644 index 00000000000..ac8bf2f01a8 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image222.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ebdb2da68fab1f8fd62498dbaeba3e74256b26f52f5e112c937a4bd43cf92c2e +size 190203 diff --git a/product_docs/docs/eprs/6.2/images/media/image223.jpg b/product_docs/docs/eprs/6.2/images/media/image223.jpg new file mode 100644 index 00000000000..6268ed07a85 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image223.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:724e0b963ea5593caa42f21eda8720a52c9f287af7ea878961c0ee3827d720bc +size 132972 diff --git a/product_docs/docs/eprs/6.2/images/media/image224.jpg b/product_docs/docs/eprs/6.2/images/media/image224.jpg new file mode 100644 index 00000000000..1ba24ac07e5 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image224.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:57039d7c36eb0bfb0f4fa179e7e952aa763a16c6f2c09a028b1fc2e0a28a6e60 +size 161454 diff --git a/product_docs/docs/eprs/6.2/images/media/image225.jpg b/product_docs/docs/eprs/6.2/images/media/image225.jpg new file mode 100644 index 00000000000..eb46e5839e8 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image225.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:88dccdd5ac3eaa5de1c4b42b217acfef69f71fb803361714da3b84f7fc83b711 +size 156450 diff --git a/product_docs/docs/eprs/6.2/images/media/image226.jpg b/product_docs/docs/eprs/6.2/images/media/image226.jpg new file mode 100644 index 00000000000..033892dd145 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image226.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:adb9b26f42b7771c46ab2de9613ebc9323aa1c80fcc610eef843be4c650b0aff +size 160078 diff --git a/product_docs/docs/eprs/6.2/images/media/image227.jpg b/product_docs/docs/eprs/6.2/images/media/image227.jpg new file mode 100644 index 00000000000..486dbb27c06 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image227.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:db9352371f26e5cfbba0e50b6473563bb6657f3144df9543aed0067afa093e16 +size 135056 diff --git a/product_docs/docs/eprs/6.2/images/media/image228.jpg b/product_docs/docs/eprs/6.2/images/media/image228.jpg new file mode 100644 index 00000000000..6d8fb664e41 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image228.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79b82ae2083cc2fa8ed2bab8814cf6160d997626721955c0c508912a55aaea85 +size 167192 diff --git a/product_docs/docs/eprs/6.2/images/media/image229.jpg b/product_docs/docs/eprs/6.2/images/media/image229.jpg new file mode 100644 index 00000000000..c061b95d929 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image229.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a562b2a2a97bf059ef01a7200961b84f2f4a7d562809d9fff040688e46a31ef6 +size 198241 diff --git a/product_docs/docs/eprs/6.2/images/media/image23.jpg b/product_docs/docs/eprs/6.2/images/media/image23.jpg new file mode 100644 index 00000000000..1f26cc04312 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image23.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4e25b2e7bb585fb77ce150cd7125e1b5a2236b1f0f468ccb93b9b427c07e8c38 +size 31178 diff --git a/product_docs/docs/eprs/6.2/images/media/image230.jpg b/product_docs/docs/eprs/6.2/images/media/image230.jpg new file mode 100644 index 00000000000..e0a0e3ce305 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image230.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d18fa5232caeaa48eb50d67deba8d411c83cbc78def3e15a112fa699b4ba3646 +size 182203 diff --git a/product_docs/docs/eprs/6.2/images/media/image231.jpg b/product_docs/docs/eprs/6.2/images/media/image231.jpg new file mode 100644 index 00000000000..72b07fc281b --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image231.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eeb6ebcb751f6c9482709d7bb5dd19ee40c89fca97be3e017c238df1a239a0d7 +size 245079 diff --git a/product_docs/docs/eprs/6.2/images/media/image232.jpg b/product_docs/docs/eprs/6.2/images/media/image232.jpg new file mode 100644 index 00000000000..bfff3e70e36 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image232.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:96ac1f78fb6747b9ca615b1fced36f7888ef38166ef67b316de04a879c0064c2 +size 150313 diff --git a/product_docs/docs/eprs/6.2/images/media/image233.jpg b/product_docs/docs/eprs/6.2/images/media/image233.jpg new file mode 100644 index 00000000000..fbfb52bcd12 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image233.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a922f1c86a9328be6a166d568d518a878cb4809a2670b838734ea86d913a4393 +size 190109 diff --git a/product_docs/docs/eprs/6.2/images/media/image234.jpg b/product_docs/docs/eprs/6.2/images/media/image234.jpg new file mode 100644 index 00000000000..3ca38b064a7 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image234.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2a1de24d8118360a1661cbf8aec3b6839faf2cd8490eedccc1dddc5454dfea4b +size 169379 diff --git a/product_docs/docs/eprs/6.2/images/media/image235.jpg b/product_docs/docs/eprs/6.2/images/media/image235.jpg new file mode 100644 index 00000000000..3c6106934fe --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image235.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:93a8b9fd3019a7fa722255ce4d750fe991cc4b29e6374e6036f05d8be4e899a0 +size 147113 diff --git a/product_docs/docs/eprs/6.2/images/media/image236.jpg b/product_docs/docs/eprs/6.2/images/media/image236.jpg new file mode 100644 index 00000000000..6b285775caa --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image236.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7d319a6781a3df0d3629ab7db26d78dca7030d53c24476aa73365ab423155ae9 +size 128829 diff --git a/product_docs/docs/eprs/6.2/images/media/image237.jpg b/product_docs/docs/eprs/6.2/images/media/image237.jpg new file mode 100644 index 00000000000..d35067b115c --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image237.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d223f39a3069b6f623425291688fe3ac3ed2b4e9cd9a24949cd50a3812c44e95 +size 54849 diff --git a/product_docs/docs/eprs/6.2/images/media/image238.jpg b/product_docs/docs/eprs/6.2/images/media/image238.jpg new file mode 100644 index 00000000000..4108b8234f3 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image238.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:861eba41be1da9624fa06d341c202daab14c0bf49c2f02612429e34e94223fa1 +size 67298 diff --git a/product_docs/docs/eprs/6.2/images/media/image239.jpg b/product_docs/docs/eprs/6.2/images/media/image239.jpg new file mode 100644 index 00000000000..b80d41808e2 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image239.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0c4c8eeff5dbb2e3306d5bbd61ee91a6d47e26b1629cb74d6a8271b31b430cfa +size 146569 diff --git a/product_docs/docs/eprs/6.2/images/media/image24.jpg b/product_docs/docs/eprs/6.2/images/media/image24.jpg new file mode 100644 index 00000000000..958d045c46d --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image24.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e8fc818f9831e43a44866df1b8778d89344ac097fa3979cce703ad33c5618318 +size 33263 diff --git a/product_docs/docs/eprs/6.2/images/media/image240.jpg b/product_docs/docs/eprs/6.2/images/media/image240.jpg new file mode 100644 index 00000000000..9e230ce6944 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image240.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a0e84ecf54d54c6407116b68099af57788a7ea8109d3b558703a72646bbd3759 +size 52638 diff --git a/product_docs/docs/eprs/6.2/images/media/image241.jpg b/product_docs/docs/eprs/6.2/images/media/image241.jpg new file mode 100644 index 00000000000..c656e930ba2 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image241.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:339ec7528ddd3490cd8f6fb2b0df29a6413c7ae1cf00017eb1abe27fb268634a +size 56665 diff --git a/product_docs/docs/eprs/6.2/images/media/image242.jpg b/product_docs/docs/eprs/6.2/images/media/image242.jpg new file mode 100644 index 00000000000..cb1f77433b4 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image242.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7758be7a3d8c185ac2bb0a3a959c03fe0855b338bc07b5816776f8509cf9321e +size 136330 diff --git a/product_docs/docs/eprs/6.2/images/media/image243.jpg b/product_docs/docs/eprs/6.2/images/media/image243.jpg new file mode 100644 index 00000000000..8645980fa74 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image243.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8a15f58da572a477a8d4aaf585780a1648a2e60b623a20f96b83808f1e443a21 +size 135894 diff --git a/product_docs/docs/eprs/6.2/images/media/image244.jpg b/product_docs/docs/eprs/6.2/images/media/image244.jpg new file mode 100644 index 00000000000..985651cf388 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image244.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:49058e7555ad50b7feb794b46c116ee18f3e6d5fae216f74373ff645a58620c1 +size 128696 diff --git a/product_docs/docs/eprs/6.2/images/media/image245.jpg b/product_docs/docs/eprs/6.2/images/media/image245.jpg new file mode 100644 index 00000000000..4a68b2a27c9 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image245.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ebd489e4492cde8abfd1bbdb87f844f8137a51e3e3286a892a1ce34c343c3422 +size 142511 diff --git a/product_docs/docs/eprs/6.2/images/media/image246.jpg b/product_docs/docs/eprs/6.2/images/media/image246.jpg new file mode 100644 index 00000000000..c89afc712c7 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image246.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:363376a5db7b5c8e4e9f6fdd1fb06265009e517255ce290a2b43f75e10652f03 +size 160841 diff --git a/product_docs/docs/eprs/6.2/images/media/image247.jpg b/product_docs/docs/eprs/6.2/images/media/image247.jpg new file mode 100644 index 00000000000..e438e6ffe7d --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image247.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:31662f07c1477343c041c53f3b55c486b4d475941b1a679b9dd89afbf47c41bc +size 206726 diff --git a/product_docs/docs/eprs/6.2/images/media/image248.jpg b/product_docs/docs/eprs/6.2/images/media/image248.jpg new file mode 100644 index 00000000000..a143dbd4c3d --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image248.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:367a6ea0e09c3ed2ce72e4248c128000804bcd9b32dad00ca82222fb607f457e +size 83868 diff --git a/product_docs/docs/eprs/6.2/images/media/image249.jpg b/product_docs/docs/eprs/6.2/images/media/image249.jpg new file mode 100644 index 00000000000..b805933e5d0 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image249.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0fa38c2d60c987645a54305911f4df5c96235b2347d6c6999fbf10635c9a8f4e +size 103092 diff --git a/product_docs/docs/eprs/6.2/images/media/image25.png b/product_docs/docs/eprs/6.2/images/media/image25.png new file mode 100644 index 00000000000..a70152560a9 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image25.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8249fea8d8807ed099f813efb5b01b2e14f490be08c1fad9a1eb3299ca2f10b2 +size 492658 diff --git a/product_docs/docs/eprs/6.2/images/media/image250.jpg b/product_docs/docs/eprs/6.2/images/media/image250.jpg new file mode 100644 index 00000000000..c997e370601 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image250.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ef4eb3c332ed60722931950b921c55152ca88dceabc50f423142c69472909cbf +size 148740 diff --git a/product_docs/docs/eprs/6.2/images/media/image251.jpg b/product_docs/docs/eprs/6.2/images/media/image251.jpg new file mode 100644 index 00000000000..6680ce7d712 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image251.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ad79dbb9957d2e1e5677cc8115334373d02cb0e0632c377a662eca6f0102d96c +size 143551 diff --git a/product_docs/docs/eprs/6.2/images/media/image252.jpeg b/product_docs/docs/eprs/6.2/images/media/image252.jpeg new file mode 100644 index 00000000000..315a406e141 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image252.jpeg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b17b24ea749a91fbd646af2bab0247d34c38a7b7eaa79c4fc6be895f177ef61 +size 16155 diff --git a/product_docs/docs/eprs/6.2/images/media/image253.jpg b/product_docs/docs/eprs/6.2/images/media/image253.jpg new file mode 100644 index 00000000000..592448523ec --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image253.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac911c31af2ca32e3351a43767b4218551a331e5568b1533e24bd819ce318176 +size 109047 diff --git a/product_docs/docs/eprs/6.2/images/media/image254.jpg b/product_docs/docs/eprs/6.2/images/media/image254.jpg new file mode 100644 index 00000000000..eba3be9b37d --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image254.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:58efcfc440c897e28493cf24a7cd08629722e6a48d7c7d17caba32664687080b +size 119192 diff --git a/product_docs/docs/eprs/6.2/images/media/image255.jpg b/product_docs/docs/eprs/6.2/images/media/image255.jpg new file mode 100644 index 00000000000..cfd1083d3a7 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image255.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6295310cb6a76b9fc27bd5ac23a0e1d566373d915aed8ea5f19cfcd985f2658d +size 84998 diff --git a/product_docs/docs/eprs/6.2/images/media/image256.jpg b/product_docs/docs/eprs/6.2/images/media/image256.jpg new file mode 100644 index 00000000000..7e3293c46ab --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image256.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d099c71177dcab4afdbbf141189e76835897223592c7256e44dbf22b7051970d +size 116649 diff --git a/product_docs/docs/eprs/6.2/images/media/image257.jpg b/product_docs/docs/eprs/6.2/images/media/image257.jpg new file mode 100644 index 00000000000..6919decc001 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image257.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8dc059c472bce42ae4a2f752218af3d12f9968b6476106ec067c9d010e9aed63 +size 112383 diff --git a/product_docs/docs/eprs/6.2/images/media/image258.jpg b/product_docs/docs/eprs/6.2/images/media/image258.jpg new file mode 100644 index 00000000000..adbcb7c607e --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image258.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:20a7b5a1be046950c883d0f2322c74afb18f845f876d4050aae282f5270165b4 +size 106005 diff --git a/product_docs/docs/eprs/6.2/images/media/image259.jpg b/product_docs/docs/eprs/6.2/images/media/image259.jpg new file mode 100644 index 00000000000..169cf8c7f09 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image259.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:991f89eed19372efe931a6103ffdab9e237fb426d7bf21973cdb07cba7f283dc +size 142095 diff --git a/product_docs/docs/eprs/6.2/images/media/image26.jpg b/product_docs/docs/eprs/6.2/images/media/image26.jpg new file mode 100644 index 00000000000..7e497257306 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image26.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d09224b222276157d7b7f85cff24ece334d8c69e646032da05e1c78f08a3b333 +size 103469 diff --git a/product_docs/docs/eprs/6.2/images/media/image260.jpg b/product_docs/docs/eprs/6.2/images/media/image260.jpg new file mode 100644 index 00000000000..106bf59de5f --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image260.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ae93d9eab539cbe18ba0bbb18046833edc1536e540657980554cbb9f513954ee +size 181105 diff --git a/product_docs/docs/eprs/6.2/images/media/image261.jpg b/product_docs/docs/eprs/6.2/images/media/image261.jpg new file mode 100644 index 00000000000..c3f9ef7cadd --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image261.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c3004fbba27b2873c61cb8cbcec22465df09c5f1d17359d0dd5548cfc2e5a097 +size 170187 diff --git a/product_docs/docs/eprs/6.2/images/media/image262.jpg b/product_docs/docs/eprs/6.2/images/media/image262.jpg new file mode 100644 index 00000000000..815f36d902a --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image262.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5b0a68c1692f2b239c5c802e3458948221b6e47f9f19ab85f15dbe54d0201a9b +size 88361 diff --git a/product_docs/docs/eprs/6.2/images/media/image263.jpg b/product_docs/docs/eprs/6.2/images/media/image263.jpg new file mode 100644 index 00000000000..fb3ae96aba4 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image263.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1859a8227ddd057c0708a01bd87647e7ec2b87122cda8e9d55b869324b934a85 +size 167196 diff --git a/product_docs/docs/eprs/6.2/images/media/image264.jpg b/product_docs/docs/eprs/6.2/images/media/image264.jpg new file mode 100644 index 00000000000..74c7c77c353 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image264.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a08e7475a23adf3a35dc3103680b64d35fdf33829cf9758defd063cf8a35407b +size 189162 diff --git a/product_docs/docs/eprs/6.2/images/media/image265.jpg b/product_docs/docs/eprs/6.2/images/media/image265.jpg new file mode 100644 index 00000000000..680482dfb8e --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image265.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:abd1459d2cbe58a26ccce37ded96b715c31ecf005487e1c303edd93581c41555 +size 145889 diff --git a/product_docs/docs/eprs/6.2/images/media/image266.jpg b/product_docs/docs/eprs/6.2/images/media/image266.jpg new file mode 100644 index 00000000000..2d23086cbf5 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image266.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6aa7e490ede8ac5219f3d69119cf91b0d0c5a486ee45d56118d729d22f26d42d +size 210329 diff --git a/product_docs/docs/eprs/6.2/images/media/image267.jpg b/product_docs/docs/eprs/6.2/images/media/image267.jpg new file mode 100644 index 00000000000..375cb09d0c4 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image267.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:608d25b8db237b047fabc38c6731968e37e3a2d03058190e12620a98328a5a1d +size 207676 diff --git a/product_docs/docs/eprs/6.2/images/media/image268.jpg b/product_docs/docs/eprs/6.2/images/media/image268.jpg new file mode 100644 index 00000000000..a23e307ef1c --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image268.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:58f1c3e0129d7fea3fce6e07dd945581c6769c06e828f02c6471c1f5a228daf2 +size 99193 diff --git a/product_docs/docs/eprs/6.2/images/media/image269.jpg b/product_docs/docs/eprs/6.2/images/media/image269.jpg new file mode 100644 index 00000000000..aedacbe6725 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image269.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1d8fbeca8e53865f5177203b216e48809f95a35e67c6c3a859ab7f57cc7618c1 +size 119090 diff --git a/product_docs/docs/eprs/6.2/images/media/image27.jpg b/product_docs/docs/eprs/6.2/images/media/image27.jpg new file mode 100644 index 00000000000..9fb2ef720df --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image27.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eb5bae5e80a6b8f10af1e950bced92906ae2ecefe68180c49f7768552b05e73d +size 83423 diff --git a/product_docs/docs/eprs/6.2/images/media/image270.jpg b/product_docs/docs/eprs/6.2/images/media/image270.jpg new file mode 100644 index 00000000000..639d2135c5a --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image270.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:23589e0d755aaafa04d9d5154b227e2f7b771cbb390660139fdee93c43c8447d +size 132214 diff --git a/product_docs/docs/eprs/6.2/images/media/image271.jpg b/product_docs/docs/eprs/6.2/images/media/image271.jpg new file mode 100644 index 00000000000..c5de1387b1f --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image271.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eb974743dd82fb0d1c7ff631ee0a19f8c47c63e73760ab4501d78a59ba38ad71 +size 133589 diff --git a/product_docs/docs/eprs/6.2/images/media/image272.jpg b/product_docs/docs/eprs/6.2/images/media/image272.jpg new file mode 100644 index 00000000000..82dfb94eefa --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image272.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:71ac1dd746afe698342ab2250d04f55cbb1c500f0bdbd81c9d143143556e742e +size 130514 diff --git a/product_docs/docs/eprs/6.2/images/media/image273.jpg b/product_docs/docs/eprs/6.2/images/media/image273.jpg new file mode 100644 index 00000000000..59eb7f2e619 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image273.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:73969950a737631ade52c05afae6bd60733872230342f9d1e3c2135f02ec9d9c +size 175572 diff --git a/product_docs/docs/eprs/6.2/images/media/image274.jpg b/product_docs/docs/eprs/6.2/images/media/image274.jpg new file mode 100644 index 00000000000..523af4c9866 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image274.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f44837e7a4a8238f0d50f08ebfbee658b77a45493c2a64ae4cf9aafc62800f27 +size 122820 diff --git a/product_docs/docs/eprs/6.2/images/media/image275.jpg b/product_docs/docs/eprs/6.2/images/media/image275.jpg new file mode 100644 index 00000000000..9262eebb50c --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image275.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:67a8fef27e30bdade19c45e15438b4458fab6bcdea7ad60dedb0a307c7ccb62f +size 208813 diff --git a/product_docs/docs/eprs/6.2/images/media/image276.jpg b/product_docs/docs/eprs/6.2/images/media/image276.jpg new file mode 100644 index 00000000000..23b33ddaa39 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image276.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4d343bc3a4506c80d381dc648cf98b8045d609bdc347a95e76f683d2a38c9edd +size 198997 diff --git a/product_docs/docs/eprs/6.2/images/media/image277.jpg b/product_docs/docs/eprs/6.2/images/media/image277.jpg new file mode 100644 index 00000000000..abf816f9470 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image277.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:22962fd75688c5c38cd92a72d20f7dec1af31ddf1bfdebb966be05d541d67123 +size 208549 diff --git a/product_docs/docs/eprs/6.2/images/media/image278.jpg b/product_docs/docs/eprs/6.2/images/media/image278.jpg new file mode 100644 index 00000000000..3b394020301 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image278.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e1a754623417ef2b36e7040f5d6c8f48fb655f42119d587f62760b56bd465960 +size 207309 diff --git a/product_docs/docs/eprs/6.2/images/media/image279.jpg b/product_docs/docs/eprs/6.2/images/media/image279.jpg new file mode 100644 index 00000000000..7e88086b55b --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image279.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d3bfb9ef36961f406792fbfd031c50f30ec92a86363e037abf719bf508e0c338 +size 186554 diff --git a/product_docs/docs/eprs/6.2/images/media/image28.jpg b/product_docs/docs/eprs/6.2/images/media/image28.jpg new file mode 100644 index 00000000000..53213864571 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image28.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e933af1f029843ae8cd694de49abe38906f03463d73c1e638f81f0634feb9dcd +size 196226 diff --git a/product_docs/docs/eprs/6.2/images/media/image280.jpeg b/product_docs/docs/eprs/6.2/images/media/image280.jpeg new file mode 100644 index 00000000000..7f6b698e79f --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image280.jpeg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:14816620aae639fc99c7cd16e32d1fe22f81fdedcc950b981aafa1dc8a9adec5 +size 60929 diff --git a/product_docs/docs/eprs/6.2/images/media/image281.jpeg b/product_docs/docs/eprs/6.2/images/media/image281.jpeg new file mode 100644 index 00000000000..ce49614d14f --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image281.jpeg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ab2cdf65ab7141de1c26adf96027030a93452fc00b293ad5fcc3b06a09d0aad4 +size 42482 diff --git a/product_docs/docs/eprs/6.2/images/media/image282.jpeg b/product_docs/docs/eprs/6.2/images/media/image282.jpeg new file mode 100644 index 00000000000..bfc291e145e --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image282.jpeg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:02a3e7460348e927550228d8c6a8df0cc7e76362d56add1a1216deb2d178cb78 +size 64257 diff --git a/product_docs/docs/eprs/6.2/images/media/image283.jpeg b/product_docs/docs/eprs/6.2/images/media/image283.jpeg new file mode 100644 index 00000000000..4abd62096bd --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image283.jpeg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ee092e57ef21e3a705be7a2154a84216941492594f3e5798c6823bc7d311ebff +size 53585 diff --git a/product_docs/docs/eprs/6.2/images/media/image284.jpg b/product_docs/docs/eprs/6.2/images/media/image284.jpg new file mode 100644 index 00000000000..4fae08a8cc8 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image284.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3cf51d22e6694f990e4f986719d0b099f830f0817457adb43e100dc2d0edb4ed +size 140887 diff --git a/product_docs/docs/eprs/6.2/images/media/image285.jpg b/product_docs/docs/eprs/6.2/images/media/image285.jpg new file mode 100644 index 00000000000..c49d4fa8727 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image285.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:096d072225b5fa45a6c8a878796fb73f22a873b9f9bb67094c3398b86d830944 +size 133762 diff --git a/product_docs/docs/eprs/6.2/images/media/image286.jpg b/product_docs/docs/eprs/6.2/images/media/image286.jpg new file mode 100644 index 00000000000..16cfbaa2830 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image286.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:88ad8830e3a29d9e40b91b32d22a9785236b4618b4c16646a7841f998ec84851 +size 188616 diff --git a/product_docs/docs/eprs/6.2/images/media/image287.jpg b/product_docs/docs/eprs/6.2/images/media/image287.jpg new file mode 100644 index 00000000000..dca170332af --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image287.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:22a291c9f0ff8f288254f718b14abddc515bbc983faa6229f0606de644b026cb +size 129476 diff --git a/product_docs/docs/eprs/6.2/images/media/image288.jpg b/product_docs/docs/eprs/6.2/images/media/image288.jpg new file mode 100644 index 00000000000..d11490cb1f8 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image288.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:85211d73a92beb0a390e6a87116887425f4cd7d46c48a17a499a6216e8337483 +size 112971 diff --git a/product_docs/docs/eprs/6.2/images/media/image289.jpg b/product_docs/docs/eprs/6.2/images/media/image289.jpg new file mode 100644 index 00000000000..daa73cd45e2 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image289.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b4672223effd301a670717fd8dcabd66191f68137f58c1995a03313f017d5350 +size 133629 diff --git a/product_docs/docs/eprs/6.2/images/media/image29.jpg b/product_docs/docs/eprs/6.2/images/media/image29.jpg new file mode 100644 index 00000000000..c86303d24cb --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image29.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e082e3407c2c8e1d3f58263ef61c9bc96b79b2ce40b3005b24b58a329e8578b6 +size 261584 diff --git a/product_docs/docs/eprs/6.2/images/media/image290.jpeg b/product_docs/docs/eprs/6.2/images/media/image290.jpeg new file mode 100644 index 00000000000..d4140dab4f8 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image290.jpeg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0f72bbb25e2fb743d39b324b07bfb38a013fc9636ee9fd6e752c4aa226a70636 +size 59884 diff --git a/product_docs/docs/eprs/6.2/images/media/image291.jpg b/product_docs/docs/eprs/6.2/images/media/image291.jpg new file mode 100644 index 00000000000..6541d8d3c2d --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image291.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:111871ef98a37dc6f0898f3d50c1f4a312a557f02087a24bf9b34001b2f514f9 +size 282187 diff --git a/product_docs/docs/eprs/6.2/images/media/image292.jpg b/product_docs/docs/eprs/6.2/images/media/image292.jpg new file mode 100644 index 00000000000..0529711a743 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image292.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:60327659101ef6a9878bcc408a0d2ac620685c206e6c0723b1fd586bfe88ce73 +size 114041 diff --git a/product_docs/docs/eprs/6.2/images/media/image293.jpg b/product_docs/docs/eprs/6.2/images/media/image293.jpg new file mode 100644 index 00000000000..288c2c82950 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image293.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:970c47ef4cf3f1d10c35d975acdba078ffb36dac3fa02cc8421747afeca4f0a5 +size 91423 diff --git a/product_docs/docs/eprs/6.2/images/media/image294.jpg b/product_docs/docs/eprs/6.2/images/media/image294.jpg new file mode 100644 index 00000000000..48e2902125c --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image294.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ad219fb1715ae097f299695f8fbcddf0cfd702a51b67436769a4a0e5c2010f86 +size 75302 diff --git a/product_docs/docs/eprs/6.2/images/media/image295.jpeg b/product_docs/docs/eprs/6.2/images/media/image295.jpeg new file mode 100644 index 00000000000..4c6d293b4b4 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image295.jpeg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b3d1bb1bc8ebb120bfa4f3b7f4a5d09df1d0778c50c01eda88807a7ea5eb0ff2 +size 80449 diff --git a/product_docs/docs/eprs/6.2/images/media/image296.jpg b/product_docs/docs/eprs/6.2/images/media/image296.jpg new file mode 100644 index 00000000000..93691d1dc16 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image296.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:793b70eda38eefd85a48f745fb87cc278a5005ff38b8661073eb5db957974d09 +size 113847 diff --git a/product_docs/docs/eprs/6.2/images/media/image297.jpg b/product_docs/docs/eprs/6.2/images/media/image297.jpg new file mode 100644 index 00000000000..4424957395c --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image297.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:78b6ec520c6543824b0568c5ab746a3f3089ff4fdac0312aedd7d2d94d4a20d8 +size 288224 diff --git a/product_docs/docs/eprs/6.2/images/media/image298.jpg b/product_docs/docs/eprs/6.2/images/media/image298.jpg new file mode 100644 index 00000000000..3495fe92b39 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image298.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bd45f9d4d78b97c1248fa611f3cdc5c972dcb666e402f7d8974f8f059cf6c27d +size 131583 diff --git a/product_docs/docs/eprs/6.2/images/media/image299.jpg b/product_docs/docs/eprs/6.2/images/media/image299.jpg new file mode 100644 index 00000000000..914ac5b4e05 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image299.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9ed74992431a10c431e731cce2b0cd61794803eacc6885288e95e7389e6a92c1 +size 442917 diff --git a/product_docs/docs/eprs/6.2/images/media/image3.jpeg b/product_docs/docs/eprs/6.2/images/media/image3.jpeg new file mode 100644 index 00000000000..a517e6a627a --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image3.jpeg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e37f863c9fe853e904357fea979070acbe51ee634327ad19de69f2ad32334481 +size 30502 diff --git a/product_docs/docs/eprs/6.2/images/media/image3.png b/product_docs/docs/eprs/6.2/images/media/image3.png new file mode 100644 index 00000000000..dc107491cdc --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9cb32860a9c51c799df1b6c7518fcf6bde15313b837929a1c67e5729860d408b +size 133440 diff --git a/product_docs/docs/eprs/6.2/images/media/image30.jpg b/product_docs/docs/eprs/6.2/images/media/image30.jpg new file mode 100644 index 00000000000..3ccf3478f8c --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image30.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3884fc1b41a855e173909c62326413b7f6acbde8f2c4475ee8730718349d472f +size 245080 diff --git a/product_docs/docs/eprs/6.2/images/media/image31.jpg b/product_docs/docs/eprs/6.2/images/media/image31.jpg new file mode 100644 index 00000000000..847f1487a3e --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image31.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:40c99848d4ef3d7d02dc643912e87c0aaaf25139e452ba752b223cccc469d666 +size 256559 diff --git a/product_docs/docs/eprs/6.2/images/media/image32.jpg b/product_docs/docs/eprs/6.2/images/media/image32.jpg new file mode 100644 index 00000000000..170dcf3c2f5 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image32.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d3df2fbd9fd91f7a0a28ed81e96fbe574f7cf5602797f34c6f591da598996bd2 +size 148704 diff --git a/product_docs/docs/eprs/6.2/images/media/image33.jpg b/product_docs/docs/eprs/6.2/images/media/image33.jpg new file mode 100644 index 00000000000..7548ee9924b --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image33.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1d6921e2ab17b807a9c2649941c3c287792f078db323c1b580e01830d329c69e +size 150148 diff --git a/product_docs/docs/eprs/6.2/images/media/image34.jpg b/product_docs/docs/eprs/6.2/images/media/image34.jpg new file mode 100644 index 00000000000..ec170e9eb01 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image34.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:606ce310286c4f2a7df6481ec04e93aede9d9874d6ba22b7bdbecee9937d8903 +size 60069 diff --git a/product_docs/docs/eprs/6.2/images/media/image35.jpg b/product_docs/docs/eprs/6.2/images/media/image35.jpg new file mode 100644 index 00000000000..7ad2d5510e0 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image35.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e8c1fa37ffca4011057460944d4ec3407ffa0ba07be30a63ef58f50e3cdca0f9 +size 167442 diff --git a/product_docs/docs/eprs/6.2/images/media/image36.jpg b/product_docs/docs/eprs/6.2/images/media/image36.jpg new file mode 100644 index 00000000000..e2e0f98bb4c --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image36.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e6e718c63def8c12d07f2aa996842a0ff6ff74e3319864067478e33ca09eda74 +size 39672 diff --git a/product_docs/docs/eprs/6.2/images/media/image37.jpg b/product_docs/docs/eprs/6.2/images/media/image37.jpg new file mode 100644 index 00000000000..8d4b0bfb9d6 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image37.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5c4390900d5098f6adf06b37365f35c31e95cffe28a2ece39fd1461eb330aa79 +size 111792 diff --git a/product_docs/docs/eprs/6.2/images/media/image38.jpg b/product_docs/docs/eprs/6.2/images/media/image38.jpg new file mode 100644 index 00000000000..4c46016acc9 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image38.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:18ba702ac596bb7683385916a61c5cdc16cccd0c3c85b81b40e37af09d9fe64e +size 260122 diff --git a/product_docs/docs/eprs/6.2/images/media/image39.jpg b/product_docs/docs/eprs/6.2/images/media/image39.jpg new file mode 100644 index 00000000000..e0209ae800e --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image39.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9e1f8fb45c304b2e343bfbf9c251f3f9f2c5c540de9cb1e8dd0e01b2b6788c87 +size 109341 diff --git a/product_docs/docs/eprs/6.2/images/media/image4.jpeg b/product_docs/docs/eprs/6.2/images/media/image4.jpeg new file mode 100644 index 00000000000..d65cc64f097 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image4.jpeg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d533f13c9e62f8cd85f11c83b3c740a48c686c9e449bc3c3771b2c42ee8f789f +size 31748 diff --git a/product_docs/docs/eprs/6.2/images/media/image40.jpg b/product_docs/docs/eprs/6.2/images/media/image40.jpg new file mode 100644 index 00000000000..78a1713df09 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image40.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b51ee2f9898da80e14f1efcf24e11bc7004de69f957f4ddd1fb63164f962983 +size 106216 diff --git a/product_docs/docs/eprs/6.2/images/media/image41.jpg b/product_docs/docs/eprs/6.2/images/media/image41.jpg new file mode 100644 index 00000000000..a9f876f542a --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image41.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:29aef519171e1bed623b207d99e3cbd96d6426017f328af3b12116553c9b9c03 +size 150270 diff --git a/product_docs/docs/eprs/6.2/images/media/image42.jpg b/product_docs/docs/eprs/6.2/images/media/image42.jpg new file mode 100644 index 00000000000..7d59005bf9f --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image42.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f19c6552072624d56859db199b8eec3b6f4786361947639bd89df15bac00118d +size 96588 diff --git a/product_docs/docs/eprs/6.2/images/media/image43.jpg b/product_docs/docs/eprs/6.2/images/media/image43.jpg new file mode 100644 index 00000000000..79e891b1fee --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image43.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a4d87a29c7def2baf814e03088ab7ec259fc3bdb1e71a38e2d7e2521bf24c6a1 +size 111594 diff --git a/product_docs/docs/eprs/6.2/images/media/image44.jpg b/product_docs/docs/eprs/6.2/images/media/image44.jpg new file mode 100644 index 00000000000..8ec39af13b2 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image44.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e2f6eb9b5a91a7df65b13e7c2d64cad381c10e3f7ae980e25059d7b493614b40 +size 81527 diff --git a/product_docs/docs/eprs/6.2/images/media/image45.jpg b/product_docs/docs/eprs/6.2/images/media/image45.jpg new file mode 100644 index 00000000000..5f9d651c799 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image45.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:91f0c350f686e9f9215629e5e23cea484e331fe6dc65b212a41e244f110046c1 +size 80670 diff --git a/product_docs/docs/eprs/6.2/images/media/image46.jpg b/product_docs/docs/eprs/6.2/images/media/image46.jpg new file mode 100644 index 00000000000..7377b543e15 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image46.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:65e66b3fe37f7f9c2203b775afbdd445d76da630128d8c102835983fd076c985 +size 98738 diff --git a/product_docs/docs/eprs/6.2/images/media/image47.jpg b/product_docs/docs/eprs/6.2/images/media/image47.jpg new file mode 100644 index 00000000000..2d5873af9b4 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image47.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2be9d3af8296e4f3c446daa06f61dbc610af0e479974f3e7735608420f93d66b +size 82319 diff --git a/product_docs/docs/eprs/6.2/images/media/image48.jpg b/product_docs/docs/eprs/6.2/images/media/image48.jpg new file mode 100644 index 00000000000..24daf87a2cc --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image48.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:78ceaa24b636e59a62fdaefb0a070084fdbbfd0f994f0785581a971546169077 +size 112091 diff --git a/product_docs/docs/eprs/6.2/images/media/image49.jpg b/product_docs/docs/eprs/6.2/images/media/image49.jpg new file mode 100644 index 00000000000..c85404644e0 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image49.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8254e983d70a229bc2ba8fe0a5e5b0151a022f8fdaf8cd2b354e57e59160f844 +size 138180 diff --git a/product_docs/docs/eprs/6.2/images/media/image5.jpeg b/product_docs/docs/eprs/6.2/images/media/image5.jpeg new file mode 100644 index 00000000000..8bf9fb04d3b --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image5.jpeg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:242d457df681b4df92f36c3d9e4b1a076e7d022c2dee72040a371e69dc361c84 +size 31128 diff --git a/product_docs/docs/eprs/6.2/images/media/image50.jpg b/product_docs/docs/eprs/6.2/images/media/image50.jpg new file mode 100644 index 00000000000..bd9214491c1 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image50.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:023af28a9b58749ae0e6c790bcc18e74b63997f43077014b5535538637749798 +size 183980 diff --git a/product_docs/docs/eprs/6.2/images/media/image51.jpg b/product_docs/docs/eprs/6.2/images/media/image51.jpg new file mode 100644 index 00000000000..34d0bcea110 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image51.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b570149d4777c95319954e5cc63b27c67d6f30e9cb578c173675fb9a3cdcd971 +size 39532 diff --git a/product_docs/docs/eprs/6.2/images/media/image52.jpg b/product_docs/docs/eprs/6.2/images/media/image52.jpg new file mode 100644 index 00000000000..e3dfab43838 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image52.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f0a6cc30bd97d82adbc820616693044b729c3a452695c78ce5e6562d66cbaf90 +size 102715 diff --git a/product_docs/docs/eprs/6.2/images/media/image53.jpg b/product_docs/docs/eprs/6.2/images/media/image53.jpg new file mode 100644 index 00000000000..81f5252e0ed --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image53.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:716c252d4853f75e62d34e0661d11c6f48fbbab54b0d83175654a65c8b7ca04d +size 232419 diff --git a/product_docs/docs/eprs/6.2/images/media/image54.jpg b/product_docs/docs/eprs/6.2/images/media/image54.jpg new file mode 100644 index 00000000000..d84b4cf6891 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image54.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:abe0bcffee50802c25b0643aaa661c068bb6286c1a9b168d290995c9d3e6bbf4 +size 346885 diff --git a/product_docs/docs/eprs/6.2/images/media/image55.jpg b/product_docs/docs/eprs/6.2/images/media/image55.jpg new file mode 100644 index 00000000000..56962cb3e5f --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image55.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3f1e55e1339d4558ffb190453f88adcd9b409b583d99c745ee031c19d7e6d838 +size 28208 diff --git a/product_docs/docs/eprs/6.2/images/media/image56.jpg b/product_docs/docs/eprs/6.2/images/media/image56.jpg new file mode 100644 index 00000000000..fa7f8c95429 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image56.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9e3376da6739b4330ab366f1d7774f1a135aa07822e8cee3d59713e6c34b8a81 +size 65895 diff --git a/product_docs/docs/eprs/6.2/images/media/image57.jpg b/product_docs/docs/eprs/6.2/images/media/image57.jpg new file mode 100644 index 00000000000..b254311e747 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image57.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c5293707f5d4421f2187ab7a54caeb88ae44681d9780a2a5d7bacf818769b58c +size 136803 diff --git a/product_docs/docs/eprs/6.2/images/media/image58.jpg b/product_docs/docs/eprs/6.2/images/media/image58.jpg new file mode 100644 index 00000000000..2617c27ddba --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image58.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:793713befcbc69539fb50d672ed9e3e725476d8e0fccb42c2ffcfa96d017b6fe +size 41419 diff --git a/product_docs/docs/eprs/6.2/images/media/image59.jpg b/product_docs/docs/eprs/6.2/images/media/image59.jpg new file mode 100644 index 00000000000..298bf78c63e --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image59.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e3594015c63f3db38741b79095737c31495936bc8f44034d477dd182be46e61a +size 74731 diff --git a/product_docs/docs/eprs/6.2/images/media/image6.jpeg b/product_docs/docs/eprs/6.2/images/media/image6.jpeg new file mode 100644 index 00000000000..612702125c6 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image6.jpeg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2538befe672f0327ed1744384ca1b63114793d77820df0a7bd95bff897d1b65f +size 34356 diff --git a/product_docs/docs/eprs/6.2/images/media/image60.jpg b/product_docs/docs/eprs/6.2/images/media/image60.jpg new file mode 100644 index 00000000000..53cabceb9d9 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image60.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:062d83c8f85f0da79635c35b8b257806888bc91d24ffdb4f82ab4be9c65dc1a7 +size 79345 diff --git a/product_docs/docs/eprs/6.2/images/media/image61.jpg b/product_docs/docs/eprs/6.2/images/media/image61.jpg new file mode 100644 index 00000000000..8b20fe92eb8 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image61.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9ed20e141b388f64863e062725555978fc336014c9fd149a7fb82de5bb764ed8 +size 81278 diff --git a/product_docs/docs/eprs/6.2/images/media/image62.jpg b/product_docs/docs/eprs/6.2/images/media/image62.jpg new file mode 100644 index 00000000000..4bed74a550b --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image62.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c3f5267f6bedaa8a15bd1ddbe3cf9c2d9ac028c99e1302a9adea8eae1c47ec49 +size 89625 diff --git a/product_docs/docs/eprs/6.2/images/media/image63.jpg b/product_docs/docs/eprs/6.2/images/media/image63.jpg new file mode 100644 index 00000000000..5ee9abeb948 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image63.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1159c0429069adc94bed1180bf4d1238e180f1c05dfc1836976f0413630a3b7e +size 60657 diff --git a/product_docs/docs/eprs/6.2/images/media/image64.jpg b/product_docs/docs/eprs/6.2/images/media/image64.jpg new file mode 100644 index 00000000000..9012558a9e2 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image64.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7ef01a4801580af57be36e3e42caed1d16c5cb7d3ab8101795b186be820f0e7d +size 62088 diff --git a/product_docs/docs/eprs/6.2/images/media/image65.jpg b/product_docs/docs/eprs/6.2/images/media/image65.jpg new file mode 100644 index 00000000000..2e1b9ce3dd4 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image65.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3a2b6df39b511c44df80840c92c5352d781e4c4d70a91af38aaaf8d8a3520ec4 +size 148555 diff --git a/product_docs/docs/eprs/6.2/images/media/image66.jpg b/product_docs/docs/eprs/6.2/images/media/image66.jpg new file mode 100644 index 00000000000..70e3b6895be --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image66.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d379a03f28e90f5967445d895afaaebf6e8e0ff95bd6e09cfc0722329c1bf74f +size 117580 diff --git a/product_docs/docs/eprs/6.2/images/media/image67.jpg b/product_docs/docs/eprs/6.2/images/media/image67.jpg new file mode 100644 index 00000000000..b598e9e063c --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image67.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ceb5a7cf455b7f1b85893d3884e4512db044c8e148134f99fd320fb7027071b +size 103112 diff --git a/product_docs/docs/eprs/6.2/images/media/image68.jpg b/product_docs/docs/eprs/6.2/images/media/image68.jpg new file mode 100644 index 00000000000..bf76928b4fb --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image68.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:16821267da29af43f43ddb6d1e515e36b392da0bf7be12376354996e009ce734 +size 112294 diff --git a/product_docs/docs/eprs/6.2/images/media/image69.jpg b/product_docs/docs/eprs/6.2/images/media/image69.jpg new file mode 100644 index 00000000000..836babed6cb --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image69.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:745f62da86af035e3b1005be27e295be8fbdee1c39f9366ac2d63ff2f8dcb537 +size 120393 diff --git a/product_docs/docs/eprs/6.2/images/media/image7.jpeg b/product_docs/docs/eprs/6.2/images/media/image7.jpeg new file mode 100644 index 00000000000..1bf77ad689f --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image7.jpeg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:299ad9778eb20c8da530930c940fd1ba9c79a16775146d74f322eeabdff5e395 +size 38125 diff --git a/product_docs/docs/eprs/6.2/images/media/image70.jpg b/product_docs/docs/eprs/6.2/images/media/image70.jpg new file mode 100644 index 00000000000..b2697a083e2 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image70.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9bc9eb9c9e3f3477f8f95f55d1363378a02919139a492b3189839e1821efa766 +size 136597 diff --git a/product_docs/docs/eprs/6.2/images/media/image71.jpg b/product_docs/docs/eprs/6.2/images/media/image71.jpg new file mode 100644 index 00000000000..8f30f96202b --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image71.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:76fc9c2999b74a96ab2c3a28b1c8add747089619f43ba28f26154089cbf2589e +size 120510 diff --git a/product_docs/docs/eprs/6.2/images/media/image72.jpg b/product_docs/docs/eprs/6.2/images/media/image72.jpg new file mode 100644 index 00000000000..0285386bda3 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image72.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:51586f5e728609a1928733ebf71366b7b5ea7991d3ea23b76cfa8d8551d45914 +size 140149 diff --git a/product_docs/docs/eprs/6.2/images/media/image73.jpg b/product_docs/docs/eprs/6.2/images/media/image73.jpg new file mode 100644 index 00000000000..e013b6da2b4 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image73.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:45b9e75bedd2363b0098699775f2db513786c0534244dcf1666a6d725daab254 +size 102079 diff --git a/product_docs/docs/eprs/6.2/images/media/image74.jpg b/product_docs/docs/eprs/6.2/images/media/image74.jpg new file mode 100644 index 00000000000..5e1ed8c4a5e --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image74.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9e09ccdcf846573fd37474a103d386ec108fcc7201baa5de637618e51bdaf856 +size 161485 diff --git a/product_docs/docs/eprs/6.2/images/media/image75.jpg b/product_docs/docs/eprs/6.2/images/media/image75.jpg new file mode 100644 index 00000000000..7a8600fe0ac --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image75.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7dd14fba3d353fd3db36bf410671878241e09fc71b5640d54aab1b2431a085a0 +size 187927 diff --git a/product_docs/docs/eprs/6.2/images/media/image76.jpg b/product_docs/docs/eprs/6.2/images/media/image76.jpg new file mode 100644 index 00000000000..b9910adfe1f --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image76.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e225479da38fb913bca2d06435ff25b5106f8f9b0f0e1455d285535172b07820 +size 193166 diff --git a/product_docs/docs/eprs/6.2/images/media/image77.jpg b/product_docs/docs/eprs/6.2/images/media/image77.jpg new file mode 100644 index 00000000000..34ae9db834a --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image77.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9e636e4efaf7605cbbc6b26f879267cdf67d315701dc25da8fe1718642f75afb +size 197741 diff --git a/product_docs/docs/eprs/6.2/images/media/image78.jpg b/product_docs/docs/eprs/6.2/images/media/image78.jpg new file mode 100644 index 00000000000..1792df32b8e --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image78.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:84132d8be3a6ffb49ee0e6f2c375dfec31d067bb00dec038fef0c7b1b80416a8 +size 130521 diff --git a/product_docs/docs/eprs/6.2/images/media/image79.jpg b/product_docs/docs/eprs/6.2/images/media/image79.jpg new file mode 100644 index 00000000000..c187a6d191b --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image79.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:976501f988635b3508252a4fbd8b007d68660f8c55e109585e0535466ffd9fb1 +size 137179 diff --git a/product_docs/docs/eprs/6.2/images/media/image8.png b/product_docs/docs/eprs/6.2/images/media/image8.png new file mode 100644 index 00000000000..181e69f46dd --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image8.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d91c7df61b664a9b39a0ad3f1c7a32fbf1f4f67c345b646395ed58feab34d186 +size 365236 diff --git a/product_docs/docs/eprs/6.2/images/media/image80.jpg b/product_docs/docs/eprs/6.2/images/media/image80.jpg new file mode 100644 index 00000000000..ec39d926774 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image80.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:17860f4fe635130dbf0390722fdcb55e20f05c126dfc03f149be586a852641f6 +size 155850 diff --git a/product_docs/docs/eprs/6.2/images/media/image81.jpg b/product_docs/docs/eprs/6.2/images/media/image81.jpg new file mode 100644 index 00000000000..cd65b2ab332 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image81.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2587e1850196288d8e1a4ca8613074703bca7d17c4589ff1e20ae36afd88ec7a +size 129218 diff --git a/product_docs/docs/eprs/6.2/images/media/image82.jpg b/product_docs/docs/eprs/6.2/images/media/image82.jpg new file mode 100644 index 00000000000..75c72489e7c --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image82.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:13cee83d835baaba08c4cad7d6e4529dea67e6c7c2ecb59d5f93d78cb43abfca +size 132991 diff --git a/product_docs/docs/eprs/6.2/images/media/image83.jpg b/product_docs/docs/eprs/6.2/images/media/image83.jpg new file mode 100644 index 00000000000..e9fcca6caa0 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image83.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:92934fb9cdf2f80e29e5490ca227757d7fc42c8c3a528c2168aab0bc94d98a15 +size 151078 diff --git a/product_docs/docs/eprs/6.2/images/media/image84.jpg b/product_docs/docs/eprs/6.2/images/media/image84.jpg new file mode 100644 index 00000000000..01828cb71ed --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image84.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9bb4163f6c120b7caacd1a79ab6a5709dd0a09847a5cf55bfc98ef0177318f74 +size 109885 diff --git a/product_docs/docs/eprs/6.2/images/media/image85.jpg b/product_docs/docs/eprs/6.2/images/media/image85.jpg new file mode 100644 index 00000000000..e58ce407a06 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image85.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:99079e403959fa2b0ccce64b9934a790c45b4a6f815b27e5fcba35388782b821 +size 100062 diff --git a/product_docs/docs/eprs/6.2/images/media/image86.jpg b/product_docs/docs/eprs/6.2/images/media/image86.jpg new file mode 100644 index 00000000000..739eb0551c2 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image86.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0faf852ec84c5073b44fd63d28aadac25a282f22b88e0745802dc1d2f1d30cf2 +size 129247 diff --git a/product_docs/docs/eprs/6.2/images/media/image87.jpg b/product_docs/docs/eprs/6.2/images/media/image87.jpg new file mode 100644 index 00000000000..83036677b17 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image87.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:639fd742bac1291ecfcff3b263a2d5c09ed33b5b4c029ef51a9e7ac6f46edd98 +size 179718 diff --git a/product_docs/docs/eprs/6.2/images/media/image88.jpg b/product_docs/docs/eprs/6.2/images/media/image88.jpg new file mode 100644 index 00000000000..45760e12caf --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image88.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1e2db8632dfcc89c9f5d9fd5398f5c26e1af32879e9a2b6cc790a177a7edfca9 +size 262414 diff --git a/product_docs/docs/eprs/6.2/images/media/image89.jpg b/product_docs/docs/eprs/6.2/images/media/image89.jpg new file mode 100644 index 00000000000..7acb8dfa01b --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image89.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a7f02d1e2e6ad1980ec0cf5d1d07138f7428f1038cbc33c3dd02b25e30841cc8 +size 122394 diff --git a/product_docs/docs/eprs/6.2/images/media/image9.png b/product_docs/docs/eprs/6.2/images/media/image9.png new file mode 100644 index 00000000000..e9285de4f8d --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image9.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:342303a9e7f281d0251577290cfd36587bd61c2883c20a4ceb1aa1511c8ba181 +size 764809 diff --git a/product_docs/docs/eprs/6.2/images/media/image90.jpg b/product_docs/docs/eprs/6.2/images/media/image90.jpg new file mode 100644 index 00000000000..f7f9d835b26 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image90.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ff39c2b449e2d0b453ef9b3505ca546ca64681d9b339837ec027c033f672cd2b +size 157585 diff --git a/product_docs/docs/eprs/6.2/images/media/image91.jpg b/product_docs/docs/eprs/6.2/images/media/image91.jpg new file mode 100644 index 00000000000..ae1b8731635 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image91.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b7259b09e3aa7ff8c05c56eb9370bd09ddde4097247b576d96b6d7e91f0bfe65 +size 91838 diff --git a/product_docs/docs/eprs/6.2/images/media/image92.jpg b/product_docs/docs/eprs/6.2/images/media/image92.jpg new file mode 100644 index 00000000000..dabf5c1254d --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image92.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa4344b15054625acf5198a13a75c1f631dce09622c1ba80afe466080ca7d268 +size 79771 diff --git a/product_docs/docs/eprs/6.2/images/media/image93.jpg b/product_docs/docs/eprs/6.2/images/media/image93.jpg new file mode 100644 index 00000000000..16479ad6d76 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image93.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:721a7c4eb6d1315f6699712c9b80fba1cb868ef27d73024eac7700dc16be0a9e +size 127540 diff --git a/product_docs/docs/eprs/6.2/images/media/image94.jpg b/product_docs/docs/eprs/6.2/images/media/image94.jpg new file mode 100644 index 00000000000..bebc591605e --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image94.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af3c3ce2df2deb643b5895fd17fc99f1a2e71d5a74e6e918d58119ffbb159f4a +size 69176 diff --git a/product_docs/docs/eprs/6.2/images/media/image95.jpg b/product_docs/docs/eprs/6.2/images/media/image95.jpg new file mode 100644 index 00000000000..44d285be6e8 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image95.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c971bb5200c1fab199595906d5f6bc1a2b8762c29f028f24981d9b3d5bea2a1a +size 113395 diff --git a/product_docs/docs/eprs/6.2/images/media/image96.jpg b/product_docs/docs/eprs/6.2/images/media/image96.jpg new file mode 100644 index 00000000000..c3affc68886 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image96.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2ed87075dfce68ae026df1d7414a5fad592caa7336247b8e5b610128651722af +size 55641 diff --git a/product_docs/docs/eprs/6.2/images/media/image97.jpg b/product_docs/docs/eprs/6.2/images/media/image97.jpg new file mode 100644 index 00000000000..91c239cf351 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image97.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8ed225c25de17603eaefd56eeee8fed9f22cd6c3772e4a0991f21497e2372835 +size 64320 diff --git a/product_docs/docs/eprs/6.2/images/media/image98.jpg b/product_docs/docs/eprs/6.2/images/media/image98.jpg new file mode 100644 index 00000000000..e3f8a2711f1 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image98.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:60af07b98172af3a6c952be927c0c7be77a46cde3f7c73e9bd0de134e26a69a0 +size 117621 diff --git a/product_docs/docs/eprs/6.2/images/media/image99.jpg b/product_docs/docs/eprs/6.2/images/media/image99.jpg new file mode 100644 index 00000000000..c01ebd0c986 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/image99.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9d52c8af870ce382048b8d3cdcf4230155c378cd583afc8756181d5ffa582c07 +size 125740 diff --git a/product_docs/docs/eprs/6.2/images/media/less_secure_apps.png b/product_docs/docs/eprs/6.2/images/media/less_secure_apps.png new file mode 100755 index 00000000000..6a1839f2a9e --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/less_secure_apps.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:09ad7af4c5948eb9261f6a09e6a98832be139b6d83b37ea27c1ef2b11b1efec9 +size 23835 diff --git a/product_docs/docs/eprs/6.2/images/media/security_group_inbound_traffic.1png b/product_docs/docs/eprs/6.2/images/media/security_group_inbound_traffic.1png new file mode 100755 index 0000000000000000000000000000000000000000..38ccd4fd9153ac221da0685654b87be5e28fdde2 GIT binary patch literal 119746 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�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%0D1K0t`TiA$OhUH7G#UM+mz|ONx7ZH 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 B?HB+6 literal 0 HcmV?d00001 diff --git a/product_docs/docs/eprs/6.2/images/media/security_group_inbound_traffic.png b/product_docs/docs/eprs/6.2/images/media/security_group_inbound_traffic.png new file mode 100755 index 00000000000..f2ff44a18b2 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/media/security_group_inbound_traffic.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:25cf735f9bfe57518a778516a48d278ba1807dbfb55b26c796318b676a62b402 +size 257161 diff --git a/product_docs/docs/eprs/6.2/images/security_group_inbound_traffic.1png b/product_docs/docs/eprs/6.2/images/security_group_inbound_traffic.1png new file mode 100755 index 0000000000000000000000000000000000000000..38ccd4fd9153ac221da0685654b87be5e28fdde2 GIT binary patch literal 119746 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�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%0D1K0t`TiA$OhUH7G#UM+mz|ONx7ZH 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 B?HB+6 literal 0 HcmV?d00001 diff --git a/product_docs/docs/eprs/6.2/images/security_group_inbound_traffic.png b/product_docs/docs/eprs/6.2/images/security_group_inbound_traffic.png new file mode 100755 index 00000000000..f2ff44a18b2 --- /dev/null +++ b/product_docs/docs/eprs/6.2/images/security_group_inbound_traffic.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:25cf735f9bfe57518a778516a48d278ba1807dbfb55b26c796318b676a62b402 +size 257161 diff --git a/product_docs/docs/eprs/6.2/index.mdx b/product_docs/docs/eprs/6.2/index.mdx index eb7bd1ad4a7..32efefb751a 100644 --- a/product_docs/docs/eprs/6.2/index.mdx +++ b/product_docs/docs/eprs/6.2/index.mdx @@ -1,8 +1,8 @@ --- title: "Replication Server" -productStub: true directoryDefaults: description: "EDB Postgres Replication Server Version 6.2 Documentation and release notes. Replication between PostgreSQL databases in single-master or multi-master mode to achieve high availability." --- - +EDB Postgres Replication Server (EPRS) provides a robust data platform that replicates between PostgreSQL databases +in single-master or multi-master mode, or from non-PostgreSQL databases to PostgreSQL in single-master mode. \ No newline at end of file From a14c6c57463800d3d7a5ac8c23bdc13eea199ad9 Mon Sep 17 00:00:00 2001 From: Robert Stringer Date: Thu, 18 Mar 2021 13:06:14 +0000 Subject: [PATCH 13/28] removing eprs stub data Former-commit-id: f2be099712be0feb3fcb72ccdefd11ddb53705d1 --- src/constants/product-stubs.js | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/src/constants/product-stubs.js b/src/constants/product-stubs.js index 5fccca1e4ce..6deecd0d9fe 100644 --- a/src/constants/product-stubs.js +++ b/src/constants/product-stubs.js @@ -2214,23 +2214,4 @@ export const productStubs = { ], }, }, - eprs: { - 6.2: { - sections: [ - { - title: 'User Guides', - column: 1, - links: [ - { - text: 'User Guide', - href: - 'https://www.enterprisedb.com/edb-docs/d/edb-postgres-replication-server/user-guides/user-guide/6.2/toc.html', - pdf: - 'https://www.enterprisedb.com/edb-docs/static/docs/eprs/6.2/EDB_Postgres_Replication_Server_Users_Guide_v6.2.pdf', - }, - ], - }, - ], - }, - }, }; From 29927101cde48d48bd291dd92964720a5c713b2b Mon Sep 17 00:00:00 2001 From: Evan Barger Date: Thu, 18 Mar 2021 11:10:45 -0400 Subject: [PATCH 14/28] Fix weird half admonition half html note in pgbouncer index page Former-commit-id: 5afe8ca484d936908d207e3c7802ec78722d56aa --- product_docs/docs/pgbouncer/1.0/index.mdx | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/product_docs/docs/pgbouncer/1.0/index.mdx b/product_docs/docs/pgbouncer/1.0/index.mdx index 459a4d868af..430f53c929d 100644 --- a/product_docs/docs/pgbouncer/1.0/index.mdx +++ b/product_docs/docs/pgbouncer/1.0/index.mdx @@ -21,20 +21,5 @@ EnterpriseDB enhancements for the PgBouncer project are available via RPM Packag For more information about PgBouncer, including reference and usage information, please visit the [PgBouncer project site](https://www.pgbouncer.org). -
      - -
      - !!! Note - -
      - If you are using the pdf version of this document, using cut/paste to copy command may result in extra spaces or carriage returns in the pasted command. If a command fails, check the command carefully for additional characters. - -
      - -
      - -installation configuration\_and\_usage uninstallation conclusion - -
      From a73c1260cea212c70ef2ae2b2135a2c7b7865504 Mon Sep 17 00:00:00 2001 From: josh-heyer Date: Thu, 18 Mar 2021 15:18:52 +0000 Subject: [PATCH 15/28] New PDFs generated by Github Actions Former-commit-id: baf69fedcda5adf152a45a6857ff39f522614e0b From b04bff2211cfbbfb8a7851cbbf661119bb824cfe Mon Sep 17 00:00:00 2001 From: Evan Barger Date: Thu, 18 Mar 2021 12:31:41 -0400 Subject: [PATCH 16/28] Add missing redirect to postgresql installer index Former-commit-id: cc4f41e1e197e71c08f6b18b6dcae3a2d6a85104 --- .../supported-open-source/postgresql/installer/index.mdx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/advocacy_docs/supported-open-source/postgresql/installer/index.mdx b/advocacy_docs/supported-open-source/postgresql/installer/index.mdx index 19542aa4447..c7fc835c4eb 100644 --- a/advocacy_docs/supported-open-source/postgresql/installer/index.mdx +++ b/advocacy_docs/supported-open-source/postgresql/installer/index.mdx @@ -1,6 +1,8 @@ --- title: "EDB Installers" description: "The PostgreSQL installers created by EnterpriseDB are designed to make it quick and simple to install PostgreSQL on your computer." +legacyRedirects: + - "/edb-docs/d/postgresql/installation-getting-started/installation-guide/13.0/index.html" --- The PostgreSQL installers created by EnterpriseDB are designed to make it quick and simple to install PostgreSQL on your computer. The installer provides: From b7518324ef564ccf719ddc11e378d59e171f92c3 Mon Sep 17 00:00:00 2001 From: Josh Heyer <63653723+josh-heyer@users.noreply.github.com> Date: Thu, 18 Mar 2021 10:35:58 -0600 Subject: [PATCH 17/28] Use remark-admonitions plugin to handle admonitions in normalization (#1085) * use remark-admonitions plugin to rewrite notes, misc cleanup Ramming this through 'cause need it for #1083 Former-commit-id: 3e595c9832d6e9158c772389b16aef0be4e3c68e --- scripts/normalize/lib/note-rerewriter.js | 82 ------------------------ scripts/normalize/lib/note-rewriter.js | 17 +++-- scripts/normalize/lib/relativelinks.js | 2 +- scripts/normalize/lib/strip-image-alt.js | 11 ++++ scripts/normalize/markdown.js | 9 ++- 5 files changed, 32 insertions(+), 89 deletions(-) delete mode 100644 scripts/normalize/lib/note-rerewriter.js create mode 100644 scripts/normalize/lib/strip-image-alt.js diff --git a/scripts/normalize/lib/note-rerewriter.js b/scripts/normalize/lib/note-rerewriter.js deleted file mode 100644 index 771069ac3f8..00000000000 --- a/scripts/normalize/lib/note-rerewriter.js +++ /dev/null @@ -1,82 +0,0 @@ -// Rewrite the converted RST notes to Admonitions - -const visit = require('unist-util-visit') -const mdast2string = require('mdast-util-to-string') -const squeeze = require('mdast-squeeze-paragraphs') - -function noteReRewriter() { - const compiler = this.Compiler; - if (compiler?.prototype?.visitors) - attachCompiler(compiler); - - return (tree, file) => { - visit(tree, ["blockquote", "paragraph"], (node, index, parent) => { - if (node.type === "paragraph" && parent.type === "blockquote") return; - - const {titleNode, titleParent} = extractNoteTitle(node); - if (!titleNode) return; - - let children = node.children; - trimChildren({children}); - while (!mdast2string({children}).trim() && index+1 < parent.children.length) - { - children = [parent.children[index+1]]; - parent.children.splice(index+1, 1); - trimChildren({children}); - } - - // wrap in paragraph if splitting a paragraph - if (titleParent === node) - { - children = [{ - type: "paragraph", - children, - }]; - } - - squeeze({children}); - - const replacement = { - type: "admonition", - keyword: "note", - children, - }; - parent.children.splice(index, 1, replacement); - }); - }; - - function trimChildren(parent) - { - while (parent.children?.length && !parent.children[0]?.value) - parent = parent.children[0]; - if (parent.children.length) - parent.children[0].value = parent.children[0].value.replace(/^[ :]+/, ''); - } - - function extractNoteTitle(parent) - { - while (parent.children?.length && !(parent.children[0]?.type === "strong" && /^ *note:? *$/i.test(mdast2string(parent.children[0])))) - parent = parent.children[0]; - return { - titleNode: parent.children?.splice(0,1)[0], - titleParent: parent - }; - } - - function attachCompiler(compiler) - { - const proto = compiler.prototype; - - proto.visitors = Object.assign({}, proto.visitors, { - "admonition": stringify, - }); - } - - function stringify(node) - { - const lines = this.block(node).split('\n'); - return "!!! Note\n" + lines.map(l => l.length ? " " + l : l).join('\n'); - } -} - -module.exports = noteReRewriter; \ No newline at end of file diff --git a/scripts/normalize/lib/note-rewriter.js b/scripts/normalize/lib/note-rewriter.js index 8051287a9fa..a78d9184a72 100644 --- a/scripts/normalize/lib/note-rewriter.js +++ b/scripts/normalize/lib/note-rewriter.js @@ -1,4 +1,4 @@ -// Rewrite the not-very-well-converted RST alerts to markdown quotes with titles in bold +// Rewrite the not-very-well-converted RST alerts to admonitions const visit = require('unist-util-visit') const mdast2string = require('mdast-util-to-string') @@ -21,10 +21,19 @@ function transformer(tree, file) { }); replacement = { - type: "blockquote", + type: "admonition", + keyword: "Note", + quoted: false, + "indentSize": 4, children: [ - { type: "strong", children: [{type: 'text', value: mdast2string({children: title}) + ':'}], }, - ...node.children.filter(node => !node.type.startsWith("jsx")), + { + type: "admonition-heading", + children: [{ type: "text", value: mdast2string({children: title})}] + }, + { + type: "admonition-content", + children: node.children.filter(node => !node.type.startsWith("jsx")), + }, ], }; }); diff --git a/scripts/normalize/lib/relativelinks.js b/scripts/normalize/lib/relativelinks.js index dec18f584d7..d3992500932 100644 --- a/scripts/normalize/lib/relativelinks.js +++ b/scripts/normalize/lib/relativelinks.js @@ -130,7 +130,7 @@ const index = { keyId: (id) => { - return '#' + slugger.slug(id.replace(/^[^#]*#+/, '') + return '#' + slugger.slug(decodeURIComponent(id.replace(/^[^#]*#+/, '')) .replace(/[_-]/g, "") .replace(/\s+/g, "")) .toLowerCase(); diff --git a/scripts/normalize/lib/strip-image-alt.js b/scripts/normalize/lib/strip-image-alt.js new file mode 100644 index 00000000000..09ec091ecd3 --- /dev/null +++ b/scripts/normalize/lib/strip-image-alt.js @@ -0,0 +1,11 @@ +const visit = require('unist-util-visit') +const mdast2string = require('mdast-util-to-string') + +module.exports = () => transformer; + +function transformer(tree, file) { + + visit(tree, "image", (node, index, parent) => { + node.alt = node.alt.replace(/^ ?\*|\* ?$/g, ''); + }); +} \ No newline at end of file diff --git a/scripts/normalize/markdown.js b/scripts/normalize/markdown.js index 6ce91ac5622..2b028413caa 100644 --- a/scripts/normalize/markdown.js +++ b/scripts/normalize/markdown.js @@ -13,10 +13,12 @@ const remarkMdxEmbeddedHast = require('./lib/mast-embedded-hast') const {linkTargetIndexer, relativeLinkRewriter, index} = require('./lib/relativelinks') const remarkStringify = require('remark-stringify') const noEscapeImageAlt = require('./lib/no-escape-image-alt') +//const stripImageAlt = require('./lib/strip-image-alt') const tableFormatter = require('./lib/table-formatter') const {docs1LinkRewriter, linkStats} = require('./lib/docs1-link-rewriter') -const noteRewriter = require('./lib/note-rerewriter.js') +const noteRewriter = require('./lib/note-rewriter.js') const codeInTables = require('../../src/plugins/code-in-tables.js') +const admonitions = require('remark-admonitions') ;(async () => { @@ -33,6 +35,7 @@ example: const parser = unified() .use(remarkParse) + .use(admonitions, { tag: '!!!', icons: 'none', infima: true }) .use(mdx) .use(remarkFrontmatter) const indexing = unified() @@ -45,13 +48,15 @@ example: .use(relativeLinkRewriter) .use(tableFormatter) .use(codeInTables) - .use(docs1LinkRewriter); + .use(docs1LinkRewriter) +// .use(stripImageAlt) const compiler = unified() .use(remarkParse) .use(remarkStringify, {emphasis: '*', bullet: '-', fences: true}) .use(mdx) .use(remarkFrontmatter) .use(remarkMdxEmbeddedHast) + .use(admonitions, { tag: '!!!', icons: 'none', infima: true }) .use(noteRewriter) .use(codeInTables) .use(noEscapeImageAlt) From 575bb979a3ecef88e00c83225ec89dcbff238746 Mon Sep 17 00:00:00 2001 From: Josh Heyer <63653723+josh-heyer@users.noreply.github.com> Date: Thu, 18 Mar 2021 11:08:02 -0600 Subject: [PATCH 18/28] link-rewrite uses semver-compare (#1086) Needed for #1083 Former-commit-id: 8fd6afe38bd732aa32e8e62ffecd2bcfd2bb7d56 --- package.json | 1 + yarn.lock | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/package.json b/package.json index 47dd7cb558e..7fad275c6bc 100644 --- a/package.json +++ b/package.json @@ -83,6 +83,7 @@ "remark-frontmatter": "^2.0.0", "remark-mdx": "^1.6.22", "remark-stringify": "^8.1.1", + "semver-compare": "^1.0.0", "to-vfile": "^6.1.0", "typescript": "^4.1.3" }, diff --git a/yarn.lock b/yarn.lock index c4c9076fb75..252dba0d344 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12545,6 +12545,11 @@ selfsigned@^1.10.8: dependencies: node-forge "^0.10.0" +semver-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" + integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= + semver-diff@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" From b447853681de4be1cb9379a95ec2601b6907dac8 Mon Sep 17 00:00:00 2001 From: Josh Heyer <63653723+josh-heyer@users.noreply.github.com> Date: Thu, 18 Mar 2021 17:10:46 +0000 Subject: [PATCH 19/28] normalize: rewrite links, notes, tables, stdize markdown Former-commit-id: 38a32d34e623c65fb5299292c07b57cf07e643a5 --- .../eprs/6.2/01_introduction/01_whats_new.mdx | 5 +- .../01_introduction/02_conventions_used.mdx | 1 - .../03_certified_supported_versions.mdx | 4 +- .../04_supported_jdk_versions.mdx | 23 +- .../docs/eprs/6.2/01_introduction/index.mdx | 34 +-- ...01_offloading_reporting_and_bi_queries.mdx | 1 - .../02_using_warm_standby.mdx | 1 - .../03_testing_systems_in_parallel.mdx | 1 - .../01_why_replication/04_migrating_data.mdx | 1 - .../05_write_availability.mdx | 1 - .../06_write_scalability.mdx | 1 - .../07_localized_data_access.mdx | 1 - .../02_overview/01_why_replication/index.mdx | 3 +- .../01_smr_mmr_comparison.mdx | 14 +- .../02_publications_and_subscriptions.mdx | 16 +- .../03_smr_replication.mdx | 1 - .../04_mmr_replication.mdx | 1 - .../05_asynchronous.mdx | 3 +- .../06_snapshot_and_synchronous.mdx | 22 +- .../07_snapshot_only_publications.mdx | 3 +- .../08_snapshot_replication.mdx | 22 +- .../09_sync_replication_trigger_based.mdx | 42 +--- .../01_requirements_and_restrictions.mdx | 15 +- .../02_logical_replication_slots.mdx | 5 +- .../03_streaming_replication_wal_sender.mdx | 16 +- .../04_replication_origin.mdx | 24 +- .../05_inmemory_caching.mdx | 5 +- .../10_sync_replication_log_based/index.mdx | 3 +- .../11_requirements_and_restrictions.mdx | 15 +- .../12_mmr_parallel_replication.mdx | 29 +-- .../13_table_filters.mdx | 73 ++---- .../index.mdx | 3 +- .../01_physical_components.mdx | 111 +++------ .../02_logical_components.mdx | 67 ++--- .../03_xdb_replication_system_examples.mdx | 17 +- .../index.mdx | 5 +- .../01_general_steps.mdx | 3 +- .../02_design_considerations.mdx | 5 +- ...ictions_on_replicated_database_objects.mdx | 46 +--- .../04_performance_considerations.mdx | 18 +- .../05_distributed_replication.mdx | 1 - .../04_design_replication_system/index.mdx | 3 +- .../docs/eprs/6.2/02_overview/index.mdx | 3 +- .../01_installing_with_stackbuilder.mdx | 81 +----- .../02_installing_from_cli.mdx | 50 +--- .../03_installing_rpm_package.mdx | 93 ++----- .../04_installing_xDB_sles_12_host.mdx | 24 +- .../05_post_installation_host_environment.mdx | 96 ++------ ...06_uninstalling_xdb_replication_server.mdx | 11 +- .../07_uninstalling_xdb_rpm_package.mdx | 5 +- .../docs/eprs/6.2/03_installation/index.mdx | 24 +- .../docs/eprs/6.2/04_intro_xdb_console.mdx | 50 +--- .../01_setting_heap_size_for_pub_and_sub.mdx | 7 +- ...sync_replication_with_log-based_method.mdx | 5 +- .../03_enable_access_to_database.mdx | 33 +-- .../04_preparing_pub_database.mdx | 231 +++++------------- .../05_preparing_sub_database.mdx | 81 ++---- .../06_verifying_host_accessibility.mdx | 93 +++---- .../01_prerequisites/index.mdx | 3 +- .../01_registering_publication_server.mdx | 49 ++-- .../02_adding_pub_database.mdx | 20 +- .../03_adding_publication.mdx | 18 +- ...schema_objects_created_for_publication.mdx | 50 ++-- .../02_creating_publication/index.mdx | 5 +- .../01_registering_subscription_server.mdx | 41 +--- .../02_adding_subscription_database.mdx | 44 +--- .../03_adding_subscription.mdx | 13 +- .../04_subscription_metadata_object.mdx | 9 +- .../03_creating_subscription/index.mdx | 3 +- .../01_perform_replication.mdx | 3 +- .../02_perform_sync_replication.mdx | 3 +- .../04_on_demand_replication/index.mdx | 5 +- .../01_updating_subscription_server.mdx | 5 +- .../02_updating_subscription_database.mdx | 20 +- .../03_updating_subscription.mdx | 3 +- .../04_enable_filters_on_subscription.mdx | 7 +- .../05_removing_subscription.mdx | 3 +- .../06_removing_subscription_database.mdx | 5 +- .../05_managing_subscription/index.mdx | 16 +- .../06_performing_switchover.mdx | 26 +- .../07_performing_failover.mdx | 3 +- .../01_optimizing_snapshot_replication.mdx | 55 +---- .../01_using_sql_statements.mdx | 53 +--- .../02_parallel_sync.mdx | 3 +- .../03_other_sync_configuration.mdx | 4 +- .../02_optimize_sync_replication/index.mdx | 18 +- .../08_optimizing_performance/index.mdx | 18 +- .../docs/eprs/6.2/05_smr_operation/index.mdx | 5 +- .../6.2/06_mmr_operation/01_pre_steps.mdx | 45 ++-- .../02_creating_publication_mmr.mdx | 47 ++-- .../03_creating_primary_nodes.mdx | 49 ++-- ...ontrol_schema_created_in_primary_nodes.mdx | 3 +- .../05_on_demand_replication_mmr.mdx | 28 +-- ...01_configuration_para_andtable_setting.mdx | 22 +- .../02_conflict_types.mdx | 20 +- .../03_conflict_detection.mdx | 3 +- .../04_conflict_resolution_strategies.mdx | 5 +- .../05_conflict_prevention_uniquness.mdx | 8 +- .../01_create_mmr_ready_sequence.mdx | 26 +- .../02_mmr_ready_example.mdx | 60 ++--- .../03_convert_to_mmr_ready.mdx | 7 +- .../04_convert_to_mmr_ready_eg.mdx | 60 ++--- .../index.mdx | 5 +- .../07_auto_conflict_resolution_eg.mdx | 40 ++- .../01_custom_conflict_handling_function.mdx | 19 +- ...ding_custom_conflict_handling_function.mdx | 33 +-- .../03_custom_conflict_handling_examples.mdx | 54 ++-- .../08_custom_conflict_handling/index.mdx | 3 +- .../01_find_conflict.mdx | 7 +- .../02_conflict_resolution_prep.mdx | 7 +- .../03_overview_correction_strategies.mdx | 23 +- ...04_manual_publication_table_correction.mdx | 79 +++--- .../05_correction_using_new_txn.mdx | 34 +-- .../06_correction_using_shadow_table_txn.mdx | 62 ++--- .../index.mdx | 20 +- .../01_finding_conflict.mdx | 18 +- .../02_conflict_resolution_for_log_based.mdx | 16 +- ...erview_correction_strategies_log_based.mdx | 25 +- ...publication_table_correction_log_based.mdx | 44 ++-- .../05_correction_using_new_txn_log_based.mdx | 25 +- .../index.mdx | 20 +- .../06_conflict_resolution/index.mdx | 3 +- .../07_view_conflict_history.mdx | 42 +--- .../08_update_conflict_resolution_options.mdx | 5 +- .../09_enable_disable_table_filters.mdx | 46 +--- .../6.2/06_mmr_operation/10_switching_pdn.mdx | 29 +-- .../6.2/06_mmr_operation/11_ensuring_ha.mdx | 28 +-- .../12_optimizing_performance_mmr.mdx | 5 +- .../docs/eprs/6.2/06_mmr_operation/index.mdx | 5 +- .../01_select_tables_wildcard_selector.mdx | 22 +- .../02_creating_schedule.mdx | 44 +--- .../03_managing_schedule.mdx | 11 +- .../04_view_replication_history.mdx | 72 +----- .../05_managing_history.mdx | 90 ++----- .../01_updating_publication_server.mdx | 35 +-- .../02_updating_pub_database.mdx | 22 +- .../03_updating_pub.mdx | 19 +- .../04_updating_table_filters_in_pub.mdx | 24 +- .../05_validating_publication.mdx | 94 ++----- .../06_removing_pub.mdx | 7 +- .../07_removing_pub_database.mdx | 9 +- .../06_managing_publication/index.mdx | 3 +- .../07_switching_controller_db.mdx | 20 +- .../01_ddl_change_replication.mdx | 14 +- ...l_change_replication_using_xdb_console.mdx | 5 +- .../08_replicating_ddl_changes/index.mdx | 100 ++------ .../09_offline_snapshot.mdx | 119 +++------ ...eplicating_postgres_partitioned_tables.mdx | 53 ++-- .../11_using_ssl_connections.mdx | 134 ++++------ .../eprs/6.2/07_common_operations/index.mdx | 18 +- .../eprs/6.2/08_xdb_cli/01_prereq_steps.mdx | 7 +- .../eprs/6.2/08_xdb_cli/02_general_use.mdx | 71 ++---- .../03_xdb_cli_commands/01_get_help.mdx | 3 +- .../03_xdb_cli_commands/02_print_version.mdx | 3 +- .../03_print_xdb_server_version.mdx | 3 +- .../04_encrypt_password.mdx | 1 - .../05_printing_server_uptime.mdx | 3 +- .../06_add_pub_database.mdx | 84 ++----- .../07_printing_pub_db_id.mdx | 3 +- .../08_printing_pub_db_details.mdx | 16 +- .../09_printing_controller_db_id.mdx | 3 +- .../10_printing_pdn_node_db_id.mdx | 3 +- .../11_updating_publication_database.mdx | 24 +- .../12_removing_publication_database.mdx | 7 +- .../13_get_tables_for_new_publication.mdx | 3 +- .../14_creating_publication_cli.mdx | 40 ++- .../15_print_publications_list.mdx | 5 +- .../16_print_publications_tables_list.mdx | 5 +- .../17_print_publications_filters_list.mdx | 9 +- .../18_adding_tables_to_publication.mdx | 32 +-- .../19_removing_tables_from_publication.mdx | 22 +- .../20_adding_tablefilters_to_publication.mdx | 28 +-- ...1_updating_tablefilters_to_publication.mdx | 11 +- ...2_removing_tablefilters_to_publication.mdx | 11 +- .../23_print_conflict_resolution_strategy.mdx | 18 +- ..._updating_conflict_resolution_strategy.mdx | 26 +- .../03_xdb_cli_commands/25_set_pdn_node.mdx | 7 +- .../03_xdb_cli_commands/26_set_controller.mdx | 7 +- .../27_validate_a_publication.mdx | 7 +- .../28_validate_all_publications.mdx | 7 +- .../29_removing_a_publication.mdx | 7 +- .../30_replicating_ddl_changes_cli.mdx | 5 +- .../31_adding_subscription_db.mdx | 13 +- .../32_printing_subscription_db_id.mdx | 3 +- .../33_printing_subscription_db_details.mdx | 16 +- .../34_updating_subscription_database_cli.mdx | 11 +- .../35_removing_subscription_database_cli.mdx | 5 +- .../36_creating_subscription_cli.mdx | 9 +- .../37_print_subscription_list.mdx | 3 +- ...ilters_on_subscription_or_non_pdn_node.mdx | 25 +- ...ilters_on_subscription_or_non_pdn_node.mdx | 15 +- .../40_taking_smr_snapshot.mdx | 7 +- .../41_taking_mmr_snapshot.mdx | 5 +- .../42_perform_synchronization.mdx | 33 +-- .../43_configure_smr_schedule.mdx | 11 +- .../44_configure_mmr_schedule.mdx | 22 +- .../03_xdb_cli_commands/45_print_schedule.mdx | 5 +- .../46_updating_subscription_cli.mdx | 9 +- .../47_removing_subscription_cli.mdx | 5 +- ...48_schedule_shadow_table_history_clean.mdx | 15 +- .../49_clean_shadow_table_history.mdx | 20 +- .../50_clean_replication_history.mdx | 5 +- .../51_clean_all_replication_history.mdx | 5 +- .../08_xdb_cli/03_xdb_cli_commands/index.mdx | 16 +- .../docs/eprs/6.2/08_xdb_cli/index.mdx | 7 +- ...lation_and_configuratiin_datavalidator.mdx | 59 ++--- .../02_perform_datavalidation.mdx | 29 ++- .../docs/eprs/6.2/09_data_validator/index.mdx | 29 +-- .../01_permitted_conf_and_permutations.mdx | 7 +- .../01_permitted_conf_and_permutations.mdx | 7 +- .../02_upgrading_with_gui_installer.mdx | 17 +- .../03_upgrading_with_xdb_rpm_package.mdx | 58 ++--- .../04_updating_sub_and_pub_ports.mdx | 20 +- .../02_upgrading_to_xdb6_2/index.mdx | 3 +- .../01_error_messages.mdx | 67 +++-- .../02_where_to_look_for_errors.mdx | 47 ++-- .../03_common_problems_checklist.mdx | 19 +- .../04_troubleshooting_areas.mdx | 135 +++++----- .../03_resolving_problems/index.mdx | 3 +- .../01_controlling_logging_level.mdx | 70 +----- .../02_replacing_null_characters.mdx | 33 +-- .../03_schema_migration_options.mdx | 14 +- ...04_replicate_oracle_partitioned_tables.mdx | 53 +--- .../05_specify_custom_url_for_oracle_jdbc.mdx | 18 +- .../06_snapshot_replication_options.mdx | 14 +- .../07_assign_ip_adress_for_rmi.mdx | 20 +- .../08_using_pgagent_job_scheduling.mdx | 42 +--- .../09_forcing_shadow_table_cleanup.mdx | 16 +- .../10_setting_event_history_cleanup.mdx | 3 +- ...1_ddl_change_replication_table_locking.mdx | 14 +- ...2_persisting_zero_txn_replication_hist.mdx | 14 +- ..._of_table_level_user_privileges_on_mmr.mdx | 16 +- ..._of_table_level_user_privileges_on_smr.mdx | 29 +-- .../15_log_based_sync_options.mdx | 18 +- ...pache_dbcp_connection_validation_query.mdx | 14 +- .../index.mdx | 19 +- .../02_encrypt_password_inconf_file.mdx | 9 +- .../03_writing_cron_exp.mdx | 31 ++- ...y_constraints_for_snapshot_replication.mdx | 1 - .../05_quoted_identifiers.mdx | 1 - ...ating_sql_server_sql_variant_data_type.mdx | 25 +- .../index.mdx | 3 +- .../05_service_pack_maintenance.mdx | 1 - .../docs/eprs/6.2/10_appendix/index.mdx | 3 +- product_docs/docs/eprs/6.2/index.mdx | 2 +- 245 files changed, 1726 insertions(+), 4060 deletions(-) diff --git a/product_docs/docs/eprs/6.2/01_introduction/01_whats_new.mdx b/product_docs/docs/eprs/6.2/01_introduction/01_whats_new.mdx index 4913c2425e2..4397735f724 100644 --- a/product_docs/docs/eprs/6.2/01_introduction/01_whats_new.mdx +++ b/product_docs/docs/eprs/6.2/01_introduction/01_whats_new.mdx @@ -4,10 +4,9 @@ title: "What’s New" - The following features have been added to xDB Replication Server version 6.1 to create xDB Replication Server version 6.2: > - Registering your xDB Replication Server product with an EnterpriseDB product license key is no longer required. Thus, all components related to registering the product have been removed. The following are the removed components: 1) the Product Registration dialog box accessed from the xDB Replication Console Help menu, 2) the `license_key` parameter located in the xDB Replication Configuration file, and 3) the xDB Replication Server CLI `registerkey` command. -> - Partitioned tables created using the declarative partitioning feature of PostgreSQL and Advanced Server version 10 and later can now be replicated in a log-based single-master or multi-master replication system. For more information, see [Replicating Postgres Partitioned Tables](../07_common_operations/#replicating_postgres_partitioned_tables). -> - In a single-master replication system, removal of a table from a publication that has one or more existing subscriptions is now permitted as long as the table to be removed is not the parent referenced in a foreign key constraint from a child table that is not being removed as well. Previously, no tables from a publication in a single-master replication system could be removed if there are existing subscriptions. For more information, see [Removing Tables from a Publication](../07_common_operations/06_managing_publication/#remove_tables_from_pub). +> - Partitioned tables created using the declarative partitioning feature of PostgreSQL and Advanced Server version 10 and later can now be replicated in a log-based single-master or multi-master replication system. For more information, see [Replicating Postgres Partitioned Tables](../07_common_operations/10_replicating_postgres_partitioned_tables/#replicating_postgres_partitioned_tables). +> - In a single-master replication system, removal of a table from a publication that has one or more existing subscriptions is now permitted as long as the table to be removed is not the parent referenced in a foreign key constraint from a child table that is not being removed as well. Previously, no tables from a publication in a single-master replication system could be removed if there are existing subscriptions. For more information, see [Removing Tables from a Publication](../07_common_operations/06_managing_publication/03_updating_pub/#remove_tables_from_pub). > - Versions 11 and 12 of PostgreSQL and Advanced Server are now supported. diff --git a/product_docs/docs/eprs/6.2/01_introduction/02_conventions_used.mdx b/product_docs/docs/eprs/6.2/01_introduction/02_conventions_used.mdx index 3ca963ffd2e..32bfa555271 100644 --- a/product_docs/docs/eprs/6.2/01_introduction/02_conventions_used.mdx +++ b/product_docs/docs/eprs/6.2/01_introduction/02_conventions_used.mdx @@ -4,7 +4,6 @@ title: "Conventions Used in this Guide" - The following is a list of other conventions used throughout this document. - This guide applies to both Linux and Windows systems. Directory paths are presented in the Linux format with forward slashes. When working on Windows systems, start the directory path with the drive letter followed by a colon and substitute back slashes for forward slashes. diff --git a/product_docs/docs/eprs/6.2/01_introduction/03_certified_supported_versions.mdx b/product_docs/docs/eprs/6.2/01_introduction/03_certified_supported_versions.mdx index bbcb9f6077d..f6864166dfc 100644 --- a/product_docs/docs/eprs/6.2/01_introduction/03_certified_supported_versions.mdx +++ b/product_docs/docs/eprs/6.2/01_introduction/03_certified_supported_versions.mdx @@ -2,8 +2,6 @@ title: "Certified and Supported Product Versions" --- - - The following database product versions may be used with xDB Replication Server: - PostgreSQL versions 9.6, 10, 11, 12, and 13 @@ -15,7 +13,7 @@ The following database product versions may be used with xDB Replication Server: - SQL Server 2012 version 11.0.6020.0 has been explicitly certified. Newer minor versions in the 11.0 line are supported as well. - SQL Server 2014 version 12.0.5000.0 has been explicitly certified. Newer minor versions in the 12.0 line are supported as well. -Contact your EnterpriseDB Account Manager or if you require support for other platforms. +Contact your EnterpriseDB Account Manager or [sales@enterprisedb.com](mailto:sales@enterprisedb.com) if you require support for other platforms. **A Note Regarding Oracle RAC and Oracle Exadata** diff --git a/product_docs/docs/eprs/6.2/01_introduction/04_supported_jdk_versions.mdx b/product_docs/docs/eprs/6.2/01_introduction/04_supported_jdk_versions.mdx index 12500f1c95a..a076b84d9ea 100644 --- a/product_docs/docs/eprs/6.2/01_introduction/04_supported_jdk_versions.mdx +++ b/product_docs/docs/eprs/6.2/01_introduction/04_supported_jdk_versions.mdx @@ -2,22 +2,17 @@ title: "Supported JDK Versions" --- - - The xDB Replication Server is certified to work with the following Java platforms: -
      Certified Java Platforms
      Operating SystemsJDK Versions

      CentOS 7 and 8

      • Red Hat OpenJDK 7
      • Red Hat OpenJDK 8
      PPCLE RHEL7

      Red Hat OpenJDK 8

      RHEL 7

      • Red Hat OpenJDK 7
      • Red Hat OpenJDK 8
      • Oracle JDK 7
      • Oracle JDK 8

      Windows 2012 R2, 2016, and 2019

      • Red Hat OpenJDK 7
      • Red Hat OpenJDK 8
      Debian 10

      Red Hat OpenJDK 11

      +| **Operating Systems** | **JDK Versions** | +| --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | +| `CentOS 7 and 8`
      | - Red Hat OpenJDK 7
      - Red Hat OpenJDK 8
      | +| `PPCLE RHEL7` |


      Red Hat OpenJDK 8

      | +| `RHEL 7`
      | - Red Hat OpenJDK 7
      - Red Hat OpenJDK 8
      - Oracle JDK 7
      - Oracle JDK 8
      | +| `Windows 2012 R2, 2016, and 2019`
      | - Red Hat OpenJDK 7
      - Red Hat OpenJDK 8
      | +| `Debian 10` |


      Red Hat OpenJDK 11

      | **Certified Java Platforms** -
      - -
      - -Note - -
      - -EDB Postgres Replication Server 6.2 is no longer supported on `CentOS/RHEL/OEL 6.x` platforms. It is strongly recommended that EDB products running on these platforms should be migrated to a supported platform. - -
      +!!! Note + EDB Postgres Replication Server 6.2 is no longer supported on `CentOS/RHEL/OEL 6.x` platforms. It is strongly recommended that EDB products running on these platforms should be migrated to a supported platform. diff --git a/product_docs/docs/eprs/6.2/01_introduction/index.mdx b/product_docs/docs/eprs/6.2/01_introduction/index.mdx index 6e6d47c91ec..1ee5c22a4c4 100644 --- a/product_docs/docs/eprs/6.2/01_introduction/index.mdx +++ b/product_docs/docs/eprs/6.2/01_introduction/index.mdx @@ -4,7 +4,6 @@ title: "Introduction" - This document describes the installation, configuration, architecture, and operation of the EDB xDB Replication Server. EDB xDB (cross database) Replication Server (referred to hereafter as xDB Replication Server) is an asynchronous replication system available for PostgreSQL and for EDB Postgres Advanced Server. The latter will be referred to simply as Advanced Server. xDB Replication Server can be used to implement replication systems based on either of two different replication models – single-master (primary-to-secondary) replication or multi-master replication. @@ -26,17 +25,8 @@ The following are some combinations of cross database replications that xDB Repl - From PostgreSQL to Oracle (WAL mode) - From PostgreSQL to Oracle (trigger mode) -
      - -
      - -Note - -
      - -Oracle Real Application Clusters (RAC) and Oracle Exadata are not supported by xDB Replication Server. These Oracle products have not been evaluated nor certified with xDB Replication Server. - -
      +!!! Note + Oracle Real Application Clusters (RAC) and Oracle Exadata are not supported by xDB Replication Server. These Oracle products have not been evaluated nor certified with xDB Replication Server. For multi-master replication, xDB Replication Server supports the following configurations: @@ -46,18 +36,18 @@ For multi-master replication, xDB Replication Server supports the following conf The reader is assumed to have basic SQL knowledge and basic Oracle, SQL Server, or PostgreSQL database administration skills (whichever are applicable) so that databases, users, schemas, and tables can be created and database object privileges assigned. - The remainder of Chapter 1 describes conventions used throughout this user’s guide along with suggested sections to read based upon your purpose for using this guide. -- Chapter [Overview](02_overview/#overview) provides an overview of xDB Replication Server including basic replication concepts and definitions, architecture and components of xDB Replication Server, and design guidelines for setting up a replication system. -- Chapter [Installation and Uninstallation](03_installation/#installation) gives instructions for installing and uninstalling xDB Replication Server. -- Chapter [Introduction to the xDB Replication Console](#intro_xdb_console) provides an overview of the xDB Replication Console, the graphical user interface for using xDB Replication Server. -- Chapter [Single-Master Replication Operation](05_smr_operation/#smr_operation) gives instructions for the configuration and operation of xDB Replication Server for single-master replication systems. -- Chapter [Multi-Master Replication Operation](06_mmr_operation/#mmr_operation) gives instructions for the configuration and operation of xDB Replication Server for multi-master replication systems. -- Chapter [Common Operations](07_common_operations/#common_operations) describes operations that are common to both single-master and multi-master replication systems. -- Chapter [xDB Replication Server Command Line Interface](08_xdb_cli/#xdb_cli) describes the xDB Replication Server Command Line Interface, an alternative to the graphical user interface for xDB Replication Server configuration and management. -- Chapter [Data Validator](09_data_validator/#data_validator) gives instructions for configuration and usage of the Data Validator. -- Chapter [Appendix](10_appendix/#appendix) is an appendix containing troubleshooting tips, a list of error messages, their causes and resolutions, permitted combinations of database servers in a replication system, xDB Replication Server product upgrade procedures, and other miscellaneous technical information. +- Chapter [Overview](../02_overview/#overview) provides an overview of xDB Replication Server including basic replication concepts and definitions, architecture and components of xDB Replication Server, and design guidelines for setting up a replication system. +- Chapter [Installation and Uninstallation](../03_installation/#installation) gives instructions for installing and uninstalling xDB Replication Server. +- Chapter [Introduction to the xDB Replication Console](../04_intro_xdb_console/#intro_xdb_console) provides an overview of the xDB Replication Console, the graphical user interface for using xDB Replication Server. +- Chapter [Single-Master Replication Operation](../05_smr_operation/#smr_operation) gives instructions for the configuration and operation of xDB Replication Server for single-master replication systems. +- Chapter [Multi-Master Replication Operation](../06_mmr_operation/#mmr_operation) gives instructions for the configuration and operation of xDB Replication Server for multi-master replication systems. +- Chapter [Common Operations](../07_common_operations/#common_operations) describes operations that are common to both single-master and multi-master replication systems. +- Chapter [xDB Replication Server Command Line Interface](../08_xdb_cli/#xdb_cli) describes the xDB Replication Server Command Line Interface, an alternative to the graphical user interface for xDB Replication Server configuration and management. +- Chapter [Data Validator](../09_data_validator/#data_validator) gives instructions for configuration and usage of the Data Validator. +- Chapter [Appendix](../10_appendix/#appendix) is an appendix containing troubleshooting tips, a list of error messages, their causes and resolutions, permitted combinations of database servers in a replication system, xDB Replication Server product upgrade procedures, and other miscellaneous technical information.
      -whats\_new conventions\_used certified\_supported\_versions supported\_jdk\_versions +whats_new conventions_used certified_supported_versions supported_jdk_versions
      diff --git a/product_docs/docs/eprs/6.2/02_overview/01_why_replication/01_offloading_reporting_and_bi_queries.mdx b/product_docs/docs/eprs/6.2/02_overview/01_why_replication/01_offloading_reporting_and_bi_queries.mdx index a25c1fc61f4..1f9e76c2350 100644 --- a/product_docs/docs/eprs/6.2/02_overview/01_why_replication/01_offloading_reporting_and_bi_queries.mdx +++ b/product_docs/docs/eprs/6.2/02_overview/01_why_replication/01_offloading_reporting_and_bi_queries.mdx @@ -4,7 +4,6 @@ title: "Offloading Reporting and Business Intelligence Queries" - In this use case, users take all or just a subset of data from a production OLTP system and replicate it to another database whose sole purpose is to support reporting queries. This can have multiple benefits: 1. Reporting loads are removed from the OLTP system, improving transaction processing performance. diff --git a/product_docs/docs/eprs/6.2/02_overview/01_why_replication/02_using_warm_standby.mdx b/product_docs/docs/eprs/6.2/02_overview/01_why_replication/02_using_warm_standby.mdx index c0c2c52a054..19b3448ae3b 100644 --- a/product_docs/docs/eprs/6.2/02_overview/01_why_replication/02_using_warm_standby.mdx +++ b/product_docs/docs/eprs/6.2/02_overview/01_why_replication/02_using_warm_standby.mdx @@ -4,5 +4,4 @@ title: "Using Warm Standby Servers" - When many organizations wish to improve the availability of their data, a cost effective solution is often the use of warm standby servers. These are database servers kept up to date with the online system through replication that can be brought online quickly in the event of a failure in the production system. Warm standby servers can also be used for regular maintenance by gracefully switching over to the standby server so that the production server can be brought offline for regular maintenance. diff --git a/product_docs/docs/eprs/6.2/02_overview/01_why_replication/03_testing_systems_in_parallel.mdx b/product_docs/docs/eprs/6.2/02_overview/01_why_replication/03_testing_systems_in_parallel.mdx index 9eeb14336af..97919011b84 100644 --- a/product_docs/docs/eprs/6.2/02_overview/01_why_replication/03_testing_systems_in_parallel.mdx +++ b/product_docs/docs/eprs/6.2/02_overview/01_why_replication/03_testing_systems_in_parallel.mdx @@ -4,5 +4,4 @@ title: "Testing Systems in Parallel" - Often times, upgrading or moving to a new database system requires that the old and new systems be up and running in parallel to allow for testing and comparing results in real time. Replication can be employed in this use case and is frequently used in development and testing environments. diff --git a/product_docs/docs/eprs/6.2/02_overview/01_why_replication/04_migrating_data.mdx b/product_docs/docs/eprs/6.2/02_overview/01_why_replication/04_migrating_data.mdx index fd106d31d02..66428f24634 100644 --- a/product_docs/docs/eprs/6.2/02_overview/01_why_replication/04_migrating_data.mdx +++ b/product_docs/docs/eprs/6.2/02_overview/01_why_replication/04_migrating_data.mdx @@ -4,7 +4,6 @@ title: "Migrating Data" - Similar to running in parallel, is the situation where data may be migrated from one system to another in a sort of *seeding* operation. Replication can be very effective in this situation by quickly copying data. Some reasons to consider multi-master replication include the following: diff --git a/product_docs/docs/eprs/6.2/02_overview/01_why_replication/05_write_availability.mdx b/product_docs/docs/eprs/6.2/02_overview/01_why_replication/05_write_availability.mdx index 727feb86af6..10204d01506 100644 --- a/product_docs/docs/eprs/6.2/02_overview/01_why_replication/05_write_availability.mdx +++ b/product_docs/docs/eprs/6.2/02_overview/01_why_replication/05_write_availability.mdx @@ -4,5 +4,4 @@ title: "Write Availability" - In single-master replication, only the primary database is available for writes. The secondary databases are read-only for applications. If the replicated target databases must be available for write access as well, multi-master replication can be employed for the same use cases as outlined for single-master replication, but with the additional advantage of write access to the secondary. diff --git a/product_docs/docs/eprs/6.2/02_overview/01_why_replication/06_write_scalability.mdx b/product_docs/docs/eprs/6.2/02_overview/01_why_replication/06_write_scalability.mdx index fac4b9ac26c..b8dd4666e33 100644 --- a/product_docs/docs/eprs/6.2/02_overview/01_why_replication/06_write_scalability.mdx +++ b/product_docs/docs/eprs/6.2/02_overview/01_why_replication/06_write_scalability.mdx @@ -4,5 +4,4 @@ title: "Write Scalability" - In write-intensive applications, multi-master replication allows you to utilize multiple database servers on separate hosts to process write transactions independently of each other on their own primary databases. Changes can then be reconciled across primary databases according to your chosen schedule. diff --git a/product_docs/docs/eprs/6.2/02_overview/01_why_replication/07_localized_data_access.mdx b/product_docs/docs/eprs/6.2/02_overview/01_why_replication/07_localized_data_access.mdx index 2d44a157a1b..7622d54f843 100644 --- a/product_docs/docs/eprs/6.2/02_overview/01_why_replication/07_localized_data_access.mdx +++ b/product_docs/docs/eprs/6.2/02_overview/01_why_replication/07_localized_data_access.mdx @@ -4,5 +4,4 @@ title: "Localized Data Access" - In a geographically dispersed application, local access to the database can be provided to regions of clients. Having the database servers physically close to clients can reduce latency with the database. Multi-master replication allows you to employ a WAN connected network of primary databases that can be geographically close to groups of clients, yet maintain data consistency across primary databases. diff --git a/product_docs/docs/eprs/6.2/02_overview/01_why_replication/index.mdx b/product_docs/docs/eprs/6.2/02_overview/01_why_replication/index.mdx index bdfe0107ef3..b845a87dfdf 100644 --- a/product_docs/docs/eprs/6.2/02_overview/01_why_replication/index.mdx +++ b/product_docs/docs/eprs/6.2/02_overview/01_why_replication/index.mdx @@ -4,13 +4,12 @@ title: "Why Use Replication" - Replication of data can be employed in a variety of use cases in organizations where it is important to use the same data in multiple settings. This allows users to work with ‘real’ data that will yield ‘real’ results that are reliable in more than one setting. Support of both single-master and multi-master replication gives xDB Replication Server a broad range of supported use cases. Some of the more popular uses of single-master replication include the following:
      -offloading\_reporting\_and\_bi\_queries using\_warm\_standby testing\_systems\_in\_parallel migrating\_data write\_availability write\_scalability localized\_data\_access +offloading_reporting_and_bi_queries using_warm_standby testing_systems_in_parallel migrating_data write_availability write_scalability localized_data_access
      diff --git a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/01_smr_mmr_comparison.mdx b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/01_smr_mmr_comparison.mdx index cb03b6d4cf5..11f21326332 100644 --- a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/01_smr_mmr_comparison.mdx +++ b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/01_smr_mmr_comparison.mdx @@ -4,7 +4,6 @@ title: "Comparison of Single-Master and Multi-Master Replication" - In write-intensive applications, multi-master replication allows you to utilize multiple database servers on separate hosts to process write transactions independently of each other on their own primary databases. Changes can then be reconciled across primary databases according to your chosen schedule. There are two models of replication systems supported by xDB Replication Server: @@ -27,14 +26,5 @@ For multi-master replication, the participating database servers in a given mult - Advanced Servers operating in PostgreSQL compatible mode - Advanced Servers operating in Oracle compatible mode -
      - -
      - -Note - -
      - -A given database cannot simultaneously participate in both a single-master replication system and a multi-master replication system. - -
      +!!! Note + A given database cannot simultaneously participate in both a single-master replication system and a multi-master replication system. diff --git a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/02_publications_and_subscriptions.mdx b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/02_publications_and_subscriptions.mdx index f2fd31d5a95..e1e285cb05e 100644 --- a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/02_publications_and_subscriptions.mdx +++ b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/02_publications_and_subscriptions.mdx @@ -4,7 +4,6 @@ title: "Publications and Subscriptions" - xDB Replication Server uses an architecture called *publish* and *subscribe*. The data to be made available for copying by a replication system is defined as a publication. To get a copy of that data, you must `subscribe` to that publication. The manner in which you subscribe is slightly different for single-master and multi-master replication systems. In xDB Replication Server a publication is defined as a named set of tables and views within a database. The database that contains the publication is called the publication database of that publication. @@ -16,21 +15,12 @@ Similar to a single-master replication system, when creating a multi-master repl In a single-master replication system, replication is said to occur when xDB Replication Server initiates and completes either of the following processes: 1. applies changes that have been made to rows in the publication since the last replication occurred, to rows in tables of the subscription database (called synchronization); or -2. copies rows of the publication to empty tables of the subscription database (called a snapshot). See [Snapshot and Synchronization Overview](../../02_overview/02_replication_concepts_and_definitions/#snapshot_and_synchronous) for further discussion on snapshots and synchronization. +2. copies rows of the publication to empty tables of the subscription database (called a snapshot). See [Snapshot and Synchronization Overview](06_snapshot_and_synchronous/#snapshot_and_synchronous) for further discussion on snapshots and synchronization. The subscription tables are the tables in the subscription database created from corresponding tables or views in the publication. -
      - -
      - -Note - -
      - -In a single-master replication system xDB Replication Server creates a table in the subscription database for each view contained in the publication. - -
      +!!! Note + In a single-master replication system xDB Replication Server creates a table in the subscription database for each view contained in the publication. In a multi-master replication system, the concept and definition of replication is nearly identical to a single-master replication system with the following modifications: diff --git a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/03_smr_replication.mdx b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/03_smr_replication.mdx index 5609c885bc6..7e72e181b5c 100644 --- a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/03_smr_replication.mdx +++ b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/03_smr_replication.mdx @@ -4,7 +4,6 @@ title: "Single-Master (Primary-to-secondary) Replication" - xDB Replication Server performs primary-to-secondary replication when a single-master replication system is implemented. The publication is the master and the subscription is the secondary. In a primary-to-secondary relationship, changes are propagated in one direction only, from the master to the secondary. Generally, changes must not be made to the definitions of the publication tables or the subscription tables. If such changes are made to the publication tables, they are not propagated to the subscription and vice versa unless the DDL change replication feature is used as described in [Replicating DDL Changes](../../07_common_operations/08_replicating_ddl_changes/#replicating_ddl_changes). If changes are made to the table definitions without using the DDL change replication feature, there is a risk that future replication attempts may fail. diff --git a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/04_mmr_replication.mdx b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/04_mmr_replication.mdx index 5a0de156334..5e685917155 100644 --- a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/04_mmr_replication.mdx +++ b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/04_mmr_replication.mdx @@ -4,7 +4,6 @@ title: "Multi-Master Replication" - As an alternative to the single-master (primary-to-secondary) replication model, xDB Replication Server supports multi-master replication. The following definitions are used when referring to multi-master replication systems. diff --git a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/05_asynchronous.mdx b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/05_asynchronous.mdx index 3d29819efe4..9de3fed38bc 100644 --- a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/05_asynchronous.mdx +++ b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/05_asynchronous.mdx @@ -4,7 +4,6 @@ title: "Asynchronous" - xDB Replication Server performs replications asynchronously. The systems hosting the databases do not always have to be running continuously in order for successful replication to occur. If one system goes offline, replication resumes when it comes back online if there is still pending data to replicate. -In addition you can create a schedule for your replication system. xDB Replication Server initiates and performs replications regularly according to the assigned schedule. This allows you to run the replication system unattended. See [Creating a Schedule](../../07_common_operations/#creating_schedule) for directions on creating a schedule. +In addition you can create a schedule for your replication system. xDB Replication Server initiates and performs replications regularly according to the assigned schedule. This allows you to run the replication system unattended. See [Creating a Schedule](../../07_common_operations/02_creating_schedule/#creating_schedule) for directions on creating a schedule. diff --git a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/06_snapshot_and_synchronous.mdx b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/06_snapshot_and_synchronous.mdx index 3b404bd2012..75caec04d6c 100644 --- a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/06_snapshot_and_synchronous.mdx +++ b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/06_snapshot_and_synchronous.mdx @@ -4,7 +4,6 @@ title: "Snapshot and Synchronization Overview" - xDB Replication Server performs two different types of replications. These two main types are called snapshot replication and synchronization replication. In either method, the source tables refer to the tables from which the replication data is originating (the publication in a single-master replication system, or the primary node whose changes are being replicated to another primary node in a multi-master replication system). @@ -15,26 +14,17 @@ In snapshot replication, all existing rows in the target tables are deleted usin In synchronization replication, only the changes (inserts, updates, and deletions) to the rows in the source tables since the last replication are applied to the target tables. -
      - -
      - -Note - -
      - -Deletion of all rows in a source table executed by the `SQL TRUNCATE` command results in replication to the target tables only if the log-based method of synchronization replication is used. If the trigger-based method of synchronization replication is used, execution of the `TRUNCATE` command on a source table does not replicate the effect to the target tables. You must perform a snapshot from the source table to the target tables if the trigger-based method is used. (The difference between the trigger-based method and the log-based method is discussed as follows.) - -
      +!!! Note + Deletion of all rows in a source table executed by the `SQL TRUNCATE` command results in replication to the target tables only if the log-based method of synchronization replication is used. If the trigger-based method of synchronization replication is used, execution of the `TRUNCATE` command on a source table does not replicate the effect to the target tables. You must perform a snapshot from the source table to the target tables if the trigger-based method is used. (The difference between the trigger-based method and the log-based method is discussed as follows.) Synchronization replication is implemented using two different methods – the trigger-based method and the log-based method. -In the trigger-based method changes to rows in the source tables result in the firing of row-based triggers. These triggers record the changes in shadow tables. The changes recorded in the shadow tables are then periodically extracted from the shadow tables, converted to an in-memory data structure, and applied to the target tables by means of SQL statements executed using JDBC. See [Synchronization Replication with the Trigger-Based Method](../../02_overview/02_replication_concepts_and_definitions/#sync_replication_trigger_based) for information on the trigger-based method. +In the trigger-based method changes to rows in the source tables result in the firing of row-based triggers. These triggers record the changes in shadow tables. The changes recorded in the shadow tables are then periodically extracted from the shadow tables, converted to an in-memory data structure, and applied to the target tables by means of SQL statements executed using JDBC. See [Synchronization Replication with the Trigger-Based Method](09_sync_replication_trigger_based/#sync_replication_trigger_based) for information on the trigger-based method. -In the log-based method changes to rows in the source tables are extracted from the Write-Ahead Log segments (WAL files) using asynchronous streaming replication implemented by the logical decoding feature available in Postgres database servers. The extracted changes are converted to an in-memory data structure and applied to the target tables by means of SQL statements executed using JDBC. See [Synchronization Replication with the Log-Based Method](../../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#sync_replication_log_based) for information on the log-based method. +In the log-based method changes to rows in the source tables are extracted from the Write-Ahead Log segments (WAL files) using asynchronous streaming replication implemented by the logical decoding feature available in Postgres database servers. The extracted changes are converted to an in-memory data structure and applied to the target tables by means of SQL statements executed using JDBC. See [Synchronization Replication with the Log-Based Method](10_sync_replication_log_based/#sync_replication_log_based) for information on the log-based method. -In a multi-master replication system, the manner in which changes accumulated on all primary nodes are replicated to all other primary nodes is conceptually done in groups identified by the source primary node with the changes to be replicated. See [Multi-Master Parallel Replication](../../02_overview/02_replication_concepts_and_definitions/#mmr_parallel_replication) for information on this process and the improvement for the log-based method with parallel replication. +In a multi-master replication system, the manner in which changes accumulated on all primary nodes are replicated to all other primary nodes is conceptually done in groups identified by the source primary node with the changes to be replicated. See [Multi-Master Parallel Replication](12_mmr_parallel_replication/#mmr_parallel_replication) for information on this process and the improvement for the log-based method with parallel replication. -In a single-master replication system, the very first replication to a newly created subscription must always be done by a snapshot. Subsequent replications can be done by snapshot or by synchronization provided that the publication is not defined as a snapshot-only publication as discussed in [Snapshot-Only Publications](../../02_overview/02_replication_concepts_and_definitions/#snapshot_only_publications). +In a single-master replication system, the very first replication to a newly created subscription must always be done by a snapshot. Subsequent replications can be done by snapshot or by synchronization provided that the publication is not defined as a snapshot-only publication as discussed in [Snapshot-Only Publications](07_snapshot_only_publications/#snapshot_only_publications). In a multi-master replication system, the very first replication from the primary definition node to a newly added primary node must always be done by a snapshot. Subsequent replications between primary nodes occur by synchronization. However, it is possible to perform subsequent snapshots from the primary definition node to any other primary node. diff --git a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/07_snapshot_only_publications.mdx b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/07_snapshot_only_publications.mdx index fa3e942a20c..104cbe6b025 100644 --- a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/07_snapshot_only_publications.mdx +++ b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/07_snapshot_only_publications.mdx @@ -4,9 +4,8 @@ title: "Snapshot-Only Publications" - When a publication is created in a single-master replication system, the publication can be defined as a snapshot-only publication. Replication from a snapshot-only publication can only be done using the snapshot replication method. Synchronization replication is not permitted on a snapshot-only publication. A snapshot-only publication cannot be created in a multi-master replication system. -See [Performance Considerations](../../02_overview/04_design_replication_system/#performance_considerations) for a discussion of the advantages of using a snapshot-only publication. +See [Performance Considerations](../04_design_replication_system/04_performance_considerations/#performance_considerations) for a discussion of the advantages of using a snapshot-only publication. diff --git a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/08_snapshot_replication.mdx b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/08_snapshot_replication.mdx index c1aedf78fff..0f0f944ae46 100644 --- a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/08_snapshot_replication.mdx +++ b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/08_snapshot_replication.mdx @@ -4,29 +4,19 @@ title: "Snapshot Replication" - In snapshot replication, the target tables are completely reloaded from the source tables. The database system’s truncate operation is used to delete all rows from the target tables. **For Oracle and SQL Server only:** Oracle and SQL Server target tables are loaded using JDBC batches of `INSERT` statements. **For Postgres only:** In general, Postgres target tables are loaded using the JDBC COPY command since using truncation and COPY is generally faster than if you were to execute an `SQL DELETE` statement against the entire table and then add the rows using JDBC batches of `INSERT` statements. If the `COPY` command fails, the publication server retries the snapshot using JDBC batches of `INSERT` statements. -If the target table (regardless of database type) contains a large object data type such as `BYTEA`, `BLOB`, or `CLOB` then rows are loaded one at a time per batch using an INSERT statement. This is to avoid a heap space error resulting from potentially large rows. Loading time can be decreased by allowing multiple inserts per batch, which is done by adjusting the configuration option `lobBatchSize` described in [Optimizing Snapshot Replication](../../05_smr_operation/08_optimizing_performance/#optimizing_snapshot_replication). - -
      - -
      - -Note - -
      - -Advanced Server supports a number of aliases for data types. Such aliases that translate to `BYTEA` are treated as large object data types. See the Database Compatibility for Oracle Developers Reference Guide for a listing of Advanced Server data types. (See the *Database Compatibility for Oracle Developer’s Guide* for Advanced Server version 9.5 or earlier versions.) +If the target table (regardless of database type) contains a large object data type such as `BYTEA`, `BLOB`, or `CLOB` then rows are loaded one at a time per batch using an INSERT statement. This is to avoid a heap space error resulting from potentially large rows. Loading time can be decreased by allowing multiple inserts per batch, which is done by adjusting the configuration option `lobBatchSize` described in [Optimizing Snapshot Replication](../../05_smr_operation/08_optimizing_performance/01_optimizing_snapshot_replication/#optimizing_snapshot_replication). -
      +!!! Note + Advanced Server supports a number of aliases for data types. Such aliases that translate to `BYTEA` are treated as large object data types. See the Database Compatibility for Oracle Developers Reference Guide for a listing of Advanced Server data types. (See the *Database Compatibility for Oracle Developer’s Guide* for Advanced Server version 9.5 or earlier versions.) -Under certain circumstances, the corresponding Postgres target table created for certain types of Oracle partitioned tables is a set of inherited tables. In these cases, the `SQL DELETE` statement is used on the inherited child tables instead of truncation. See [Replicating Oracle Partitioned Tables](../../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/#replicate_oracle_partitioned_tables) for additional information on replicating Oracle partitioned tables. +Under certain circumstances, the corresponding Postgres target table created for certain types of Oracle partitioned tables is a set of inherited tables. In these cases, the `SQL DELETE` statement is used on the inherited child tables instead of truncation. See [Replicating Oracle Partitioned Tables](../../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/04_replicate_oracle_partitioned_tables/#replicate_oracle_partitioned_tables) for additional information on replicating Oracle partitioned tables. -A server configuration option is available that forces the snapshot replication process to use the Oracle database link utility instead of `JDBC COPY` to populate the Postgres target tables from an Oracle publication. Oracle database link provides an additional performance improvement over `JDBC COPY`. See [Optimizing Snapshot Replication](../../05_smr_operation/08_optimizing_performance/#optimizing_snapshot_replication) for information on using the Oracle database link option. +A server configuration option is available that forces the snapshot replication process to use the Oracle database link utility instead of `JDBC COPY` to populate the Postgres target tables from an Oracle publication. Oracle database link provides an additional performance improvement over `JDBC COPY`. See [Optimizing Snapshot Replication](../../05_smr_operation/08_optimizing_performance/01_optimizing_snapshot_replication/#optimizing_snapshot_replication) for information on using the Oracle database link option. -See [Optimizing Snapshot Replication](../../05_smr_operation/08_optimizing_performance/#optimizing_snapshot_replication) for information on various configuration options to optimize snapshot replication. +See [Optimizing Snapshot Replication](../../05_smr_operation/08_optimizing_performance/01_optimizing_snapshot_replication/#optimizing_snapshot_replication) for information on various configuration options to optimize snapshot replication. diff --git a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/09_sync_replication_trigger_based.mdx b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/09_sync_replication_trigger_based.mdx index f74bad8fa4e..0ef1cc6fb76 100644 --- a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/09_sync_replication_trigger_based.mdx +++ b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/09_sync_replication_trigger_based.mdx @@ -4,22 +4,12 @@ title: "Synchronization Replication with the Trigger-Based Method" - If a publication in a single-master replication system is created that will be used in synchronization replications with the trigger-based method, the publication server installs an insert trigger, an update trigger, and a delete trigger on each publication table. In a multi-master replication system, each replicated table in each primary node employing the trigger-based method has an insert trigger, an update trigger, and a delete trigger. The publication server also creates a shadow table for each source table on which triggers have been created. A shadow table is a table used by xDB Replication Server to record the changes (inserts, updates, and deletions) made to a given source table. A shadow table records three types of record ../../images: For each row inserted into the source table, the shadow table records the image of the inserted row. For each existing row that is updated in the source table, the shadow table records the after image of the updated row. For each row deleted from the source table, the shadow table records the primary key value of the deleted row. -
      - -
      - -Note - -
      - -In a multi-master replication system, the before image of an updated row is also stored in the shadow table in order to perform update conflict detection. See [Conflict Resolution](../../06_mmr_operation/06_conflict_resolution/#conflict_resolution) for information on conflict detection in a multi-master replication system. - -
      +!!! Note + In a multi-master replication system, the before image of an updated row is also stored in the shadow table in order to perform update conflict detection. See [Conflict Resolution](../../06_mmr_operation/06_conflict_resolution/#conflict_resolution) for information on conflict detection in a multi-master replication system. After each change on the source table, one of the insert, update, or delete triggers is executed. These are row triggers, so for each row affected by the change, the trigger executes. Each execution of the trigger records a row of the appropriate type (insert, update, or deletion) in the shadow table of the corresponding source table. @@ -27,28 +17,10 @@ Though changes made to the source tables since the last replication occurred are When synchronization replication occurs, the publication server executes JDBC batches of SQL statements (also referred to as transaction sets) against the target tables. The batches contain an `INSERT` statement for each shadow table row recording an insert operation, an `UPDATE` statement for each shadow table row recording an update operation, and a `DELETE` statement for each shadow table row recording a delete operation. Each batch is executed in one transaction. -Shadow table rows that were applied to target tables can be viewed as shadow table history in the xDB Replication Console (see [Shadow Table History](../../07_common_operations/#shadow_table_history)). - -
      - -
      - -Note - -
      - -A single SQL statement executed against a source table may result in many rows recorded in a shadow table, and therefore, many SQL statements executed against the target table. For example, if a single `UPDATE` statement affects 10 rows in the source table, 10 rows will be inserted into the shadow table – one for each row in the source table that was updated. When the publication server applies the changes to the target table, 10 `UPDATE` statements will be executed. - -
      - -
      - -
      - -Note - -
      +Shadow table rows that were applied to target tables can be viewed as shadow table history in the xDB Replication Console (see [Shadow Table History](../../07_common_operations/04_view_replication_history/#shadow_table_history)). -For greater efficiency, when changes to the source tables consist of SQL statements that each affect a large number of rows, the publication server may employ the use of prepared SQL statements. See [Optimizing Synchronization Replication](../../05_smr_operation/08_optimizing_performance/02_optimize_sync_replication/#optimize_sync_replication) for directions on how to control the usage of prepared SQL statements as well as information on various other configuration options to optimize synchronization replication. +!!! Note + A single SQL statement executed against a source table may result in many rows recorded in a shadow table, and therefore, many SQL statements executed against the target table. For example, if a single `UPDATE` statement affects 10 rows in the source table, 10 rows will be inserted into the shadow table – one for each row in the source table that was updated. When the publication server applies the changes to the target table, 10 `UPDATE` statements will be executed. -
      +!!! Note + For greater efficiency, when changes to the source tables consist of SQL statements that each affect a large number of rows, the publication server may employ the use of prepared SQL statements. See [Optimizing Synchronization Replication](../../05_smr_operation/08_optimizing_performance/02_optimize_sync_replication/#optimize_sync_replication) for directions on how to control the usage of prepared SQL statements as well as information on various other configuration options to optimize synchronization replication. diff --git a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/01_requirements_and_restrictions.mdx b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/01_requirements_and_restrictions.mdx index f8e1f68c45e..1110d3e3d17 100644 --- a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/01_requirements_and_restrictions.mdx +++ b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/01_requirements_and_restrictions.mdx @@ -4,10 +4,9 @@ title: "Requirements and Restrictions" - The following are the general requirements and restrictions when using the log-based method for any database of a single-master or multi-master replication system: -- The selection of either the trigger-based method or the log-based method is a characteristic applicable to only the publication database. The choice is made when defining the primary database of a single-master replication system (see Section [Adding a Publication Database](../../../05_smr_operation/02_creating_publication/#adding_pub_database)) or the primary definition node of a multi-master replication system (see [Adding the Primary definition node](../../../06_mmr_operation/#adding_pdn)). +- The selection of either the trigger-based method or the log-based method is a characteristic applicable to only the publication database. The choice is made when defining the primary database of a single-master replication system (see Section [Adding a Publication Database](../../../05_smr_operation/02_creating_publication/02_adding_pub_database/#adding_pub_database)) or the primary definition node of a multi-master replication system (see [Adding the Primary definition node](../../../06_mmr_operation/02_creating_publication_mmr/#adding_pdn)). - The logical decoding feature, and hence the log-based method, is supported beginning with PostgreSQL version 9.4. Therefore, in order to use the log-based method for a publication database, that publication database must be running under PostgreSQL version 9.4 or later, or under Advanced Server version 9.4 or later. - In a single-master replication system, whether the primary database uses the trigger-based method or the log-based method has no additional impact on the rules for choosing the subscription database. For example, even if the log-based method is chosen for the primary database, the subscription database may be running on Postgres version 9.4 as well as any supported, earlier version of Postgres, as well as Oracle or SQL Server. - In a single-master replication system, the primary database may contain one or more publications (that is, named sets of tables for replication). This is applicable to a primary database using either the trigger-based method or the log-based method. @@ -21,13 +20,13 @@ If you plan to use the log-based method with any publication database running un - `wal_level.` Set to logical. - `max_wal_senders.` Specifies the maximum number of concurrent connections (that is, the maximum number of simultaneously running WAL sender processes). Set at minimum, to the total number of primary databases of single-master replication systems and primary nodes of multi-master replication systems on this database server that will use the log-based method. -- `max_replication_slots.` Specifies the maximum number of replication slots. If the database server supports both single-master replication systems and multi-master replication systems, then max\_replication\_slots must be set at minimum to the sum of the requirements for both replication systems. For support of SMR systems, the minimum requirement is the total number of primary databases of the single-master replication systems that will use the log-based method. For support of MMR systems, the minimum requirement is the total number of primary nodes in the multi-master replication system multiplied by the number of primary nodes residing on this database server. For information, see [Replication Origin](../../../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#replication_origin). -- `track_commit_timestamp.` Set to `on`. This configuration parameter applies only to Postgres database servers of version 9.5 and later. See [Configuration Parameter and Table Setting Requirements](#configuration_para_and%20table_setting) for additional information. +- `max_replication_slots.` Specifies the maximum number of replication slots. If the database server supports both single-master replication systems and multi-master replication systems, then max_replication_slots must be set at minimum to the sum of the requirements for both replication systems. For support of SMR systems, the minimum requirement is the total number of primary databases of the single-master replication systems that will use the log-based method. For support of MMR systems, the minimum requirement is the total number of primary nodes in the multi-master replication system multiplied by the number of primary nodes residing on this database server. For information, see [Replication Origin](04_replication_origin/#replication_origin). +- `track_commit_timestamp.` Set to `on`. This configuration parameter applies only to Postgres database servers of version 9.5 and later. See [Configuration Parameter and Table Setting Requirements](../../../06_mmr_operation/06_conflict_resolution/01_configuration_para_andtable_setting/#configuration_para_and_table_setting) for additional information. -Also, see [Enabling Synchronization Replication with the Log-Based Method](../../../05_smr_operation/01_prerequisites/#enable_sync_replication_with_log-based_method) for setting these parameters for a single-master replication system. See [Enabling Synchronization Replication with the Log-Based Method](../../../06_mmr_operation/#enabling_sync_replication_log-based_method_mmr) for a multi-master replication system. +Also, see [Enabling Synchronization Replication with the Log-Based Method](../../../05_smr_operation/01_prerequisites/02_enable_sync_replication_with_log-based_method/#enable_sync_replication_with_log-based_method) for setting these parameters for a single-master replication system. See [Enabling Synchronization Replication with the Log-Based Method](../../../06_mmr_operation/01_pre_steps/#enabling_sync_replication_log-based_method_mmr) for a multi-master replication system. -In addition, the `pg_hba.conf` configuration file of the Postgres database server must contain an entry permitting `REPLICATION` access for each database using the log-based method running on the database server. The access must be permitted to the publication database user specified when creating the publication database definition using the xDB Replication Console (See [Adding a Publication Database](../../../05_smr_operation/02_creating_publication/#adding_pub_database) for a single-master replication system or [Adding the Primary definition node](../../../06_mmr_operation/#adding_pdn) for a multi-master replication system) or the xDB Replication Server Command Line Interface (CLI) (see Adding a Publication Database (addpubdb) <add\_pub\_database>). +In addition, the `pg_hba.conf` configuration file of the Postgres database server must contain an entry permitting `REPLICATION` access for each database using the log-based method running on the database server. The access must be permitted to the publication database user specified when creating the publication database definition using the xDB Replication Console (See [Adding a Publication Database](../../../05_smr_operation/02_creating_publication/02_adding_pub_database/#adding_pub_database) for a single-master replication system or [Adding the Primary definition node](../../../06_mmr_operation/02_creating_publication_mmr/#adding_pdn) for a multi-master replication system) or the xDB Replication Server Command Line Interface (CLI) (see Adding a Publication Database (addpubdb) <add_pub_database>). -See [Postgres Server Authentication](../../../05_smr_operation/01_prerequisites/#postgres_server_auth) for setting `REPLICATION` access for a single-master replication system. See [Verifying Host Accessibility](../../../05_smr_operation/01_prerequisites/#verifying_host_accessibility) for a multi-master replication system. +See [Postgres Server Authentication](../../../05_smr_operation/01_prerequisites/06_verifying_host_accessibility/#postgres_server_auth) for setting `REPLICATION` access for a single-master replication system. See [Verifying Host Accessibility](../../../05_smr_operation/01_prerequisites/06_verifying_host_accessibility/#verifying_host_accessibility) for a multi-master replication system. -For configuration options in the publication server configuration file that are specifically applicable to the log-based method see [Log-Based Method of Synchronization Options](../../../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/#log_based_sync_options). +For configuration options in the publication server configuration file that are specifically applicable to the log-based method see [Log-Based Method of Synchronization Options](../../../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/15_log_based_sync_options/#log_based_sync_options). diff --git a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/02_logical_replication_slots.mdx b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/02_logical_replication_slots.mdx index fd4c4583f0d..04faa1021a1 100644 --- a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/02_logical_replication_slots.mdx +++ b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/02_logical_replication_slots.mdx @@ -4,13 +4,12 @@ title: "Logical Replication Slots" - When using the log-based method on a publication database, the underlying logical decoding framework exposes the data changes (the changeset stream) by means of a logical replication slot. -A logical replication slot represents a changeset stream and applies to a single database. The xDB Replication Server assigns a unique identifier, called the slot name, to each logical replication slot it creates in the form xdb\_dboid\_pubid where `dboid` is the publication database object identifier (`OID`) and `pubid` is the publication ID assigned by the xDB Replication Server. All slot names are unique within a Postgres database cluster. +A logical replication slot represents a changeset stream and applies to a single database. The xDB Replication Server assigns a unique identifier, called the slot name, to each logical replication slot it creates in the form xdb_dboid_pubid where `dboid` is the publication database object identifier (`OID`) and `pubid` is the publication ID assigned by the xDB Replication Server. All slot names are unique within a Postgres database cluster. Thus, for each single-master replication system using the log-based method, a replication slot is required for the publication database of each such system. For a multi-master replication system using the log-based method, each primary node requires a replication slot. -The maximum number of replication slots permitted for a database server is controlled by the `max_replication_slots` configuration parameter in the `postgresql.conf` file. Therefore this configuration parameter must be set to a large enough value to account for all publication databases defined with the log-based method of single-master replication systems running on the database server as well as all primary nodes of a multi-master replication system defined with the log-based method running on the database server. Additional replication slots are required to support the usage of replication origin (see [Replication Origin](../../../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#replication_origin)). See [Enabling Synchronization Replication with the Log-Based Method](../../../05_smr_operation/01_prerequisites/#enable_sync_replication_with_log-based_method) for additional information on configuration parameters for single-master replication systems. See [Enabling Synchronization Replication with the Log-Based Method](../../../06_mmr_operation/#enabling_sync_replication_log-based_method_mmr) for multi-master replication systems. +The maximum number of replication slots permitted for a database server is controlled by the `max_replication_slots` configuration parameter in the `postgresql.conf` file. Therefore this configuration parameter must be set to a large enough value to account for all publication databases defined with the log-based method of single-master replication systems running on the database server as well as all primary nodes of a multi-master replication system defined with the log-based method running on the database server. Additional replication slots are required to support the usage of replication origin (see [Replication Origin](04_replication_origin/#replication_origin)). See [Enabling Synchronization Replication with the Log-Based Method](../../../05_smr_operation/01_prerequisites/02_enable_sync_replication_with_log-based_method/#enable_sync_replication_with_log-based_method) for additional information on configuration parameters for single-master replication systems. See [Enabling Synchronization Replication with the Log-Based Method](../../../06_mmr_operation/01_pre_steps/#enabling_sync_replication_log-based_method_mmr) for multi-master replication systems. diff --git a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/03_streaming_replication_wal_sender.mdx b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/03_streaming_replication_wal_sender.mdx index b4bd51f4bea..8230a10af34 100644 --- a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/03_streaming_replication_wal_sender.mdx +++ b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/03_streaming_replication_wal_sender.mdx @@ -4,7 +4,6 @@ title: "Streaming Replication with the WAL Sender Process" - The changeset stream is accessible to the xDB publication server by the **WAL sender process** (`walsender`) using the streaming replication protocol. The xDB publication server connects using the `walsender` interface through which changes are streamed on a continual basis. The continuous streaming eliminates the need for explicitly polling for changes. @@ -14,19 +13,10 @@ The following are the basic synchronization steps using the log-based method: 1. A streaming replication connection to the database server is opened using `libpq` to establish a `walsender` communication channel. 2. A separate thread is used to monitor data changes streamed through the `walsender` interface. 3. As the data changes become available, they are transformed to populate an in-memory cache. -4. On the next scheduled interval, the in-memory cached data changes are applied to each of the target databases in JDBC batches of SQL statements (referred to as transaction sets) in the same manner as described in [Synchronization Replication with the Trigger-Based Method](../../../02_overview/02_replication_concepts_and_definitions/#sync_replication_trigger_based) for the trigger-based method. If one or more target database servers are not accessible, the data changes are saved in a local file on the host running the publication server. See [In-Memory Caching and Persistence](../../../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#inmemory_caching) for information on in-memory caching and data persistence. +4. On the next scheduled interval, the in-memory cached data changes are applied to each of the target databases in JDBC batches of SQL statements (referred to as transaction sets) in the same manner as described in [Synchronization Replication with the Trigger-Based Method](../09_sync_replication_trigger_based/#sync_replication_trigger_based) for the trigger-based method. If one or more target database servers are not accessible, the data changes are saved in a local file on the host running the publication server. See [In-Memory Caching and Persistence](05_inmemory_caching/#inmemory_caching) for information on in-memory caching and data persistence. 5. The value of the `WAL` segment’s log sequence number (`LSN`) identifying the last set of applied changes based on the last replicated transaction is updated. The update is confirmed to the database server. 6. The applied data changes are cleared from the in-memory cache. 7. Steps 3 through 6 are repeated. -
      - -
      - -Note - -
      - -A single SQL statement executed against a source table may result in many rows modified and returned in the changeset stream, and therefore, many SQL statements executed against the target table. For example, if a single `UPDATE` statement affects 10 rows in the source table, 10 rows will be returned in the changeset stream – one for each row in the source table that was updated. When the publication server applies the changes to the target table, 10 `UPDATE` statements will be executed. - -
      +!!! Note + A single SQL statement executed against a source table may result in many rows modified and returned in the changeset stream, and therefore, many SQL statements executed against the target table. For example, if a single `UPDATE` statement affects 10 rows in the source table, 10 rows will be returned in the changeset stream – one for each row in the source table that was updated. When the publication server applies the changes to the target table, 10 `UPDATE` statements will be executed. diff --git a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/04_replication_origin.mdx b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/04_replication_origin.mdx index b5915015c23..bda34e9666e 100644 --- a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/04_replication_origin.mdx +++ b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/04_replication_origin.mdx @@ -4,7 +4,6 @@ title: "Replication Origin" - Starting with Postgres version 9.5, a feature called replication origin has been introduced to the logical decoding framework. Replication origin allows an application to identify, label, and mark certain aspects of a logical decoding session. For information on replication origin see the PostgreSQL Core Documentation located at: @@ -33,15 +32,20 @@ Therefore, for a given database server (that is, a Postgres database cluster con For example, assume the usage of a 6-node multi-master replication system using three database clusters as follows: -- Database cluster \#1 contains 3 primary node databases. -- Database cluster \#2 contains 2 primary node databases. -- Database cluster \#3 contains 1 primary node database. +- Database cluster #1 contains 3 primary node databases. +- Database cluster #2 contains 2 primary node databases. +- Database cluster #3 contains 1 primary node database. The total number of primary nodes is six. Multiply the number of primary node databases in each database cluster by six to give the required minimum setting for `max_replication_slots` for that database cluster. The following table shows the required, minimum settings for `max_replication_slots` as well as `max_wal_senders`. -
      Replication Origin Configuration Parameter Settings
      Postgres Database Servermax_wal_sendersmax_replication_slots

      Cluster #1 (3 primary nodes)

      3

      18

      Cluster #2 (2 primary nodes)

      2

      12

      Cluster #3 (1 primary node)

      1

      6

      +| | | | +| ---------------------------------------------------------- | ------------------- | -------------------------------- | +| **Postgres Database Server** | **max_wal_senders** | **max_replication_slots** | +|


      Cluster #1 (3 primary nodes)

      | 3 |


      18

      | +|


      Cluster #2 (2 primary nodes)

      | 2 |


      12

      | +|


      Cluster #3 (1 primary node)

      | 1 |


      6

      | **Replication Origin Configuration Parameter Settings** @@ -49,7 +53,7 @@ If the `max_replication_slots` parameter is not set to a high enough value, sync The publication server log file contains the following warning in such cases: -``` text +```text WARNING: Failed to setup replication origin ``xdb_MMRnode_c_emp_pub_6``. Reason: ERROR: could not find free replication state slot for replication origin with OID 4 Hint: Increase max_replication_slots and try again. ``` @@ -58,7 +62,7 @@ The following example shows some of the replication slot information for a 3-pri The following shows the maximum allowable number of replication slots: -``` text +```text SHOW max_replication_slots; max_replication_slots @@ -71,7 +75,7 @@ The number should be sufficiently greater than the number of replication slots a The following displays the replication slots: -``` text +```text SELECT slot_name, slot_type, database, active FROM pg_replication_slots ORDER BY 1; slot_name | slot_type | database | active @@ -84,7 +88,7 @@ SELECT slot_name, slot_type, database, active FROM pg_replication_slots ORDER BY The following shows the replication origins. -``` text +```text SELECT * FROM pg_replication_origin ORDER BY 2; roident | roname @@ -104,4 +108,4 @@ The replication slots are in the active state when the publication server is run The replication slots and replication origin sessions are deleted from the database cluster when their corresponding primary nodes are removed from the multi-master replication system using the xDB Replication Console or the xDB Replication Server CLI. -Should some situation occur where the replication slots are not properly deleted when required, see [Dropping Replication Slots for Log-Based Synchronization Replication](../../../10_appendix/03_resolving_problems/#drop_replication_slots_for_log_based) for instructions on manually deleting them. +Should some situation occur where the replication slots are not properly deleted when required, see [Dropping Replication Slots for Log-Based Synchronization Replication](../../../10_appendix/03_resolving_problems/04_troubleshooting_areas/#drop_replication_slots_for_log_based) for instructions on manually deleting them. diff --git a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/05_inmemory_caching.mdx b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/05_inmemory_caching.mdx index aec191fa6f9..2c17005b579 100644 --- a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/05_inmemory_caching.mdx +++ b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/05_inmemory_caching.mdx @@ -4,7 +4,6 @@ title: "In-Memory Caching and Persistence" - The data changes are fetched and stored in memory buffers to optimize the data replication process. This avoids the overhead associated with repeatedly fetching the same set of changes from the database server when there are multiple target databases. This approach is sufficient as long as all of the target databases are accessible during a replication event and the data fits within the available cache. @@ -18,9 +17,9 @@ The following are examples that can result in the eviction of in-memory data to - Before the next replication event occurs, the in-memory cache is filled with the data changes and needs to be evicted to accommodate a new set of changes. - In the replication system, there are multiple target databases. During a synchronization event, all of the changes available in the cache are applied successfully to some of the target databases. However one or more of the other target databases cannot be accessed. All of the applied changes held in memory must be persisted and retained so that these changes can be reloaded and applied when the inaccessible databases becomes available. -The cache size corresponds to the heap size configured for the publication server by the `-Xmxnnnm` setting of the `JAVA_HEAP_SIZE` parameter in the xDB Startup Configuration file. See [xDB Replication Configuration File](../../../02_overview/03_replication_server_components_and_architecture/#xdb_replication_conf_file) for information on the xDB Startup Configuration file. +The cache size corresponds to the heap size configured for the publication server by the `-Xmxnnnm` setting of the `JAVA_HEAP_SIZE` parameter in the xDB Startup Configuration file. See [xDB Replication Configuration File](../../03_replication_server_components_and_architecture/01_physical_components/#xdb_replication_conf_file) for information on the xDB Startup Configuration file. -The persistence I/O overhead can be minimized by increasing the heap size value and defining a more frequent synchronization interval such as for every few seconds. See [Creating a Schedule](../../../07_common_operations/#creating_schedule) for information on setting a replication schedule. +The persistence I/O overhead can be minimized by increasing the heap size value and defining a more frequent synchronization interval such as for every few seconds. See [Creating a Schedule](../../../07_common_operations/02_creating_schedule/#creating_schedule) for information on setting a replication schedule. The data changes are persisted in a local file on the host running the publication server. The file is stored in the directory `XDB_HOME/xdata`. diff --git a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/index.mdx b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/index.mdx index 49541367d48..192a218388d 100644 --- a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/index.mdx +++ b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/index.mdx @@ -4,7 +4,6 @@ title: "Synchronization Replication with the Log-Based Method" - In PostgreSQL 9.4 a feature has been introduced called logical decoding (also called logical replication or changeset extraction). This feature provides the capability to extract data manipulation language (DML) changes from the Write-Ahead Log segments (WAL files) in a readable format. For information on logical decoding see the *PostgreSQL Core Documentation* located at: @@ -23,6 +22,6 @@ The following sections describe the basic requirements and concepts for the log-
      -requirements\_and\_restrictions logical\_replication\_slots streaming\_replication\_wal\_sender replication\_origin inmemory\_caching +requirements_and_restrictions logical_replication_slots streaming_replication_wal_sender replication_origin inmemory_caching
      diff --git a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/11_requirements_and_restrictions.mdx b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/11_requirements_and_restrictions.mdx index e10736785d5..0a72686f160 100644 --- a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/11_requirements_and_restrictions.mdx +++ b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/11_requirements_and_restrictions.mdx @@ -4,10 +4,9 @@ title: "Requirements and Restrictions" - The following are the general requirements and restrictions when using the log-based method for any database of a single-master or multi-master replication system: -- The selection of either the trigger-based method or the log-based method is a characteristic applicable to only the publication database. The choice is made when defining the primary database of a single-master replication system (see Section [Adding a Publication Database](../../05_smr_operation/02_creating_publication/#adding_pub_database)) or the primary definition node of a multi-master replication system (see [Adding the Primary definition node](../../06_mmr_operation/#adding_pdn)). +- The selection of either the trigger-based method or the log-based method is a characteristic applicable to only the publication database. The choice is made when defining the primary database of a single-master replication system (see Section [Adding a Publication Database](../../05_smr_operation/02_creating_publication/02_adding_pub_database/#adding_pub_database)) or the primary definition node of a multi-master replication system (see [Adding the Primary definition node](../../06_mmr_operation/02_creating_publication_mmr/#adding_pdn)). - The logical decoding feature, and hence the log-based method, is supported beginning with PostgreSQL version 9.4. Therefore, in order to use the log-based method for a publication database, that publication database must be running under PostgreSQL version 9.4 or later, or under Advanced Server version 9.4 or later. - In a single-master replication system, whether the primary database uses the trigger-based method or the log-based method has no additional impact on the rules for choosing the subscription database. For example, even if the log-based method is chosen for the primary database, the subscription database may be running on Postgres version 9.4 as well as any supported, earlier version of Postgres, as well as Oracle or SQL Server. - In a single-master replication system, the primary database may contain one or more publications (that is, named sets of tables for replication). This is applicable to a primary database using either the trigger-based method or the log-based method. @@ -21,13 +20,13 @@ If you plan to use the log-based method with any publication database running un - `wal_level.` Set to logical. - `max_wal_senders.` Specifies the maximum number of concurrent connections (that is, the maximum number of simultaneously running WAL sender processes). Set at minimum, to the total number of primary databases of single-master replication systems and primary nodes of multi-master replication systems on this database server that will use the log-based method. -- `max_replication_slots.` Specifies the maximum number of replication slots. If the database server supports both single-master replication systems and multi-master replication systems, then max\_replication\_slots must be set at minimum to the sum of the requirements for both replication systems. For support of SMR systems, the minimum requirement is the total number of primary databases of the single-master replication systems that will use the log-based method. For support of MMR systems, the minimum requirement is the total number of primary nodes in the multi-master replication system multiplied by the number of primary nodes residing on this database server. For information, see [Replication Origin](../../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#replication_origin). -- `track_commit_timestamp.` Set to `on`. This configuration parameter applies only to Postgres database servers of version 9.5 and later. See [Configuration Parameter and Table Setting Requirements](#configuration_para_and%20table_setting) for additional information. +- `max_replication_slots.` Specifies the maximum number of replication slots. If the database server supports both single-master replication systems and multi-master replication systems, then max_replication_slots must be set at minimum to the sum of the requirements for both replication systems. For support of SMR systems, the minimum requirement is the total number of primary databases of the single-master replication systems that will use the log-based method. For support of MMR systems, the minimum requirement is the total number of primary nodes in the multi-master replication system multiplied by the number of primary nodes residing on this database server. For information, see [Replication Origin](10_sync_replication_log_based/04_replication_origin/#replication_origin). +- `track_commit_timestamp.` Set to `on`. This configuration parameter applies only to Postgres database servers of version 9.5 and later. See [Configuration Parameter and Table Setting Requirements](../../06_mmr_operation/06_conflict_resolution/01_configuration_para_andtable_setting/#configuration_para_and_table_setting) for additional information. -Also, see [Enabling Synchronization Replication with the Log-Based Method](../../05_smr_operation/01_prerequisites/#enable_sync_replication_with_log-based_method) for setting these parameters for a single-master replication system. See [Enabling Synchronization Replication with the Log-Based Method](../../06_mmr_operation/#enabling_sync_replication_log-based_method_mmr) for a multi-master replication system. +Also, see [Enabling Synchronization Replication with the Log-Based Method](../../05_smr_operation/01_prerequisites/02_enable_sync_replication_with_log-based_method/#enable_sync_replication_with_log-based_method) for setting these parameters for a single-master replication system. See [Enabling Synchronization Replication with the Log-Based Method](../../06_mmr_operation/01_pre_steps/#enabling_sync_replication_log-based_method_mmr) for a multi-master replication system. -In addition, the `pg_hba.conf` configuration file of the Postgres database server must contain an entry permitting `REPLICATION` access for each database using the log-based method running on the database server. The access must be permitted to the publication database user specified when creating the publication database definition using the xDB Replication Console (See [Adding a Publication Database](../../05_smr_operation/02_creating_publication/#adding_pub_database) for a single-master replication system or [Adding the Primary definition node](../../06_mmr_operation/#adding_pdn) for a multi-master replication system) or the xDB Replication Server Command Line Interface (CLI) (see Adding a Publication Database (addpubdb) <add\_pub\_database>). +In addition, the `pg_hba.conf` configuration file of the Postgres database server must contain an entry permitting `REPLICATION` access for each database using the log-based method running on the database server. The access must be permitted to the publication database user specified when creating the publication database definition using the xDB Replication Console (See [Adding a Publication Database](../../05_smr_operation/02_creating_publication/02_adding_pub_database/#adding_pub_database) for a single-master replication system or [Adding the Primary definition node](../../06_mmr_operation/02_creating_publication_mmr/#adding_pdn) for a multi-master replication system) or the xDB Replication Server Command Line Interface (CLI) (see Adding a Publication Database (addpubdb) <add_pub_database>). -See [Postgres Server Authentication](../../05_smr_operation/01_prerequisites/#postgres_server_auth) for setting `REPLICATION` access for a single-master replication system. See [Verifying Host Accessibility](../../05_smr_operation/01_prerequisites/#verifying_host_accessibility) for a multi-master replication system. +See [Postgres Server Authentication](../../05_smr_operation/01_prerequisites/06_verifying_host_accessibility/#postgres_server_auth) for setting `REPLICATION` access for a single-master replication system. See [Verifying Host Accessibility](../../05_smr_operation/01_prerequisites/06_verifying_host_accessibility/#verifying_host_accessibility) for a multi-master replication system. -For configuration options in the publication server configuration file that are specifically applicable to the log-based method see [Log-Based Method of Synchronization Options](../../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/#log_based_sync_options). +For configuration options in the publication server configuration file that are specifically applicable to the log-based method see [Log-Based Method of Synchronization Options](../../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/15_log_based_sync_options/#log_based_sync_options). diff --git a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/12_mmr_parallel_replication.mdx b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/12_mmr_parallel_replication.mdx index 4804543d74a..e9647d02748 100644 --- a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/12_mmr_parallel_replication.mdx +++ b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/12_mmr_parallel_replication.mdx @@ -4,8 +4,7 @@ title: "Multi-Master Parallel Replication" - -For a multi-master replication system, transactions can be replicated from one primary node to another by one of the synchronization methods described in the previous sections – either the trigger-based method (see [Synchronization Replication with the Trigger-Based Method](../../02_overview/02_replication_concepts_and_definitions/#sync_replication_trigger_based)) or the log-based method (see [Synchronization Replication with the Log-Based Method](../../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#sync_replication_log_based)). +For a multi-master replication system, transactions can be replicated from one primary node to another by one of the synchronization methods described in the previous sections – either the trigger-based method (see [Synchronization Replication with the Trigger-Based Method](09_sync_replication_trigger_based/#sync_replication_trigger_based)) or the log-based method (see [Synchronization Replication with the Log-Based Method](10_sync_replication_log_based/#sync_replication_log_based)). For a single replication event to be considered finished and complete, transactions that have occurred on all primary nodes since the previous replication event must be successfully replicated to all other primary nodes by the configured synchronization method. @@ -27,28 +26,10 @@ For the log-based method, this latency time has been reduced by the implementati Thus, a replication set from a primary node is not waiting for others to complete before it can start so steps 1, 2, and 3 all run simultaneously instead of one after the other. -
      - -
      - -Note - -
      - -The parallel replication applies only to the log-based method and not for the trigger-based method. - -
      +!!! Note + The parallel replication applies only to the log-based method and not for the trigger-based method. There is no required configuration setting to enable the use of parallel replication for the log-based MMR system. -
      - -
      - -Note - -
      - -In addition to parallel replication, optimization of replicating from a given primary node to all other primary nodes (that is, within the context of a single replication set) has been implemented with the use of multiple threads. This is referred to as parallel synchronization. Parallel synchronization applies to both the trigger-based and log-based methods. See [Parallel Synchronization](../../05_smr_operation/08_optimizing_performance/02_optimize_sync_replication/#parallel_sync) for information on parallel synchronization. - -
      +!!! Note + In addition to parallel replication, optimization of replicating from a given primary node to all other primary nodes (that is, within the context of a single replication set) has been implemented with the use of multiple threads. This is referred to as parallel synchronization. Parallel synchronization applies to both the trigger-based and log-based methods. See [Parallel Synchronization](../../05_smr_operation/08_optimizing_performance/02_optimize_sync_replication/02_parallel_sync/#parallel_sync) for information on parallel synchronization. diff --git a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/13_table_filters.mdx b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/13_table_filters.mdx index bffcf9eee28..e9980346e9c 100644 --- a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/13_table_filters.mdx +++ b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/13_table_filters.mdx @@ -4,7 +4,6 @@ title: "Table Filters" - Table filters specify the selection criteria for rows in publication tables or views that are to be included during replications to subscriptions from the publication database in a single-master replication system or between primary nodes in a multi-master replication system. Rows that do not satisfy the selection criteria are excluded from replications to subscriptions or primary nodes on which these table filters have been enabled. ## Implementing Table Filters @@ -17,17 +16,8 @@ It is strongly recommended that a snapshot replication be performed to the subsc A snapshot ensures that the content of the subscription tables or primary node tables is consistent with the updated filtering criteria. -
      - -
      - -Note - -
      - -(For MMR only): When using table filters in a multi-master replication system, the primary definition node, which provides the source of the table content for a snapshot, should contain a superset of all the data contained in the other primary nodes of the multi-master replication system. This ensures that the target of a snapshot receives all of the data that satisfies any filtering criteria enabled on the other primary nodes. - -
      +!!! Note + (For MMR only): When using table filters in a multi-master replication system, the primary definition node, which provides the source of the table content for a snapshot, should contain a superset of all the data contained in the other primary nodes of the multi-master replication system. This ensures that the target of a snapshot receives all of the data that satisfies any filtering criteria enabled on the other primary nodes. On the contrary, if the primary definition node contains only a subset of all the data contained in the other primary nodes, then a snapshot to another primary node may not result in the complete set of data that is required for that target primary node. @@ -37,17 +27,8 @@ A filter enabled on a table only affects the results from snapshot or synchroniz Filtering has the following effects on a targeted, filtered table. -
      - -
      - -Note - -
      - -In the following discussion, a result set refers to the set of rows in a table satisfying the selection criteria of an `UPDATE` or `DELETE` statement executed on that table. - -
      +!!! Note + In the following discussion, a result set refers to the set of rows in a table satisfying the selection criteria of an `UPDATE` or `DELETE` statement executed on that table. In a snapshot replication, a row from the source table of the snapshot is inserted into the target table if the row satisfies the filtering criteria. Otherwise the row is excluded from insertion into the target table. @@ -76,17 +57,8 @@ This section lists specific table settings and restrictions on the use of table For replication systems using the log-based method of synchronization replication, a publication table on which a filter is to be defined must have the `REPLICA IDENTITY` option set to `FULL`. -
      - -
      - -Note - -
      - -This `REPLICA IDENTITY FULL` setting is not required for tables in single-master, snapshot-only publications, See [Snapshot-Only Publications](../../02_overview/02_replication_concepts_and_definitions/#snapshot_only_publications) for information on snapshot-only publications. - -
      +!!! Note + This `REPLICA IDENTITY FULL` setting is not required for tables in single-master, snapshot-only publications, See [Snapshot-Only Publications](07_snapshot_only_publications/#snapshot_only_publications) for information on snapshot-only publications. This setting is done with the `ALTER TABLE` command as shown by the following: @@ -102,7 +74,7 @@ For example, for a publication table named `edb.dept`, use the following `ALTER The `REPLICA IDENTITY` setting can be displayed by the `PSQL` utility using the `\d+` command: -``` text +```text edb=# \d+ edb.dept Table "edb.dept" Column | Type | Modifiers | Storage | Stats target | Description @@ -121,23 +93,14 @@ Replica Identity: FULL The `REPLICA IDENTITY FULL` setting is required on tables in the following databases of a log-based replication system: -- In a single-master replication system, table filters are defined in the primary database. Thus, the publication tables in the primary database requiring filter definitions must be altered to a `REPLICA IDENTITY FULL` setting, but only if the publication is not a snapshot-only publication. See [Snapshot-Only Publications](../../02_overview/02_replication_concepts_and_definitions/#snapshot_only_publications) for information on snapshot-only publications. +- In a single-master replication system, table filters are defined in the primary database. Thus, the publication tables in the primary database requiring filter definitions must be altered to a `REPLICA IDENTITY FULL` setting, but only if the publication is not a snapshot-only publication. See [Snapshot-Only Publications](07_snapshot_only_publications/#snapshot_only_publications) for information on snapshot-only publications. - In a multi-master replication system, table filters are defined in the primary definition node. Thus, publication tables in the primary definition node requiring filter definitions must be altered to a `REPLICA IDENTITY FULL` setting. - In a multi-master replication system, non-PDN nodes should not have their tables’ `REPLICA IDENTITY` option set to `FULL` unless transactions are expected to be targeted on those non-PDN nodes, and the transactions are to be filtered when they are replicated to the other primary nodes. The `REPLICA IDENTITY FULL` setting on a source table ensures that certain types of transactions on the source table result in the proper updates to the target tables on which filters have been enabled. -
      - -
      - -Note - -
      - -In addition to table filtering requirements, the `REPLICA IDENTITY FULL` setting may be required on publication tables for other reasons in xDB Replication Server. See [Configuration Parameter and Table Setting Requirements](#configuration_para_and%20table_setting) for additional requirements. - -
      +!!! Note + In addition to table filtering requirements, the `REPLICA IDENTITY FULL` setting may be required on publication tables for other reasons in xDB Replication Server. See [Configuration Parameter and Table Setting Requirements](../../06_mmr_operation/06_conflict_resolution/01_configuration_para_andtable_setting/#configuration_para_and_table_setting) for additional requirements. **Filtering Restrictions on Data Types** @@ -149,14 +112,14 @@ The specific details on implementing table filtering depend upon whether you are For using table filters in a single-master replication system see the following sections: -- Section [Adding a Publication](../../05_smr_operation/02_creating_publication/#adding_publication) for information on defining the initial set of table filters that are to be available for selective enablement on subscriptions -- Section [Adding a Subscription](../../05_smr_operation/03_creating_subscription/#adding_subscription) for information on enabling available table filters on a newly created subscription -- Section [Updating the Set of Available Table Filters in a Publication](../../07_common_operations/06_managing_publication/#updating_table_filters_in_pub) for information on adding, removing, or modifying rules comprising the set of available table filters -- Section Enabling/Disabling Table Filters on a Subscription <enable\_filters\_on\_subscription> for information on changing which table filters have been enabled on an existing subscription +- Section [Adding a Publication](../../05_smr_operation/02_creating_publication/03_adding_publication/#adding_publication) for information on defining the initial set of table filters that are to be available for selective enablement on subscriptions +- Section [Adding a Subscription](../../05_smr_operation/03_creating_subscription/03_adding_subscription/#adding_subscription) for information on enabling available table filters on a newly created subscription +- Section [Updating the Set of Available Table Filters in a Publication](../../07_common_operations/06_managing_publication/04_updating_table_filters_in_pub/#updating_table_filters_in_pub) for information on adding, removing, or modifying rules comprising the set of available table filters +- Section Enabling/Disabling Table Filters on a Subscription <enable_filters_on_subscription> for information on changing which table filters have been enabled on an existing subscription For using table filters in a multi-master replication system see the following sections: -- Section [Adding a Publication](../../06_mmr_operation/#add_pub_mmr) for information on defining the initial set of table filters that are to be available for selective enablement on primary nodes -- Section [Creating Additional Primary nodes](../../06_mmr_operation/#creating_primary_nodes) for information on enabling available table filters on a newly created primary node -- Section [Updating the Set of Available Table Filters in a Publication](../../07_common_operations/06_managing_publication/#updating_table_filters_in_pub) for information on adding, removing, or modifying rules comprising the set of available table filters -- Section Enabling/Disabling Table Filters on a Primary node <enable\_disable\_table\_filters> for information on changing which table filters have been enabled on an existing primary node +- Section [Adding a Publication](../../06_mmr_operation/02_creating_publication_mmr/#add_pub_mmr) for information on defining the initial set of table filters that are to be available for selective enablement on primary nodes +- Section [Creating Additional Primary nodes](../../06_mmr_operation/03_creating_primary_nodes/#creating_primary_nodes) for information on enabling available table filters on a newly created primary node +- Section [Updating the Set of Available Table Filters in a Publication](../../07_common_operations/06_managing_publication/04_updating_table_filters_in_pub/#updating_table_filters_in_pub) for information on adding, removing, or modifying rules comprising the set of available table filters +- Section Enabling/Disabling Table Filters on a Primary node <enable_disable_table_filters> for information on changing which table filters have been enabled on an existing primary node diff --git a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/index.mdx b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/index.mdx index 24cfc440f8f..a3063d8472d 100644 --- a/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/index.mdx +++ b/product_docs/docs/eprs/6.2/02_overview/02_replication_concepts_and_definitions/index.mdx @@ -4,7 +4,6 @@ title: "Replication Concepts and Definitions" - xDB Replication Server is a software product that enables the implementation of a replication system. A **replication system** is software and hardware whose purpose is to make a copy of data from one location to another and to ensure the copied data is the same as the original over time. xDB Replication Server applies the replication system concept to tables of Oracle, SQL Server, PostgreSQL, and Advanced Server database management systems. @@ -13,6 +12,6 @@ The following sections present specific terms and concepts used when discussing
      -smr\_mmr\_comparison publications\_and\_subscriptions smr\_replication mmr\_replication asynchronous snapshot\_and\_synchronous snapshot\_only\_publications snapshot\_replication sync\_replication\_trigger\_based sync\_replication\_log\_based requirements\_and\_restrictions mmr\_parallel\_replication table\_filters +smr_mmr_comparison publications_and_subscriptions smr_replication mmr_replication asynchronous snapshot_and_synchronous snapshot_only_publications snapshot_replication sync_replication_trigger_based sync_replication_log_based requirements_and_restrictions mmr_parallel_replication table_filters
      diff --git a/product_docs/docs/eprs/6.2/02_overview/03_replication_server_components_and_architecture/01_physical_components.mdx b/product_docs/docs/eprs/6.2/02_overview/03_replication_server_components_and_architecture/01_physical_components.mdx index 76ae72b5dd1..6213546576d 100644 --- a/product_docs/docs/eprs/6.2/02_overview/03_replication_server_components_and_architecture/01_physical_components.mdx +++ b/product_docs/docs/eprs/6.2/02_overview/03_replication_server_components_and_architecture/01_physical_components.mdx @@ -4,7 +4,6 @@ title: "Physical Components" - xDB Replication Server is not a single, executable program, but rather a set of programs along with data stores containing configuration information and metadata that work together to form a replication system. The following diagram illustrates the components of xDB Replication Server and how they are used to form a complete, basic, single-master replication system. @@ -46,17 +45,8 @@ The publication server creates and manages the metadata for publications. When a Whenever a primary node is added to a multi-master replication system, the publication server creates database objects in the control schema of the primary node for recording metadata. For non-PDN nodes, the publication server also calls EnterpriseDB’s Migration Toolkit to create the publication table definitions if so chosen at primary node creation time. -
      - -
      - -Note - -
      - -See [Control Schema and Control Schema Objects](../../02_overview/03_replication_server_components_and_architecture/#control_schema_and_objects) for information on the control schema. - -
      +!!! Note + See [Control Schema and Control Schema Objects](#control_schema_and_objects) for information on the control schema. The publication server is also responsible for performing a replication. For snapshot replications, the publication server calls EnterpriseDB’s Migration Toolkit to perform the snapshot. @@ -68,17 +58,8 @@ The publication server may run on the same host as the other xDB Replication Ser ## Subscription Server -
      - -
      - -Note - -
      - -The subscription server is required only for single-master replication systems. The subscription server does not need to be running, nor even installed if only multi-master replication systems are in use. - -
      +!!! Note + The subscription server is required only for single-master replication systems. The subscription server does not need to be running, nor even installed if only multi-master replication systems are in use. The subscription server creates and manages the metadata for subscriptions. When a subscription is created, the subscription server creates database objects in the control schema of the publication database to record metadata about the subscription. @@ -104,7 +85,7 @@ Specifically, the xDB Replication Configuration file is accessed in the followin The following table contains a brief description of the parameters in the xDB Replication Configuration file. | | | -|------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | **Parameter** | **Description** | | `admin_user` | xDB administrator user name (the admin user name) for registering a publication server or a subscription server on this host containing the xDB Replication Configuration file | | `admin_password` | Encrypted password of the admin user | @@ -121,11 +102,11 @@ The xDB Replication Server product creates the content of this file as follows: - The xDB Replication Configuration file and some of its initial content are created when you install a publication server or subscription server on a host during the xDB Replication Server installation process. - Parameters `admin_user` and `admin_password` are determined during the xDB Replication Server installation process. See Chapter [Installation and Uninstallation](../../03_installation/#installation) for how the content of these parameters are determined. -- Parameters `database, user, password, port, host,` and `type` are set with the connection and authentication information of the first publication database definition you create with the xDB Replication Console or xDB Replication Server CLI. This database is designated as the controller database. See [Controller Database](../../02_overview/03_replication_server_components_and_architecture/#controller_database) for information on the controller database. See [Adding a Publication Database](../../05_smr_operation/02_creating_publication/#adding_pub_database) for creating a publication database definition for a single-master replication system. See [Adding the Primary definition node](../../06_mmr_operation/#adding_pdn) for creating the publication database definition for a multi-master replication system. +- Parameters `database, user, password, port, host,` and `type` are set with the connection and authentication information of the first publication database definition you create with the xDB Replication Console or xDB Replication Server CLI. This database is designated as the controller database. See [Controller Database](#controller-database) for information on the controller database. See [Adding a Publication Database](../../05_smr_operation/02_creating_publication/02_adding_pub_database/#adding_pub_database) for creating a publication database definition for a single-master replication system. See [Adding the Primary definition node](../../06_mmr_operation/02_creating_publication_mmr/#adding_pdn) for creating the publication database definition for a multi-master replication system. The following is an example of the content of an xDB Replication Configuration file: -``` text +```text #xDB Replication Server Configuration Properties #Tue May 26 13:45:37 GMT-05:00 2015 port=1521 @@ -138,19 +119,10 @@ database=xe host=192.168.2.23 ``` -
      - -
      - -Note - -
      - -The passwords for the admin user name and the controller database user name are encrypted. Should you change either of these passwords, you must modify the corresponding password parameters in the xDB Replication Configuration file to contain the encrypted form of the new password. See [Encrypting the Password in the xDB Replication Configuration File](#encrypt_password_in%20conf_file) for directions on how to generate the encrypted form of a password. - -
      +!!! Note + The passwords for the admin user name and the controller database user name are encrypted. Should you change either of these passwords, you must modify the corresponding password parameters in the xDB Replication Configuration file to contain the encrypted form of the new password. See [Encrypting the Password in the xDB Replication Configuration File](../../10_appendix/04_miscellaneous_xdb_processing_topics/02_encrypt_password_inconf_file/#encrypt_password_in%20conf_file) for directions on how to generate the encrypted form of a password. -See [Post-Installation Host Environment](../../03_installation/#post_installation_host_environment) for the file system location of the xDB Replication Configuration file. +See [Post-Installation Host Environment](../../03_installation/05_post_installation_host_environment/#post_installation_host_environment) for the file system location of the xDB Replication Configuration file. @@ -162,7 +134,7 @@ The content of the file is created by the xDB Replication Server installer when The following is an example of the content of an xDB Startup Configuration file: -``` text +```text #!/bin/sh JAVA_EXECUTABLE_PATH="/usr/bin/java" @@ -176,7 +148,7 @@ SUBPORT=9052 The following table contains a brief description of the parameters in the xDB Startup Configuration file. | | | -|-------------------------|----------------------------------------------------------------------------------------------------------------------------------------------| +| ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | | **Parameter** | **Description** | | `JAVA_EXECUTABLE_PATH` | Directory path to the Java runtime program used to start and run the publication and subscription servers | | `JAVA_MINIMUM_VERSION` | The earliest JRE version that can be used by the publication and subscription servers | @@ -193,13 +165,13 @@ The `JAVA_EXECUTABLE_PATH` parameter specifies the location of the Java runtime The `JAVA_BITNESS_REQUIRED` parameter must not be altered. If the installed value is modified, or if it does not match the bitness of the Java virtual machine as identified by `JAVA_EXECUTABLE_PATH`, a number of errors may occur, which include failure of the publication and subscription servers to start and registration failure of the xDB Replication Server product. -See [Setting Heap Memory Size for the Publication and Subscription Servers](../../05_smr_operation/01_prerequisites/#setting_heap_size_for_pub_and_sub) for information on setting the `JAVA_HEAP_SIZE` parameter. +See [Setting Heap Memory Size for the Publication and Subscription Servers](../../05_smr_operation/01_prerequisites/01_setting_heap_size_for_pub_and_sub/#setting_heap_size_for_pub_and_sub) for information on setting the `JAVA_HEAP_SIZE` parameter. -See [Firewalls and Access to Ports](../../05_smr_operation/01_prerequisites/#firewalls_and_access_to_ports) Setting Heap Memory Size for the Publication and Subscription Servers for information on the `PUBPORT` and `SUBPORT` parameters. +See [Firewalls and Access to Ports](../../05_smr_operation/01_prerequisites/06_verifying_host_accessibility/#firewalls_and_access_to_ports) Setting Heap Memory Size for the Publication and Subscription Servers for information on the `PUBPORT` and `SUBPORT` parameters. After making any modifications to the xDB Startup Configuration file, the publication server and subscription server must be restarted. -See [Post-Installation Host Environment](../../03_installation/#post_installation_host_environment) for the file system location of the xDB Startup Configuration file. +See [Post-Installation Host Environment](../../03_installation/05_post_installation_host_environment/#post_installation_host_environment) for the file system location of the xDB Startup Configuration file. ## xDB Replication Console @@ -211,7 +183,7 @@ Through a single xDB Replication Console, you can configure and operate a replic In the preceding figure, there are two Postgres installations running on two networked hosts, each with its own xDB Replication Server installation. Each host is running a publication server and a subscription server. -The xDB Replication Console on each host can access and manage the replication systems on the other host if given the network IP address, port number, user name, and password with which the publication server and subscription server were installed with on the remote host. See Chapter [Introduction to the xDB Replication Console](../../#intro_xdb_console) for information on the user interface of the xDB Replication Console. +The xDB Replication Console on each host can access and manage the replication systems on the other host if given the network IP address, port number, user name, and password with which the publication server and subscription server were installed with on the remote host. See Chapter [Introduction to the xDB Replication Console](../../04_intro_xdb_console/#intro_xdb_console) for information on the user interface of the xDB Replication Console. ## xDB Replication Server Command Line Interface @@ -227,7 +199,7 @@ Chapter [xDB Replication Server Command Line Interface](../../08_xdb_cli/#xdb_cl The publication database contains the tables and views used in a publication. The publication database may be running on the same host or on a different host than where the publication server is running as long as the hosts are accessible to each other by a network. -Each publication database also contains a control schema, which is a collection of database objects containing metadata on all replication systems, both single-master and multi-master, controlled by the publication server connected to this publication database. See [Control Schema and Control Schema Objects](../../02_overview/03_replication_server_components_and_architecture/#control_schema_and_objects) for information on the control schema. +Each publication database also contains a control schema, which is a collection of database objects containing metadata on all replication systems, both single-master and multi-master, controlled by the publication server connected to this publication database. See [Control Schema and Control Schema Objects](#control_schema_and_objects) for information on the control schema. In a multi-master replication system, all primary nodes are considered publication databases. @@ -235,17 +207,8 @@ A database plays the roles of both a publication database and a subscription dat ## Subscription Database -
      - -
      - -Note - -
      - -The subscription database applies only to single-master replication systems. - -
      +!!! Note + The subscription database applies only to single-master replication systems. The subscription database contains the tables created from a subscription. The subscription database may be running on the same host or on a different host than where the subscription server is running as long as the hosts are accessible to each other by a network. @@ -257,7 +220,7 @@ A database plays the roles of both a publication database and a subscription dat In a multi-master replication system, the databases containing the set of tables (the publication) for which row changes are to be replicated are called primary nodes. The primary nodes may be running on the same host or on different hosts than where the publication server is running as long as the hosts are accessible to each other by a network. -Each primary node also contains a control schema, which is a collection of database objects containing metadata on all replication systems, both single-master and multi-master, controlled by the publication server connected to this primary node. See [Control Schema and Control Schema Objects](../../02_overview/03_replication_server_components_and_architecture/#control_schema_and_objects) for information on the control schema. The primary nodes may be running under the same, or under multiple database server instances (Postgres database clusters). +Each primary node also contains a control schema, which is a collection of database objects containing metadata on all replication systems, both single-master and multi-master, controlled by the publication server connected to this primary node. See [Control Schema and Control Schema Objects](#control_schema_and_objects) for information on the control schema. The primary nodes may be running under the same, or under multiple database server instances (Postgres database clusters). @@ -269,7 +232,7 @@ As subsequent databases are added as primary nodes to the replication system, th After the multi-master replication system is defined, it is possible to reassign the role of the primary definition node to another primary node in the multi-master replication system. The significance of this reassignment is that snapshots can be taken from the newly appointed primary definition node to other primary nodes. This could be beneficial if the data in the old primary definition node becomes corrupt or out-of-sync with the other primary nodes and needs to be completely refreshed by a snapshot from another primary node. -As with all primary nodes, the primary definition node contains a control schema, which is a collection of database objects containing metadata on all replication systems, both single-master and multi-master, controlled by the publication server connected to this primary node. See [Control Schema and Control Schema Objects](../../02_overview/03_replication_server_components_and_architecture/#control_schema_and_objects) for information on the control schema. +As with all primary nodes, the primary definition node contains a control schema, which is a collection of database objects containing metadata on all replication systems, both single-master and multi-master, controlled by the publication server connected to this primary node. See [Control Schema and Control Schema Objects](#control_schema_and_objects) for information on the control schema. @@ -285,24 +248,15 @@ Each publication database in a trigger-based, single-master replication system a Similarly, for a multi-master replication system, each trigger-based primary node contains control schema objects with the changes that have been made to rows in the publication residing on that primary node, and the statuses of whether or not those changes have been applied to the other primary nodes in the multi-master replication system. -
      - -
      - -Note - -
      - -For log-based single-master and multi-master replication systems, changes are extracted from the database server WAL files instead of being stored in control schema objects. See [Synchronization Replication with the Log-Based Method](../../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#sync_replication_log_based) for information on the log-based method. - -
      +!!! Note + For log-based single-master and multi-master replication systems, changes are extracted from the database server WAL files instead of being stored in control schema objects. See [Synchronization Replication with the Log-Based Method](../02_replication_concepts_and_definitions/10_sync_replication_log_based/#sync_replication_log_based) for information on the log-based method. The actual, physical database schemas implementing the control schema to which the control schema objects belong varies depending upon the database type (Oracle, SQL Server, or Postgres) and how the database was initially configured for use by xDB Replication Server. The following points should be noted about the control schema: - The control schema and its control schema objects are created in every publication database of both single-master and multi-master replication systems. That is, all master (publication) databases of single-master replication systems and all primary nodes of multi-master replication systems. -- When a new primary database is added for a single-master replication system or a new primary node for a multi-master replication system, a snapshot operation is used to replicate the control schema to the newly added publication database assuming there is an existing controller database. See [Controller Database](../../02_overview/03_replication_server_components_and_architecture/#controller_database) for information regarding the controller database. +- When a new primary database is added for a single-master replication system or a new primary node for a multi-master replication system, a snapshot operation is used to replicate the control schema to the newly added publication database assuming there is an existing controller database. See [Controller Database](#controller-database) for information regarding the controller database. - Updates to the configuration of a single-master replication system or a multi-master replication system made by the xDB Replication Console or the xDB Replication Server Command Line Interface are synchronized between the control schemas on all publication databases to ensure that the metadata is consistent across all publication databases. - The secondary (subscription) database of single-master replication systems contains one, single table as its metadata database object. The term, subscription metadata object, is specifically used to refer to this database object in the subscription database. The general terms, control schema and control schema objects refer to the database objects in the publication databases. - The control schema objects in all databases controlled by the same given publication server generally contain the same information. This allows any such database to provide the information needed by xDB Replication Server to control all single-master and multi-master replication systems running under that given publication server. @@ -322,24 +276,15 @@ Should the initial connection to the controller database fail for some reason, y The initial controller database is determined by the first publication database definition created by the xDB Replication Console or the xDB Replication Server CLI either for a single-master or multi-master replication system. The publication server records the connection and authentication information in the xDB Replication Configuration file. -If you wish to delete the publication database definition of the current controller database, you must first designate another publication database, defined under the same publication server, as the controller using the xDB Replication Console. See [Switching the Controller Database](../../07_common_operations/#switching_controller_db) for directions on switching the controller to another publication database. +If you wish to delete the publication database definition of the current controller database, you must first designate another publication database, defined under the same publication server, as the controller using the xDB Replication Console. See [Switching the Controller Database](../../07_common_operations/07_switching_controller_db/#switching_controller_db) for directions on switching the controller to another publication database. The following are some points regarding the controller database: - The database server running the controller database must be running and accessible before starting the publication server and subscription server. - For a single-master replication system, the publication server under which the publication database and publication are defined and the subscription server under which the subscription database and the subscription related to the publication are defined, must both connect to the same the controller database. This gives the publication server and the subscription server access to the same control schema. -- When changes are made to the metadata maintained by the control schema in the controller database, these changes are replicated by the publication server to the control schemas of all other publication databases. This ensures that the metadata of all single-master and multi-master systems are complete and consistent in the control schemas of all publication databases. This allows you to switch the controller database at some later point in time. See [Switching the Controller Database](../../07_common_operations/#switching_controller_db) for information on switching the controller database. - -
      - -
      - -Note - -
      - -If the controller database is an Oracle or a SQL Server publication database, then a second Oracle or SQL Server publication database cannot be added to create a second single-master replication system. In order for xDB Replication Server to run more than one single-master replication systems consisting of Oracle or SQL Server publication databases, a Postgres publication database must be designated as the controller database. +- When changes are made to the metadata maintained by the control schema in the controller database, these changes are replicated by the publication server to the control schemas of all other publication databases. This ensures that the metadata of all single-master and multi-master systems are complete and consistent in the control schemas of all publication databases. This allows you to switch the controller database at some later point in time. See [Switching the Controller Database](../../07_common_operations/07_switching_controller_db/#switching_controller_db) for information on switching the controller database. -
      +!!! Note + If the controller database is an Oracle or a SQL Server publication database, then a second Oracle or SQL Server publication database cannot be added to create a second single-master replication system. In order for xDB Replication Server to run more than one single-master replication systems consisting of Oracle or SQL Server publication databases, a Postgres publication database must be designated as the controller database. Once you have multiple Oracle or SQL Server publication databases set up in single-master replication systems with a Postgres controller database, do not switch the controller database to an Oracle or SQL Server publication database. diff --git a/product_docs/docs/eprs/6.2/02_overview/03_replication_server_components_and_architecture/02_logical_components.mdx b/product_docs/docs/eprs/6.2/02_overview/03_replication_server_components_and_architecture/02_logical_components.mdx index a0d38eae49c..4bd63254fd6 100644 --- a/product_docs/docs/eprs/6.2/02_overview/03_replication_server_components_and_architecture/02_logical_components.mdx +++ b/product_docs/docs/eprs/6.2/02_overview/03_replication_server_components_and_architecture/02_logical_components.mdx @@ -4,7 +4,6 @@ title: "Logical Components" - This section discusses the logical components of a replication system, how they are related to each other, and how they correspond to the programs and databases in a replication system. The logical components are created when you build a replication system using the xDB Replication Console or the xDB Replication Server CLI. The logical components are stored as part of the replication system metadata in the control schema of the publication databases. @@ -23,7 +22,7 @@ For a single-master replication system, you then perform the following: For a multi-master replication system, you create additional primary nodes by creating additional publication database definitions. -Each of these steps creates a logical component that is represented by a node in the replication tree of the xDB Replication Console. See Chapter [Introduction to the xDB Replication Console](../../#intro_xdb_console) for a description of the xDB Replication Console. A brief description of these components is given in the following sections. +Each of these steps creates a logical component that is represented by a node in the replication tree of the xDB Replication Console. See Chapter [Introduction to the xDB Replication Console](../../04_intro_xdb_console/#intro_xdb_console) for a description of the xDB Replication Console. A brief description of these components is given in the following sections. ## Publication Server @@ -33,7 +32,7 @@ Using the xDB Replication Console or the xDB Replication Server CLI, a publicati When viewed in the xDB Replication Console, a registered publication server appears under the top level Replication Servers node in the replication tree. All publication related logical components are created subordinate to a registered publication server and appear underneath it in the replication tree. -Section [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server) gives directions for registering a publication server for a single-master replication system. See [Registering a Publication Server](../../06_mmr_operation/#registering_pub_server) for a multi-master replication system. +Section [Registering a Publication Server](../../05_smr_operation/02_creating_publication/01_registering_publication_server/#registering_publication_server) gives directions for registering a publication server for a single-master replication system. See [Registering a Publication Server](../../06_mmr_operation/02_creating_publication_mmr/#registering_pub_server) for a multi-master replication system. ## Replication System Type (SMR/MMR) @@ -57,19 +56,10 @@ In a single-master replication system, a publication database definition identif In a multi-master replication system, each publication database definition subordinate to the MMR type node of a given publication server identifies a primary node in a single, multi-master replication system. -
      - -
      - -Note - -
      - -Currently, there can only be one multi-master replication system per publication server. - -
      +!!! Note + Currently, there can only be one multi-master replication system per publication server. -Section [Adding a Publication Database](../../05_smr_operation/02_creating_publication/#adding_pub_database) discusses creating a publication database definition for a single-master replication system. See [Adding the Primary definition node](../../06_mmr_operation/#adding_pdn) and [Creating Additional Primary nodes](../../06_mmr_operation/#creating_primary_nodes) for a multi-master replication system. +Section [Adding a Publication Database](../../05_smr_operation/02_creating_publication/02_adding_pub_database/#adding_pub_database) discusses creating a publication database definition for a single-master replication system. See [Adding the Primary definition node](../../06_mmr_operation/02_creating_publication_mmr/#adding_pdn) and [Creating Additional Primary nodes](../../06_mmr_operation/03_creating_primary_nodes/#creating_primary_nodes) for a multi-master replication system. ## Publication @@ -81,41 +71,23 @@ Subordinate to a publication database definition in a multi-master replication s In a multi-master replication system, the database user name specified in the publication database definition of the publication’s parent, as viewed in the replication tree, must have superuser privileges and be the owner of all tables to be included in the publication. -Section [Adding a Publication](../../05_smr_operation/02_creating_publication/#adding_publication) discusses creating a publication for a single-master replication system. See [Adding a Publication](../../06_mmr_operation/#add_pub_mmr) for a multi-master replication system. +Section [Adding a Publication](../../05_smr_operation/02_creating_publication/03_adding_publication/#adding_publication) discusses creating a publication for a single-master replication system. See [Adding a Publication](../../06_mmr_operation/02_creating_publication_mmr/#add_pub_mmr) for a multi-master replication system. ## Subscription Server -
      - -
      - -Note - -
      - -The subscription server applies only to single-master replication systems. You do not register a subscription server when creating a multi-master replication system. - -
      +!!! Note + The subscription server applies only to single-master replication systems. You do not register a subscription server when creating a multi-master replication system. The first step in creating a subscription is to identify the subscription server that is to be used to manage the subscription. This process is called registering the subscription server. Using the xDB Replication Console or the xDB Replication Server CLI, a subscription server is registered by giving the IP address and port number of the host on which the subscription server is running, along with the admin user name and password stored in the xDB Replication Configuration file located on the host running the subscription server. (This information is determined during the subscription server installation process.) -When viewed in the xDB Replication Console, a registered subscription server appears under the top level Replication Servers node in the replication tree. All subscription related logical components are created subordinate to a registered subscription server and appear underneath it in the replication tree. Section [Registering a Subscription Server](../../05_smr_operation/03_creating_subscription/#registering_subscription_server) gives directions for registering a subscription server. +When viewed in the xDB Replication Console, a registered subscription server appears under the top level Replication Servers node in the replication tree. All subscription related logical components are created subordinate to a registered subscription server and appear underneath it in the replication tree. Section [Registering a Subscription Server](../../05_smr_operation/03_creating_subscription/01_registering_subscription_server/#registering_subscription_server) gives directions for registering a subscription server. ## Subscription Database Definition -
      - -
      - -Note - -
      - -The subscription database definition applies only to single-master replication systems. You do not create a subscription database definition when creating a multi-master replication system. - -
      +!!! Note + The subscription database definition applies only to single-master replication systems. You do not create a subscription database definition when creating a multi-master replication system. Subordinate to a registered subscription server, one or more subscription database definitions can be created. @@ -125,24 +97,15 @@ The subscription server uses this information to connect to the subscription dat The publication server also uses this information to connect to the subscription database when it performs replications. -Section [Adding a Subscription Database](../../05_smr_operation/03_creating_subscription/#adding_subscription_database) discusses creating a subscription database definition. +Section [Adding a Subscription Database](../../05_smr_operation/03_creating_subscription/02_adding_subscription_database/#adding_subscription_database) discusses creating a subscription database definition. ## Subscription -
      - -
      - -Note - -
      - -The subscription applies only to single-master replication systems. You do not create a subscription when creating a multi-master replication system. - -
      +!!! Note + The subscription applies only to single-master replication systems. You do not create a subscription when creating a multi-master replication system. Subordinate to a subscription database definition, one or more subscriptions can be defined. A subscription associates a publication to a subscription database to which the publication’s tables and views are to be replicated. Each subscription can be associated with one and only one publication. -Section [Adding a Subscription](../../05_smr_operation/03_creating_subscription/#adding_subscription) discusses creating a subscription. +Section [Adding a Subscription](../../05_smr_operation/03_creating_subscription/03_adding_subscription/#adding_subscription) discusses creating a subscription. diff --git a/product_docs/docs/eprs/6.2/02_overview/03_replication_server_components_and_architecture/03_xdb_replication_system_examples.mdx b/product_docs/docs/eprs/6.2/02_overview/03_replication_server_components_and_architecture/03_xdb_replication_system_examples.mdx index a20fec4429a..680e682ae8d 100644 --- a/product_docs/docs/eprs/6.2/02_overview/03_replication_server_components_and_architecture/03_xdb_replication_system_examples.mdx +++ b/product_docs/docs/eprs/6.2/02_overview/03_replication_server_components_and_architecture/03_xdb_replication_system_examples.mdx @@ -4,7 +4,6 @@ title: "xDB Replication System Examples" - This section contains examples of replication systems and how the logical components are used to define them. In the accompanying diagrams, the logical components, represented by nodes in the replication tree of the xDB Replication Console, are superimposed on physical component diagrams. The logical components are shaded in yellow to aid in identifying them in the diagrams. @@ -27,7 +26,7 @@ The following screen capture shows how the logical components of this replicatio ![Oracle to Postgres replication tree](/../../images/image14.png) -See Chapter [Introduction to the xDB Replication Console](../../#intro_xdb_console) for an introduction to the xDB Replication Console. +See Chapter [Introduction to the xDB Replication Console](../../04_intro_xdb_console/#intro_xdb_console) for an introduction to the xDB Replication Console. ## SQL Server to PostgreSQL or Advanced Server Replication @@ -38,7 +37,7 @@ The following is an illustration of a basic SQL Server to PostgreSQL or Advanced The following describes the logical components in the preceding diagram: - The publication server to be used is identified by registering its network location, user name, and password. -- A publication database definition is created subordinate to the SMR type node under the publication server. The SQL Server login pubuser is specified in the definition along with the database network location and database identifier. The schema pubuser was created during the publication database preparation step as described in [SQL Server Publication Database](../../05_smr_operation/01_prerequisites/#sql_server_pub_db). The `pubuser` schema along with the control schema consisting of three physical schemas `_edb_replicator_pub`, `_edb_replicator_sub`, and `_edb_scheduler` are populated with the control schema objects for the replication system’s metadata when you create the publication database definition. +- A publication database definition is created subordinate to the SMR type node under the publication server. The SQL Server login pubuser is specified in the definition along with the database network location and database identifier. The schema pubuser was created during the publication database preparation step as described in [SQL Server Publication Database](../../05_smr_operation/01_prerequisites/04_preparing_pub_database/#sql_server_pub_db). The `pubuser` schema along with the control schema consisting of three physical schemas `_edb_replicator_pub`, `_edb_replicator_sub`, and `_edb_scheduler` are populated with the control schema objects for the replication system’s metadata when you create the publication database definition. - A publication named pub is created subordinate to the publication database definition. The publication consists of table `A` in schema `S1` and tables `B` and `C` in schema `S2`. - The subscription server to be used is identified by registering its network location, user name, and password. - A subscription database definition is created subordinate to the subscription server. The Postgres database user name `subuser` is specified in the definition along with the database network location and database identifier. @@ -48,7 +47,7 @@ The following screen capture shows how the logical components of this replicatio ![SQL Server to Postgres replication tree](/../../images/image16.png) -See Chapter [Introduction to the xDB Replication Console](../../#intro_xdb_console) for an introduction to the xDB Replication Console. +See Chapter [Introduction to the xDB Replication Console](../../04_intro_xdb_console/#intro_xdb_console) for an introduction to the xDB Replication Console. ## Advanced Server to Oracle Replication @@ -69,7 +68,7 @@ The following screen capture shows how the logical components of this replicatio ![Advanced Server to Oracle replication tree](/../../images/image18.png) -See Chapter [Introduction to the xDB Replication Console](../../#intro_xdb_console) for an introduction to the xDB Replication Console. +See Chapter [Introduction to the xDB Replication Console](../../04_intro_xdb_console/#intro_xdb_console) for an introduction to the xDB Replication Console. ## PostgreSQL to Oracle Replication @@ -80,7 +79,7 @@ The following is an illustration of a basic PostgreSQL to Oracle single-master r The following describes the logical components in the preceding diagram: - The publication server to be used is identified by registering its network location, user name, and password. -- A publication database definition is created subordinate to the SMR type node under the publication server. The Postgres database user name pubuser is specified in the definition along with the database network location and database identifier. The publication server creates the control schema consisting of three physical schemas \_edb\_replicator\_pub, \_edb\_replicator\_sub, and \_edb\_scheduler and populates them with the control schema objects for the replication system’s metadata when you create the publication database definition. +- A publication database definition is created subordinate to the SMR type node under the publication server. The Postgres database user name pubuser is specified in the definition along with the database network location and database identifier. The publication server creates the control schema consisting of three physical schemas \_edb_replicator_pub, \_edb_replicator_sub, and \_edb_scheduler and populates them with the control schema objects for the replication system’s metadata when you create the publication database definition. - A publication named pub is created subordinate to the publication database definition. The publication consists of table A in schema S1 and tables B and C in schema S2. - The subscription server to be used is identified by registering its network location, user name, and password. - A subscription database definition is created subordinate to the subscription server. The Oracle database user name subuser is specified in the definition along with the database network location and database identifier. @@ -109,7 +108,7 @@ The following screen capture shows how the logical components of this replicatio ![Postgres to SQL Server replication tree](/../../images/image20.png) -See [Introduction to the xDB Replication Console](../../#intro_xdb_console) for an introduction to the xDB Replication Console. +See [Introduction to the xDB Replication Console](../../04_intro_xdb_console/#intro_xdb_console) for an introduction to the xDB Replication Console. ## Postgres Multi-Master Replication @@ -123,11 +122,11 @@ The following describes the logical components in the preceding diagram: - A publication database definition is created subordinate to the MMR type node under the publication server. This first publication database definition identifies the primary definition node. The Postgres database user name `MMRuser_a` is specified in the definition along with the database network location and database identifier. The publication server creates the control schema consisting of three physical schemas `_edb_replicator_pub`, `_edb_replicator_sub`, and `_edb_scheduler` and populates them with the control schema objects for the replication system’s metadata when you create the publication database definition. - A publication named pub is created subordinate to the publication database definition. The publication consists of table `A` in schema `S1` and tables `B` and `C` in schema `S2`. - A second primary node is added by creating another publication database definition subordinate to the MMR type node of the publication server under which the primary definition node resides. The Postgres database user name `MMRuser_b` is specified in the definition along with the database network location and database identifier to create the second primary node. -- When you add the second primary node, you can choose to have the publication server create schemas S1 and S2 and the table definitions for `A, B`, and `C` for you, or you could have manually created the schemas and table definitions beforehand. The publication server creates the control schema consisting of three physical schemas `_edb_replicator_pub`, \_edb\_replicator\_sub, and \_edb\_scheduler under which it creates the control schema objects to store the primary node’s metadata. When defining the primary node, you can choose to have the publication server populate these tables with rows from the publication at this time, or you can defer table loading to a later point in time. +- When you add the second primary node, you can choose to have the publication server create schemas S1 and S2 and the table definitions for `A, B`, and `C` for you, or you could have manually created the schemas and table definitions beforehand. The publication server creates the control schema consisting of three physical schemas `_edb_replicator_pub`, \_edb_replicator_sub, and \_edb_scheduler under which it creates the control schema objects to store the primary node’s metadata. When defining the primary node, you can choose to have the publication server populate these tables with rows from the publication at this time, or you can defer table loading to a later point in time. - A third primary node is added in a similar manner using the Postgres database user name `MMRuser_c`. The following screen capture shows how the logical components of this replication system appear in the xDB Replication Console replication tree. ![Postgres multi-master replication tree](/../../images/image22.png) -See Chapter [Introduction to the xDB Replication Console](../../#intro_xdb_console) for an introduction to the xDB Replication Console. +See Chapter [Introduction to the xDB Replication Console](../../04_intro_xdb_console/#intro_xdb_console) for an introduction to the xDB Replication Console. diff --git a/product_docs/docs/eprs/6.2/02_overview/03_replication_server_components_and_architecture/index.mdx b/product_docs/docs/eprs/6.2/02_overview/03_replication_server_components_and_architecture/index.mdx index 4564191ad7d..799ed27bb6a 100644 --- a/product_docs/docs/eprs/6.2/02_overview/03_replication_server_components_and_architecture/index.mdx +++ b/product_docs/docs/eprs/6.2/02_overview/03_replication_server_components_and_architecture/index.mdx @@ -4,11 +4,10 @@ title: "xDB Replication Server Components and Architecture" - -This section describes the components and architecture of xDB Replication Server. Section [Physical Components](../02_overview/03_replication_server_components_and_architecture/#physical_components) describes the executable programs, files, and databases that comprise xDB Replication Server. Section [Logical Components](../02_overview/03_replication_server_components_and_architecture/#logical_components) defines the logical components of a replication system and how they correspond to the programs and databases. Section [xDB Replication System Examples](../02_overview/03_replication_server_components_and_architecture/#xdb_replication_system_examples) illustrates some examples of replication systems. +This section describes the components and architecture of xDB Replication Server. Section [Physical Components](01_physical_components/#physical_components) describes the executable programs, files, and databases that comprise xDB Replication Server. Section [Logical Components](02_logical_components/#logical_components) defines the logical components of a replication system and how they correspond to the programs and databases. Section [xDB Replication System Examples](03_xdb_replication_system_examples/#xdb_replication_system_examples) illustrates some examples of replication systems.
      -physical\_components logical\_components xdb\_replication\_system\_examples +physical_components logical_components xdb_replication_system_examples
      diff --git a/product_docs/docs/eprs/6.2/02_overview/04_design_replication_system/01_general_steps.mdx b/product_docs/docs/eprs/6.2/02_overview/04_design_replication_system/01_general_steps.mdx index 6b5b143e578..e2df6e496db 100644 --- a/product_docs/docs/eprs/6.2/02_overview/04_design_replication_system/01_general_steps.mdx +++ b/product_docs/docs/eprs/6.2/02_overview/04_design_replication_system/01_general_steps.mdx @@ -4,7 +4,6 @@ title: "General Steps" - The following steps provide a general guideline for implementing a replication system. **Step 1:** Determine if xDB Replication Server is the right solution for your requirements and you have chosen the best solution for your particular needs. xDB Replication Server can be used to implement single-master or multi-master replication systems. For single-master replication systems, the distinguishing characteristic of xDB Replication Server is its ability to replicate from an Oracle database to a PostgreSQL or Advanced Server database, from a SQL Server database to a PostgreSQL or Advanced Server database, from an Advanced Server database to an Oracle database, or from a PostgreSQL or Advanced Server database to a SQL Server database. @@ -13,7 +12,7 @@ The following steps provide a general guideline for implementing a replication s **Step 3:** Plan the logistics of your replication system. How many tables do you expect to replicate and what are their sizes in total number of bytes and number of rows? What percentage of rows do you expect to have been changed on each table between each replication? Are your database servers required to run on dedicated machines? -**Step 4:** Design your replication system. Determine whether your replication system will be distributed or will run on a single host. Determine the publications and subscriptions you will need and their tables and views. Make sure your publication tables meet the requirements for an xDB Replication Server publication. See [Design Considerations](../../02_overview/04_design_replication_system/#design_considerations) and [Restrictions on Replicated Database Objects](../../02_overview/04_design_replication_system/#restrictions_on_replicated_database_objects) for details. +**Step 4:** Design your replication system. Determine whether your replication system will be distributed or will run on a single host. Determine the publications and subscriptions you will need and their tables and views. Make sure your publication tables meet the requirements for an xDB Replication Server publication. See [Design Considerations](02_design_considerations/#design_considerations) and [Restrictions on Replicated Database Objects](03_restrictions_on_replicated_database_objects/#restrictions_on_replicated_database_objects) for details. **Step 5:** Implement and test your replication system in a test environment. Try out your replication system on a subset of your publication data to ensure the replication process works as expected. Make sure the resulting replicated tables can be used as expected in your application. Establish preliminary metrics on how long the replication process will be expected to take in your full production environment. diff --git a/product_docs/docs/eprs/6.2/02_overview/04_design_replication_system/02_design_considerations.mdx b/product_docs/docs/eprs/6.2/02_overview/04_design_replication_system/02_design_considerations.mdx index 8f2cc8518b8..e884059af0d 100644 --- a/product_docs/docs/eprs/6.2/02_overview/04_design_replication_system/02_design_considerations.mdx +++ b/product_docs/docs/eprs/6.2/02_overview/04_design_replication_system/02_design_considerations.mdx @@ -4,7 +4,6 @@ title: "Design Considerations" - Keep the following points in mind when designing a replication system: - Multi-master replication is supported only on Postgres databases. In addition, Advanced Server databases must be running in the same compatibility mode – either all Oracle or all PostgreSQL. @@ -18,8 +17,8 @@ Keep the following points in mind when designing a replication system: - A database can contain both publications and subscriptions. - A given publication server can support only one multi-master replication system. All primary nodes created subordinate to a given publication server are assumed to be part of the same multi-master replication system. - A table that is created as a result of a subscription can be used in another publication. Thus, a publication can replicate data to a subscription which in turn, can be used in a publication to replicate to another subscription, thus creating a cascaded replication architecture. -- There are restrictions on the combinations and configurations of database servers that can be used for a publication and its subscription. See [Advanced Server Compatibility Configuration Modes](../../10_appendix/02_upgrading_to_xdb6_2/#adv_server_compatibility_conf_modes) for details on these restrictions. +- There are restrictions on the combinations and configurations of database servers that can be used for a publication and its subscription. See [Advanced Server Compatibility Configuration Modes](../../10_appendix/02_upgrading_to_xdb6_2/01_permitted_conf_and_permutations/#adv_server_compatibility_conf_modes) for details on these restrictions. - All replication system components must be running in order for replication to occur, or before performing any configuration, operation, or modification in the replication system. (The xDB Replication Console is used for the configuration and modification of a replication system. The xDB Replication Console does not need to be running in order for replication to occur.) - In general, the order of creation of a replication system is as follows: 1) Create the required physical databases, database user names, tables, and views to be used in the replication system. 2) Define the replication system logical components using the xDB Replication Console or xDB Replication Server CLI. 3) Perform replication. -- In general, the order of removal of a single-master replication system is as follows: 1) Remove the replication system logical components using the xDB Replication Console or xDB Replication Server CLI starting with the subscriptions (Subscription nodes) and then their parent components (Subscription Database nodes). 2) Unregister the subscription server if you no longer have any need for it. 3) Repeat the same process for the publications. 4) After all replication system logical components have been removed (except for possibly the publication server and subscription server) you can drop any of the physical database objects in Oracle, SQL Server, or Postgres. Do not drop the control schema objects manually, for example by using an SQL command line utility. Doing so may cause the xDB Replication Console and xDB Replication Server CLI to become inoperable. (See [Deleting the Control Schema and Control Schema Objects](#del_control_schema_and%20objects) if this problem occurs.) Deleting the replication system logical components using the xDB Replication Console or xDB Replication Server CLI automatically drops the control schema objects from the physical database. +- In general, the order of removal of a single-master replication system is as follows: 1) Remove the replication system logical components using the xDB Replication Console or xDB Replication Server CLI starting with the subscriptions (Subscription nodes) and then their parent components (Subscription Database nodes). 2) Unregister the subscription server if you no longer have any need for it. 3) Repeat the same process for the publications. 4) After all replication system logical components have been removed (except for possibly the publication server and subscription server) you can drop any of the physical database objects in Oracle, SQL Server, or Postgres. Do not drop the control schema objects manually, for example by using an SQL command line utility. Doing so may cause the xDB Replication Console and xDB Replication Server CLI to become inoperable. (See [Deleting the Control Schema and Control Schema Objects](../../10_appendix/03_resolving_problems/04_troubleshooting_areas/#del_control_schema_and%20objects) if this problem occurs.) Deleting the replication system logical components using the xDB Replication Console or xDB Replication Server CLI automatically drops the control schema objects from the physical database. - The order of removal of a multi-master replication system is as follows: 1) Remove the replication system logical components using the xDB Replication Console or xDB Replication Server CLI starting with the publication database definitions of the non-PDN nodes. 2) Remove the publication from under the primary definition node. 3) Remove the publication database definition of the primary definition node. 4) After all replication system logical components have been removed (except for possibly the publication server) you can drop any of the physical database objects in Postgres. Do not drop the control schema objects manually, for example by using an SQL command line utility. Doing so may cause the xDB Replication Console and xDB Replication Server CLI to become inoperable. diff --git a/product_docs/docs/eprs/6.2/02_overview/04_design_replication_system/03_restrictions_on_replicated_database_objects.mdx b/product_docs/docs/eprs/6.2/02_overview/04_design_replication_system/03_restrictions_on_replicated_database_objects.mdx index 975072df33f..b3513be221e 100644 --- a/product_docs/docs/eprs/6.2/02_overview/04_design_replication_system/03_restrictions_on_replicated_database_objects.mdx +++ b/product_docs/docs/eprs/6.2/02_overview/04_design_replication_system/03_restrictions_on_replicated_database_objects.mdx @@ -4,7 +4,6 @@ title: "Restrictions on Replicated Database Objects" - When a subscription is created in a single-master replication system, the table definitions and most database objects and attributes associated with the publication tables are created in the subscription database by the subscription server. If you so choose, the same process can automatically occur when a primary node is added to a multi-master replication system. The table definitions and most database objects and attributes associated with the publication tables can be created in the newly added primary node by the publication server. @@ -19,35 +18,17 @@ The following is a list of database objects and table attributes that are replic - Check constraints - Indexes -
      - -
      - -Note - -
      - -Foreign key constraints are not replicated by the publication or subscription server in a single-master replication system. However, in a multi-master replication system, foreign key constraints are replicated from the primary definition node to other primary nodes. - -
      - -
      - -
      +!!! Note + Foreign key constraints are not replicated by the publication or subscription server in a single-master replication system. However, in a multi-master replication system, foreign key constraints are replicated from the primary definition node to other primary nodes. -Note - -
      - -Sequences (database objects created by the `CREATE SEQUENCE` statement) are not replicated from the publication database to the subscription databases in a single-master replication system. Sequences are also not replicated from the primary definition node to other primary nodes in a multi-master replication system. - -
      +!!! Note + Sequences (database objects created by the `CREATE SEQUENCE` statement) are not replicated from the publication database to the subscription databases in a single-master replication system. Sequences are also not replicated from the primary definition node to other primary nodes in a multi-master replication system. xDB Replication Server does have some restrictions on the types of tables it can replicate. ## Restrictions on Oracle Database Objects -Certain types of Oracle partitioned tables can be replicated. See [Replicating Oracle Partitioned Tables](../../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/#replicate_oracle_partitioned_tables) for details. +Certain types of Oracle partitioned tables can be replicated. See [Replicating Oracle Partitioned Tables](../../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/04_replicate_oracle_partitioned_tables/#replicate_oracle_partitioned_tables) for details. Oracle global temporary tables cannot be replicated. @@ -76,17 +57,8 @@ SQL Server tables that include the following data types cannot be replicated: - `GEOMETRY` - `SQL_VARIANT` -
      - -
      - -Note - -
      - -See Replicating the SQL Server SQL\_VARIANT Data Type <replicating\_sql\_server\_sql\_variant\_data\_type> for a method to replicate tables containing the `SQL_VARIANT` data type under certain conditions. - -
      +!!! Note + See Replicating the SQL Server SQL_VARIANT Data Type <replicating_sql_server_sql_variant_data_type> for a method to replicate tables containing the `SQL_VARIANT` data type under certain conditions. SQL Server tables with the following data types can be used in snapshot-only publications, but cannot be used in synchronization replications: @@ -101,7 +73,7 @@ SQL Server tables with the following data types can be used in snapshot-only pub ## Restrictions on Postgres Database Objects -For replicating Postgres partitioned tables see [Replicating Postgres Partitioned Tables](../../07_common_operations/#replicating_postgres_partitioned_tables) for details. Postgres tables with the following data types in a column that is part of the primary key cannot be replicated: +For replicating Postgres partitioned tables see [Replicating Postgres Partitioned Tables](../../07_common_operations/10_replicating_postgres_partitioned_tables/#replicating_postgres_partitioned_tables) for details. Postgres tables with the following data types in a column that is part of the primary key cannot be replicated: - `BLOB` - `BYTEA` @@ -124,7 +96,7 @@ Postgres tables that include the following data types cannot be replicated to a - `ROWID` - `SEG` - `Any ARRAY` data type (that is, defined as `data_type[]`) -- Any user-defined data type (that is, defined as `CREATE TYPE` type\_name) +- Any user-defined data type (that is, defined as `CREATE TYPE` type_name) **Restrictions on Range Data Types** diff --git a/product_docs/docs/eprs/6.2/02_overview/04_design_replication_system/04_performance_considerations.mdx b/product_docs/docs/eprs/6.2/02_overview/04_design_replication_system/04_performance_considerations.mdx index 52c20891a97..a81253f825d 100644 --- a/product_docs/docs/eprs/6.2/02_overview/04_design_replication_system/04_performance_considerations.mdx +++ b/product_docs/docs/eprs/6.2/02_overview/04_design_replication_system/04_performance_considerations.mdx @@ -4,7 +4,6 @@ title: "Performance Considerations" - This section discusses provides some general guidelines on performance considerations. ## When to Use Snapshot or Synchronization @@ -37,7 +36,7 @@ If a publication is not a snapshot-only publication, you can perform an on deman When you are in the development and testing phases of your replication system, you would typically use on demand replication so that you can immediately force the replication to occur and analyze the results. -When your replication system is ready for production, a schedule would typically be used so that replications can occur unattended at regular time intervals. See [Creating a Schedule](../../07_common_operations/#creating_schedule) for directions on creating a schedule. +When your replication system is ready for production, a schedule would typically be used so that replications can occur unattended at regular time intervals. See [Creating a Schedule](../../07_common_operations/02_creating_schedule/#creating_schedule) for directions on creating a schedule. There may be other situations where you would want to force a replication to take place ahead of its normal schedule. Reasons for performing an on demand replication may include the following: @@ -45,16 +44,7 @@ There may be other situations where you would want to force a replication to tak - You have set up your replication system to perform synchronizations, but on this occasion there have been an unusually large number of changes made to the source tables, and you would rather perform a snapshot of all source tables rather than execute a large number of SQL statements against the target tables. - Changes have been made directly to the rows of the target tables so that they no longer have the same content as their source table counterparts. You can perform an on demand snapshot replication to reload all rows of the target tables from your current set of source tables. -
      - -
      - -Note - -
      - -In a multi-master replication system, on demand snapshots can only be made from the primary definition node to another primary node. - -
      +!!! Note + In a multi-master replication system, on demand snapshots can only be made from the primary definition node to another primary node. -See [On Demand Replication](../../05_smr_operation/04_on_demand_replication/#on_demand_replication) for directions on performing an on demand replication for a single-master replication system. See [On Demand Replication](../../05_smr_operation/04_on_demand_replication/../../06_mmr_operation/#on_demand_replication_mmr) for a multi-master replication system. +See [On Demand Replication](../../05_smr_operation/04_on_demand_replication/#on_demand_replication) for directions on performing an on demand replication for a single-master replication system. See [On Demand Replication](../../06_mmr_operation/05_on_demand_replication_mmr/#on_demand_replication_mmr) for a multi-master replication system. diff --git a/product_docs/docs/eprs/6.2/02_overview/04_design_replication_system/05_distributed_replication.mdx b/product_docs/docs/eprs/6.2/02_overview/04_design_replication_system/05_distributed_replication.mdx index 5ce742def57..decfddc910b 100644 --- a/product_docs/docs/eprs/6.2/02_overview/04_design_replication_system/05_distributed_replication.mdx +++ b/product_docs/docs/eprs/6.2/02_overview/04_design_replication_system/05_distributed_replication.mdx @@ -4,7 +4,6 @@ title: "Distributed Replication" - xDB Replication Server provides the flexibility of allowing you to run the replication system’s components on separate machines on a network. In fact xDB Replication Server is designed so that it is possible to set up replication systems where each of the components (publication server, subscription server, publication database, subscription database, and primary nodes) may all run on the same host, each component may run on its own separate host, or any combination of components may run on any number of hosts. diff --git a/product_docs/docs/eprs/6.2/02_overview/04_design_replication_system/index.mdx b/product_docs/docs/eprs/6.2/02_overview/04_design_replication_system/index.mdx index f29aa712169..c81daa2f355 100644 --- a/product_docs/docs/eprs/6.2/02_overview/04_design_replication_system/index.mdx +++ b/product_docs/docs/eprs/6.2/02_overview/04_design_replication_system/index.mdx @@ -4,11 +4,10 @@ title: "Designing a Replication System" - This section presents the general steps, design considerations, and best practices for designing a replication system before you begin the actual implementation.
      -general\_steps design\_considerations restrictions\_on\_replicated\_database\_objects performance\_considerations distributed\_replication +general_steps design_considerations restrictions_on_replicated_database_objects performance_considerations distributed_replication
      diff --git a/product_docs/docs/eprs/6.2/02_overview/index.mdx b/product_docs/docs/eprs/6.2/02_overview/index.mdx index 96a4d0c6876..6ac6179ec37 100644 --- a/product_docs/docs/eprs/6.2/02_overview/index.mdx +++ b/product_docs/docs/eprs/6.2/02_overview/index.mdx @@ -4,11 +4,10 @@ title: "Overview" - This chapter defines basic replication terms and concepts, and presents an overview of the components and architecture of xDB Replication Server. The chapter concludes with design guidelines and directions for implementing a replication system using xDB Replication Server.
      -why\_replication replication\_concepts\_and\_definitions replication\_server\_components\_and\_architecture design\_replication\_system +why_replication replication_concepts_and_definitions replication_server_components_and_architecture design_replication_system
      diff --git a/product_docs/docs/eprs/6.2/03_installation/01_installing_with_stackbuilder.mdx b/product_docs/docs/eprs/6.2/03_installation/01_installing_with_stackbuilder.mdx index 9f64734d854..ede0d069f13 100644 --- a/product_docs/docs/eprs/6.2/03_installation/01_installing_with_stackbuilder.mdx +++ b/product_docs/docs/eprs/6.2/03_installation/01_installing_with_stackbuilder.mdx @@ -4,7 +4,6 @@ title: "Installing With Stack Builder or StackBuilder Plus" - `Stack Builder` and `StackBuilder Plus` are programs used to download and install add-on products and updates to PostgreSQL and Advanced Server. Stack Builder is used for PostgreSQL. StackBuilder Plus is used for Advanced Server. Stack Builder and StackBuilder Plus are very similar in functionality and look-and-feel, differing primarily in the list of products offered. @@ -17,29 +16,11 @@ Follow the directions for your host operating system to install Java runtime. **For Windows only:** Be sure the system environment variable, `JAVA_HOME`, is set to the JRE installation directory of the JRE version and bitness (32-bit or 64-bit) you wish to use with the xDB Replication Server. The xDB Replication Server installer for a Windows platform contains both the 32-bit and 64-bit versions. The `JAVA_HOME` setting determines whether the 32-bit or the 64-bit version of xDB Replication Server is installed. (If `JAVA_HOME` is not set, then the first JRE version encountered in the Path system environment variable determines the xDB Replication Server version to be installed.) -
      - -
      - -Note - -
      - -For Advanced Server versions prior to 9.3, a Java runtime is supplied and installed as part of the Advanced Server installation process, however, you must still have pre-installed a separate Java runtime system on your host. The xDB Replication Server installation process does not utilize the Java runtime supplied with Advanced Server. - -
      - -
      - -
      +!!! Note + For Advanced Server versions prior to 9.3, a Java runtime is supplied and installed as part of the Advanced Server installation process, however, you must still have pre-installed a separate Java runtime system on your host. The xDB Replication Server installation process does not utilize the Java runtime supplied with Advanced Server. -Note - -
      - -After installation of xDB Replication Server has completed, the path to your Java runtime program is stored in the xDB Startup Configuration file used by xDB Replication Server. Verify that the path to your Java runtime program set in the xDB Startup Configuration file is correct. See [Post-Installation Host Environment](../03_installation/#post_installation_host_environment) for the location of this file. - -
      +!!! Note + After installation of xDB Replication Server has completed, the path to your Java runtime program is stored in the xDB Startup Configuration file used by xDB Replication Server. Verify that the path to your Java runtime program set in the xDB Startup Configuration file is correct. See [Post-Installation Host Environment](05_post_installation_host_environment/#post_installation_host_environment) for the location of this file. **Step 2:** From the host’s application menu, open the Postgres menu and choose `Stack Builder` or `StackBuilder Plus`. @@ -55,17 +36,8 @@ After installation of xDB Replication Server has completed, the path to your Jav **Step 5 (For Advanced Server):** Expand the EnterpriseDB Tools node and check the box for Replication Server. Click the Next button. -
      - -
      - -Note - -
      - -Though the following ../images show Replication Server v6.0, use the same process for Replication Server v6.2. - -
      +!!! Note + Though the following ../images show Replication Server v6.0, use the same process for Replication Server v6.2. ![StackBuilder Plus applications](/../images/image29.png) @@ -77,17 +49,8 @@ Though the following ../images show Replication Server v6.0, use the same proces **Step 6 (For Advanced Server only):** In the `Account Registration` screen, either enter your email address and password for your EnterpriseDB user account if you have one, or click the link in which case you will be directed to the registration page of the EnterpriseDB website where you can create an account. Click the `Next` button. -
      - -
      - -Note - -
      - -(For PostgreSQL only): Proceed to Step 7. If you are using PostgreSQL, account registration occurs later in the process. - -
      +!!! Note + (For PostgreSQL only): Proceed to Step 7. If you are using PostgreSQL, account registration occurs later in the process. ![EnterpriseDB account registration](/../images/image32.png) @@ -101,17 +64,8 @@ An information box appears showing the download progress of the Replication Serv **Step 8:** When downloading of the Replication Server package completes, the following screen appears that starts the installation of xDB Replication Server. Click the `Next` button. -
      - -
      - -Note - -
      - -You can check the Skip Installation box if you wish to install xDB Replication Server some other time. - -
      +!!! Note + You can check the Skip Installation box if you wish to install xDB Replication Server some other time. ![Start installation](/../images/image35.png) @@ -147,17 +101,8 @@ If you already have an EnterpriseDB user account, enter the email address and pa **Step 15:** Enter information for the xDB administrator. -
      - -
      - -Note - -
      - -From this point on, it is suggested that you record the values you enter on these screens as they will be needed during the publication and subscription server registration process. - -
      +!!! Note + From this point on, it is suggested that you record the values you enter on these screens as they will be needed during the publication and subscription server registration process. Enter values for the following fields: @@ -196,4 +141,4 @@ An information box appears showing the installation progress of the xDB Replicat ![StackBuilder Plus installation complete](/../images/image50.png) -Successful installation of xDB Replication Server results in the creation of directory structures and files in your host environment as described in Section [Post-Installation Host Environment](../03_installation/#post_installation_host_environment). +Successful installation of xDB Replication Server results in the creation of directory structures and files in your host environment as described in Section [Post-Installation Host Environment](05_post_installation_host_environment/#post_installation_host_environment). diff --git a/product_docs/docs/eprs/6.2/03_installation/02_installing_from_cli.mdx b/product_docs/docs/eprs/6.2/03_installation/02_installing_from_cli.mdx index 1c3d8f28bb3..a6b674c9a27 100644 --- a/product_docs/docs/eprs/6.2/03_installation/02_installing_from_cli.mdx +++ b/product_docs/docs/eprs/6.2/03_installation/02_installing_from_cli.mdx @@ -4,7 +4,6 @@ title: "Installing from the Command Line" - The section provides directions for installing xDB Replication Server from the Linux or Windows command line console. There are basically three ways of performing command line installation. @@ -17,49 +16,22 @@ The xDB Replication Server installer program can either be downloaded directly f The installer program name may vary depending upon how you obtained it. The following are some examples illustrating command line installation. -
      - -
      - -Note - -
      - -For additional detailed information on how to install EnterpriseDB products from the command line, see the *EDB Postgres Advanced Server Installation Guide* located at: - - - -
      - -
      +!!! Note + For additional detailed information on how to install EnterpriseDB products from the command line, see the *EDB Postgres Advanced Server Installation Guide* located at: -
      + -Note - -
      - -You must have Java Runtime Environment (JRE) version 1.7 or later installed on the hosts where you intend to install any xDB Replication Server component (xDB Replication Console, publication server, or subscription server). Any Java product such as Oracle Java or OpenJDK may be used. - -
      +!!! Note + You must have Java Runtime Environment (JRE) version 1.7 or later installed on the hosts where you intend to install any xDB Replication Server component (xDB Replication Console, publication server, or subscription server). Any Java product such as Oracle Java or OpenJDK may be used. Follow the directions for your host operating system to install Java runtime. -
      - -
      - -Note - -
      - -For Advanced Server versions prior to 9.3, a Java runtime is supplied and installed as part of the Advanced Server installation process, however, you must still have pre-installed a separate Java runtime system on your host. The xDB Replication Server installation process does not utilize the Java runtime supplied with Advanced Server. - -
      +!!! Note + For Advanced Server versions prior to 9.3, a Java runtime is supplied and installed as part of the Advanced Server installation process, however, you must still have pre-installed a separate Java runtime system on your host. The xDB Replication Server installation process does not utilize the Java runtime supplied with Advanced Server. The following example shows how to start the xDB Replication Server installation in text mode. -``` text +```text $ ./xdbreplicationserver-6.1.0-alpha-1-linux-x64.run --mode text Language Selection @@ -76,7 +48,7 @@ Welcome to the Postgres Plus xDB Replication Server Setup Wizard. The following example shows how to start the installation in unattended mode with an options file. -``` text +```text $ su root Password: $ ./xdbreplicationserver-6.1.0-alpha-1-linux-x64.run --optionfile /home/user/xdb_config @@ -84,7 +56,7 @@ $ ./xdbreplicationserver-6.1.0-alpha-1-linux-x64.run --optionfile /home/user/xdb The following is the content of the options file, `xdb_config`. -``` text +```text mode=unattended existing-user=user@xyz.com existing-password=password @@ -183,4 +155,4 @@ The following is a list of the parameters that may be specified when running the > The password for the operating system account. There is no default for this parameter. -Successful installation of xDB Replication Server results in the creation of directory structures and files in your host environment as described in Section [Post-Installation Host Environment](../03_installation/#post_installation_host_environment). +Successful installation of xDB Replication Server results in the creation of directory structures and files in your host environment as described in Section [Post-Installation Host Environment](05_post_installation_host_environment/#post_installation_host_environment). diff --git a/product_docs/docs/eprs/6.2/03_installation/03_installing_rpm_package.mdx b/product_docs/docs/eprs/6.2/03_installation/03_installing_rpm_package.mdx index 5b1c0f1a49a..54d52e77719 100644 --- a/product_docs/docs/eprs/6.2/03_installation/03_installing_rpm_package.mdx +++ b/product_docs/docs/eprs/6.2/03_installation/03_installing_rpm_package.mdx @@ -4,7 +4,6 @@ title: "Installing the xDB RPM Package" - xDB Replication Server is supplied as an RPM package available in the EDB Yum Repository. Use the Yum package manager to install xDB Replication Server from the RPM package. For information about using Yum, see the Yum project website located at: @@ -19,39 +18,28 @@ For information about using the EDB Yum Repository see Chapter 3 of the EDB Post > -
      - -
      - -Note - -
      - -Although the following primarily describes the installation of xDB Replication Server version 6.2, access to the RPM packages for prior xDB Replication Server versions are also described in order to differentiate the installation of these different versions. - -
      +!!! Note + Although the following primarily describes the installation of xDB Replication Server version 6.2, access to the RPM packages for prior xDB Replication Server versions are also described in order to differentiate the installation of these different versions. Each xDB Replication Server component is available as an individual RPM package. Thus, you can install all xDB Replication Server components with a single yum install command, or you may choose to install selected, individual components by installing only those particular RPM packages. The following table lists the RPM packages and the xDB Replication Server component it contains. -
      xDB Replication Server Component RPM Packages
      Package NamexDB Replication Server Component

      ppas-xdb

      All components

      ppas-xdb-console

      xDB Replication Console and the xDB Replication Server Command Line Interface

      ppas-xdb-publisher

      Publication server

      ppas-xdb-subscriber

      Subscription server

      ppas-xdb-libs

      Library files required by all components
      +| | | +| --------------------------------------------------- | ----------------------------------------------------------------------------- | +| **Package Name** | **xDB Replication Server Component** | +|


      `ppas-xdb`

      | All components | +|


      `ppas-xdb-console`

      | xDB Replication Console and the xDB Replication Server Command Line Interface | +|


      `ppas-xdb-publisher`

      | Publication server | +|


      `ppas-xdb-subscriber`

      | Subscription server | +|


      `ppas-xdb-libs`

      | Library files required by all components | **xDB Replication Server Component RPM Packages** The Advanced Server server libs package must be available for access by Yum when installing any xDB RPM package component. The edb-asxx-server-libs package is a component of the Advanced Server repository package for version 9.6 or later. Step 3 shows how to enable access to the Advanced Server repository so Yum can access its server libs package. -
      - -
      - -Note - -
      - -You might have to enable the \[extras\] repository definition in the `CentOS-Base.repo file (located in /etc/yum.repos.d)`. - -
      +!!! Note + You might have to enable the \[extras] repository definition in the `CentOS-Base.repo file (located in /etc/yum.repos.d)`. To install any of the packages, invoke the following command as the root account: @@ -71,17 +59,8 @@ To install only the publication server, invoke the following: `yum install ppas-xdb-publisher` -
      - -
      - -Note - -
      - -Though all xDB components are dependent upon and thus require installation of the server libs package, by using Yum, the dependency on the server libs is recognized when any xDB component is installed. Yum automatically installs the server libs package from the enabled Advanced Server repository along with your selected xDB RPM package. - -
      +!!! Note + Though all xDB components are dependent upon and thus require installation of the server libs package, by using Yum, the dependency on the server libs is recognized when any xDB component is installed. Yum automatically installs the server libs package from the enabled Advanced Server repository along with your selected xDB RPM package. The following are the steps to perform a complete xDB Replication Server installation with all xDB components. @@ -89,17 +68,8 @@ The following are the steps to perform a complete xDB Replication Server install Follow the directions for your host operating system to install Java runtime. -
      - -
      - -Note - -
      - -For Advanced Server versions prior to 9.3, a Java runtime is supplied and installed as part of the Advanced Server installation process, however, you must still have pre-installed a separate Java runtime system on your host. The xDB Replication Server installation process does not utilize the Java runtime supplied with Advanced Server. - -
      +!!! Note + For Advanced Server versions prior to 9.3, a Java runtime is supplied and installed as part of the Advanced Server installation process, however, you must still have pre-installed a separate Java runtime system on your host. The xDB Replication Server installation process does not utilize the Java runtime supplied with Advanced Server. **Step 2:** From the EDB Yum Repository, click on the following link to download the repository RPM for all the EnterpriseDB RPMs.: @@ -124,7 +94,7 @@ Access to the packages in any of these repositories is accomplished by enabling For example, to access the server `libs` package from the repository for Advanced Server version 9.6, enable the following entry: -``` text +```text [edbas96] name=EnterpriseDB Advanced Server 9.6 $releasever - $basearch baseurl=http://:@yum.enterprisedb.com/9.6/redhat/rhel-$releasever-$basearch @@ -135,12 +105,12 @@ gpgkey=file:///etc/pki/rpm-gpg/ENTERPRISEDB-GPG-KEY To enable the appropriate repository for installing the desired version of xDB Replication Server, enable one of the following entries: -- To install version 6.2, enable the entry for \[`enterprisedb-xdb60`\]. -- To install a prior version, enable the entry for \[`enterprisedb-tools`\]. +- To install version 6.2, enable the entry for \[`enterprisedb-xdb60`]. +- To install a prior version, enable the entry for \[`enterprisedb-tools`]. Whichever version is chosen, be sure the other entries are disabled (that is, the parameter setting is enabled=0 for the non-selected entries). For example, to access xDB Replication Server version 6.2, enable the following entry: -``` text +```text [enterprisedb-xdb60] name=EnterpriseDB XDB 6.0 $releasever - $basearch baseurl=http://:@yum.enterprisedb.com/xdb60/redhat/rhel-$releasever-$basearch @@ -157,7 +127,7 @@ The following syntax installs the xDB RPM package: The following is an example: -``` text +```text yum install ppas-xdb Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile @@ -270,7 +240,7 @@ Complete! The xDB Replication Server is installed in directory location `/usr/ppas-xdb-x.x` where `x.x` is the xDB Replication Server version number as shown by the following: -``` text +```text [root@localhost ppas-xdb-6.2]# pwd /usr/ppas-xdb-6.2 [root@localhost ppas-xdb-6.2]# ls -l @@ -283,25 +253,16 @@ drwx------ 2 enterprisedb enterprisedb 4096 Feb 20 22:17 xdata -r--r--r-- 1 enterprisedb enterprisedb 64035 Feb 20 20:40 xdb_3rd_party_licenses.txt ``` -Successful installation of xDB Replication Server results in the creation of directory structures and files in your host environment as described in Section [Post-Installation Host Environment](../03_installation/#post_installation_host_environment). - -
      - -
      - -Note - -
      - -Neither the publication server nor the subscription server are running immediately following installation. If after reviewing the remaining steps, you wish to start the publication server, see [Registering a Publication Server](../05_smr_operation/02_creating_publication/#registering_publication_server). For starting the subscription server see see [Registering a Subscription Server](../05_smr_operation/03_creating_subscription/#registering_subscription_server). +Successful installation of xDB Replication Server results in the creation of directory structures and files in your host environment as described in Section [Post-Installation Host Environment](05_post_installation_host_environment/#post_installation_host_environment). -
      +!!! Note + Neither the publication server nor the subscription server are running immediately following installation. If after reviewing the remaining steps, you wish to start the publication server, see [Registering a Publication Server](../05_smr_operation/02_creating_publication/01_registering_publication_server/#registering_publication_server). For starting the subscription server see see [Registering a Subscription Server](../05_smr_operation/03_creating_subscription/01_registering_subscription_server/#registering_subscription_server). -**Step 5 (For xDB Replication Server 6.2 or 6.1):** In the xDB Replication Configuration file `/etc/edb-repl.conf`, you can either use the default password (`edb`) as the admin user password, or you can substitute a password of your choice. If you want to use your own password, see [Encrypting the Password in the xDB Replication Configuration File](#encrypt_password_in%20conf_file) on how to generate the encrypted form of the password. Place the encrypted password in the admin\_password parameter of the xDB Replication Configuration file. The default admin user name is set to admin and can be changed as well. See [xDB Replication Configuration File](../02_overview/03_replication_server_components_and_architecture/#xdb_replication_conf_file) for information on the xDB Replication Configuration file. +**Step 5 (For xDB Replication Server 6.2 or 6.1):** In the xDB Replication Configuration file `/etc/edb-repl.conf`, you can either use the default password (`edb`) as the admin user password, or you can substitute a password of your choice. If you want to use your own password, see [Encrypting the Password in the xDB Replication Configuration File](../10_appendix/04_miscellaneous_xdb_processing_topics/02_encrypt_password_inconf_file/#encrypt_password_in%20conf_file) on how to generate the encrypted form of the password. Place the encrypted password in the admin_password parameter of the xDB Replication Configuration file. The default admin user name is set to admin and can be changed as well. See [xDB Replication Configuration File](../02_overview/03_replication_server_components_and_architecture/01_physical_components/#xdb_replication_conf_file) for information on the xDB Replication Configuration file. **Step 5 (For xDB Replication Server 5.1):** In the xDB Replication Configuration file `/etc/edb-repl.conf`, verify that parameters `host, port, database, user`, and `password` are set to allow access to a Postgres database that you wish to use as the xDB Control database. If you wish to use a database other than the one identified by the current default settings, create the desired database and change the parameters to permit connection and authentication to this database to be used as the xDB Control database. -**Step 6:** The `JAVA_EXECUTABLE_PATH` parameter in the xDB Startup Configuration file should be set so that the Java runtime program can be accessed upon startup of the publication server and subscription server. If the publication server or subscription server startup fails due to inaccessibility to the Java program, be sure to set the path to your Java runtime program in the xDB Startup Configuration file. See [xDB Startup Configuration File](../02_overview/03_replication_server_components_and_architecture/#xdb_startup_conf_file) for information on the xDB Startup Configuration file. See [Post-Installation Host Environment](../03_installation/#post_installation_host_environment) for the location of this file. +**Step 6:** The `JAVA_EXECUTABLE_PATH` parameter in the xDB Startup Configuration file should be set so that the Java runtime program can be accessed upon startup of the publication server and subscription server. If the publication server or subscription server startup fails due to inaccessibility to the Java program, be sure to set the path to your Java runtime program in the xDB Startup Configuration file. See [xDB Startup Configuration File](../02_overview/03_replication_server_components_and_architecture/01_physical_components/#xdb_startup_conf_file) for information on the xDB Startup Configuration file. See [Post-Installation Host Environment](05_post_installation_host_environment/#post_installation_host_environment) for the location of this file. ## Updating an RPM Installation diff --git a/product_docs/docs/eprs/6.2/03_installation/04_installing_xDB_sles_12_host.mdx b/product_docs/docs/eprs/6.2/03_installation/04_installing_xDB_sles_12_host.mdx index a3318aacf79..5ab1d998380 100644 --- a/product_docs/docs/eprs/6.2/03_installation/04_installing_xDB_sles_12_host.mdx +++ b/product_docs/docs/eprs/6.2/03_installation/04_installing_xDB_sles_12_host.mdx @@ -4,12 +4,11 @@ title: "Installing xDB on an SLES 12 Host" - You can use the `zypper` package manager to install the xDB Replication Server on an SLES 12 host. zypper will attempt to satisfy package dependencies as it installs a package, but requires access to specific repositories that are not hosted at EnterpriseDB. Before installing xDB, use the following commands to add EnterpriseDB repository configuration files to your SLES host: -``` text +```text zypper addrepo https://zypp.enterprisedb.com/suse/epas96-sles.repo zypper addrepo https://zypp.enterprisedb.com/suse/epas-sles-tools.repo zypper addrepo https://zypp.enterprisedb.com/suse/epas-sles-dependencies.repo @@ -23,7 +22,7 @@ Each command creates a repository configuration file in the /etc/zypp/repos.d di After creating the repository configuration files, use the `zypper refresh command` to refresh the metadata on your SLES host to include the EnterpriseDB repositories: -``` text +```text /etc/zypp/repos.d # zypper refresh Repository 'SLES12-12-0' is up to date. Repository 'SLES12-Pool' is up to date. @@ -44,7 +43,7 @@ When prompted for a User Name and Password, provide your connection credentials Before installing EDB Postgres Advanced Server or supporting components, you must also add SUSEConnect and the SUSE Package Hub extension to the SLES host, and register the host with SUSE, allowing access to SUSE repositories. Use the commands: -``` text +```text zypper install SUSEConnect SUSEConnect -p PackageHub/12/x86_64 SUSEConnect -p sle-sdk/12/x86_64 @@ -58,7 +57,7 @@ Then add the Java repository and update the repository metadata: Please note tha Use the commands: -``` text +```text zypper addrepo "http://download.opensuse.org/repositories/Java:/Factory/SLE_12_SP2/Java:Factory.repo" zypper addrepo "http://download.opensuse.org/repositories/server:/Kolab:/3.3/SLE_12/server:Kolab:3.3.repo" zypper refresh @@ -68,18 +67,9 @@ Then, you can use the zypper utility to install the xDB Replication Server compo `zypper install ppas-xdb*` -
      - -
      - -Note - -
      - -Before starting the publication server and subscription server, the `/etc/hosts` file must contain an entry for the host name that associates it to the host IP address as shown by the following example where 192.168.187.133 is the IP address and `linux-dm8s` is the host name: - -
      +!!! Note + Before starting the publication server and subscription server, the `/etc/hosts` file must contain an entry for the host name that associates it to the host IP address as shown by the following example where 192.168.187.133 is the IP address and `linux-dm8s` is the host name: -``` text +```text 192.168.187.133 linux-dm8s ``` diff --git a/product_docs/docs/eprs/6.2/03_installation/05_post_installation_host_environment.mdx b/product_docs/docs/eprs/6.2/03_installation/05_post_installation_host_environment.mdx index 5b67b231c40..fc13ab3eb5d 100644 --- a/product_docs/docs/eprs/6.2/03_installation/05_post_installation_host_environment.mdx +++ b/product_docs/docs/eprs/6.2/03_installation/05_post_installation_host_environment.mdx @@ -4,39 +4,20 @@ title: "Post-Installation Host Environment"
      - -On Linux hosts where you installed xDB Replication Server with the graphical user interface or from the command line, you should now have a publication server daemon and a subscription server daemon running on your computer assuming you chose to install the publication server and subscription server components. If you installed the xDB RPM package, you must start the publication server and the subscription server based upon the instructions in Section [Registering a Publication Server](../05_smr_operation/02_creating_publication/#registering_publication_server) for the publication server and [Registering a Subscription Server](../05_smr_operation/03_creating_subscription/#registering_subscription_server) for the subscription server. On Windows systems, the publication server and subscription server run as services named `Publication Service` and `Subscription Service`. +On Linux hosts where you installed xDB Replication Server with the graphical user interface or from the command line, you should now have a publication server daemon and a subscription server daemon running on your computer assuming you chose to install the publication server and subscription server components. If you installed the xDB RPM package, you must start the publication server and the subscription server based upon the instructions in Section [Registering a Publication Server](../05_smr_operation/02_creating_publication/01_registering_publication_server/#registering_publication_server) for the publication server and [Registering a Subscription Server](../05_smr_operation/03_creating_subscription/01_registering_subscription_server/#registering_subscription_server) for the subscription server. On Windows systems, the publication server and subscription server run as services named `Publication Service` and `Subscription Service`. The Postgres application menu contains a new item for the xDB Replication Console. -
      - -
      - -Note - -
      - -On some Linux systems, you may have to restart the server before you can see the xDB Replication Console choice in the application menu. If the xDB Replication Console choice is still unavailable in the application menu, it can be started by invoking the script `XDB_HOME/bin/runRepConsole.sh`. - -
      - -
      - -
      - -Note +!!! Note + On some Linux systems, you may have to restart the server before you can see the xDB Replication Console choice in the application menu. If the xDB Replication Console choice is still unavailable in the application menu, it can be started by invoking the script `XDB_HOME/bin/runRepConsole.sh`. -
      - -For xDB Replication Server installed from an xDB RPM package, the xDB Replication Console is started by invoking the script `XDB_HOME/bin/runRepConsole.sh`. - -
      +!!! Note + For xDB Replication Server installed from an xDB RPM package, the xDB Replication Console is started by invoking the script `XDB_HOME/bin/runRepConsole.sh`. The following files are created that you may need during the configuration process. | | | | -|------------------------------------|---------------------------------------|--------------------------------------------------------------------------------------| +| ---------------------------------- | ------------------------------------- | ------------------------------------------------------------------------------------ | | File Name | Location | Description | | `edb-repl.conf` (Linux) | `/etc` | xDB Replication Configuration file | | `edb-repl.conf` (Windows) | `XDB_HOME\etc` | xDB Replication Configuration file | @@ -57,62 +38,17 @@ The following files are created that you may need during the configuration proce **Post-Installation Files** -
      - -
      - -Note - -
      - -`XDB_HOME` is the directory where xDB Replication Server is installed. - -
      - -
      - -
      - -Note - -
      - -`POSTGRES_HOME` is the home directory of the postgres operating system account (enterprisedb for Advanced Server installed in Oracle compatible configuration mode). - -
      - -
      - -
      - -Note - -
      - -The publication and subscription services startup log files (`edb-xdbpubserver.log` and `edb-xdbsubserver.log`) are not generated for Windows and Mac OS X operating systems. - -
      - -
      - -
      - -Note - -
      - -`USER_HOME` is the home directory of the operating system account in use. - -
      - -
      - -
      +!!! Note + `XDB_HOME` is the directory where xDB Replication Server is installed. -Note +!!! Note + `POSTGRES_HOME` is the home directory of the postgres operating system account (enterprisedb for Advanced Server installed in Oracle compatible configuration mode). -
      +!!! Note + The publication and subscription services startup log files (`edb-xdbpubserver.log` and `edb-xdbsubserver.log`) are not generated for Windows and Mac OS X operating systems. -The xDB Replication Server version number is represented by `x.x` or by `xx` (for example `6.2` or `62`). +!!! Note + `USER_HOME` is the home directory of the operating system account in use. -
      +!!! Note + The xDB Replication Server version number is represented by `x.x` or by `xx` (for example `6.2` or `62`). diff --git a/product_docs/docs/eprs/6.2/03_installation/06_uninstalling_xdb_replication_server.mdx b/product_docs/docs/eprs/6.2/03_installation/06_uninstalling_xdb_replication_server.mdx index c6c7ecd46dc..a334333600a 100644 --- a/product_docs/docs/eprs/6.2/03_installation/06_uninstalling_xdb_replication_server.mdx +++ b/product_docs/docs/eprs/6.2/03_installation/06_uninstalling_xdb_replication_server.mdx @@ -4,22 +4,21 @@ title: "Uninstalling xDB Replication Server" - Uninstalling xDB Replication Server results in the removal of the publication server, the subscription server, the xDB Replication Console, the xDB Replication Server Command Line Interface, the xDB Replication Configuration file, the xDB Startup Configuration file, the publication server configuration file, and the subscription server configuration file. Uninstalling xDB Replication Server does not remove any databases used as primary nodes, publication databases, or subscription databases. Use the xDB Replication Console or the xDB Replication Server Command Line Interface to delete any existing single-master or multi-master replication systems before you uninstall xDB Replication Server, otherwise the control schema objects created in the publication databases or primary nodes will remain in those databases. These control schema objects must then be deleted manually such as by using an SQL command line utility. -If you installed xDB Replication Server using the xDB Replication Server installer program invoked from Stack Builder or StackBuilder Plus as described in Section [Installing With Stack Builder or StackBuilder Plus](../03_installation/#installing_with_stackbuilder) or you invoked the xDB Replication Server installer program from the command line as described in Section [Installing from the Command Line](../03_installation/#installing_from_cli), uninstall xDB Replication Server by invoking the `uninstall-xdbreplicationserver` script as described in this section. +If you installed xDB Replication Server using the xDB Replication Server installer program invoked from Stack Builder or StackBuilder Plus as described in Section [Installing With Stack Builder or StackBuilder Plus](01_installing_with_stackbuilder/#installing_with_stackbuilder) or you invoked the xDB Replication Server installer program from the command line as described in Section [Installing from the Command Line](02_installing_from_cli/#installing_from_cli), uninstall xDB Replication Server by invoking the `uninstall-xdbreplicationserver` script as described in this section. -If you installed xDB Replication Server from the RPM package, uninstall it using the Yum package manager. See Section [Uninstalling the xDB RPM Package](../03_installation/#uninstalling_xdb_rpm_package) for information. +If you installed xDB Replication Server from the RPM package, uninstall it using the Yum package manager. See Section [Uninstalling the xDB RPM Package](07_uninstalling_xdb_rpm_package/#uninstalling_xdb_rpm_package) for information. **For Linux only:** The following steps are for uninstalling xDB Replication Server from a Linux host. **Step 1:** As the root account, run the `XDB_HOME/uninstall-xdbreplicationserver` script from the directory where you installed xDB Replication Server. -``` text +```text $ su root Password: $ cd /opt/PostgreSQL/EnterpriseDB-xDBReplicationServer @@ -58,7 +57,7 @@ Uninstallation of xDB Replication Server can also be done without the use of the The following shows how to uninstall xDB Replication Server in text mode. -``` text +```text $ su root Password: $ ./uninstall-xdbreplicationserver --mode text @@ -77,7 +76,7 @@ Press [Enter] to continue : The following shows how to uninstall xDB Replication Server in unattended mode. -``` text +```text $ su root Password: $ ./uninstall-xdbreplicationserver --mode unattended diff --git a/product_docs/docs/eprs/6.2/03_installation/07_uninstalling_xdb_rpm_package.mdx b/product_docs/docs/eprs/6.2/03_installation/07_uninstalling_xdb_rpm_package.mdx index f93086c5827..c96a43da948 100644 --- a/product_docs/docs/eprs/6.2/03_installation/07_uninstalling_xdb_rpm_package.mdx +++ b/product_docs/docs/eprs/6.2/03_installation/07_uninstalling_xdb_rpm_package.mdx @@ -4,8 +4,7 @@ title: "Uninstalling the xDB RPM Package" - -If you installed xDB Replication Server from the RPM package, you can uninstall any xDB component by invoking the yum remove package\_name command as the root account where package\_name is any xDB Replication Server component RPM package as listed in the table in Section [Installing the xDB RPM Package](../03_installation/#installing_rpm_package). +If you installed xDB Replication Server from the RPM package, you can uninstall any xDB component by invoking the yum remove package_name command as the root account where package_name is any xDB Replication Server component RPM package as listed in the table in Section [Installing the xDB RPM Package](03_installing_rpm_package/#installing_rpm_package). All xDB Replication Server components can be removed by the following command: @@ -13,7 +12,7 @@ All xDB Replication Server components can be removed by the following command: An example is shown by the following: -``` text +```text yum update ppas-xdb Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile diff --git a/product_docs/docs/eprs/6.2/03_installation/index.mdx b/product_docs/docs/eprs/6.2/03_installation/index.mdx index 839353a7e9e..1e130dc47e0 100644 --- a/product_docs/docs/eprs/6.2/03_installation/index.mdx +++ b/product_docs/docs/eprs/6.2/03_installation/index.mdx @@ -4,7 +4,6 @@ title: "Installation and Uninstallation" - This chapter describes how to install and uninstall xDB Replication Server. Installation of xDB Replication Server can be accomplished a number of different ways: @@ -18,28 +17,19 @@ The most common installation of xDB Replication Server is done with the graphica - `For PostgreSQL.` Install xDB Replication Server using Stack Builder after you have installed PostgreSQL. - `For Advanced Server.` Install xDB Replication Server using StackBuilder Plus after you have installed Advanced Server. -For circumstances in which you do not wish to use the graphical user interface, the xDB Replication Server installer program can be downloaded from the EnterpriseDB website, and then invoked in text or unattended mode as well as the graphical user interface mode. See [Installing from the Command Line](03_installation/#installing_from_cli) for instructions on installing xDB Replication Server from the command line. - -The xDB Replication Server product is also available as an RPM package in which case the Yum package manager is used for installation. See [Installing the xDB RPM Package](03_installation/#installing_rpm_package) for instructions on installing xDB Replication Server from the RPM package. - -Section [Installing With Stack Builder or StackBuilder Plus](03_installation/#installing_with_stackbuilder) describes the installation of xDB Replication Server through the graphical user interface of Stack Builder or StackBuilder Plus. - -
      +For circumstances in which you do not wish to use the graphical user interface, the xDB Replication Server installer program can be downloaded from the EnterpriseDB website, and then invoked in text or unattended mode as well as the graphical user interface mode. See [Installing from the Command Line](02_installing_from_cli/#installing_from_cli) for instructions on installing xDB Replication Server from the command line. -
      +The xDB Replication Server product is also available as an RPM package in which case the Yum package manager is used for installation. See [Installing the xDB RPM Package](03_installing_rpm_package/#installing_rpm_package) for instructions on installing xDB Replication Server from the RPM package. -Note +Section [Installing With Stack Builder or StackBuilder Plus](01_installing_with_stackbuilder/#installing_with_stackbuilder) describes the installation of xDB Replication Server through the graphical user interface of Stack Builder or StackBuilder Plus. -
      - -If you have an older version of xDB Replication Server and existing replication systems, review Section [Upgrading to xDB Replication Server 6.2](10_appendix/02_upgrading_to_xdb6_2/#upgrading_to_xdb6_2) before installing xDB Replication Server. - -
      +!!! Note + If you have an older version of xDB Replication Server and existing replication systems, review Section [Upgrading to xDB Replication Server 6.2](../10_appendix/02_upgrading_to_xdb6_2/#upgrading_to_xdb6_2) before installing xDB Replication Server. -If you later decide you wish to remove xDB Replication Server from your system see Section [Uninstalling xDB Replication Server](03_installation/#uninstalling_xdb_replication_server) for directions on uninstalling xDB Replication Server if you initially installed it with the graphical user interface or by invoking the installer program from the command line. See [Uninstalling the xDB RPM Package](03_installation/#uninstalling_xdb_rpm_package) for directions on uninstalling xDB Replication Server that was installed from the RPM package. +If you later decide you wish to remove xDB Replication Server from your system see Section [Uninstalling xDB Replication Server](06_uninstalling_xdb_replication_server/#uninstalling_xdb_replication_server) for directions on uninstalling xDB Replication Server if you initially installed it with the graphical user interface or by invoking the installer program from the command line. See [Uninstalling the xDB RPM Package](07_uninstalling_xdb_rpm_package/#uninstalling_xdb_rpm_package) for directions on uninstalling xDB Replication Server that was installed from the RPM package.
      -installing\_with\_stackbuilder installing\_from\_cli installing\_rpm\_package installing\_xDB\_sles\_12\_host post\_installation\_host\_environment uninstalling\_xdb\_replication\_server uninstalling\_xdb\_rpm\_package +installing_with_stackbuilder installing_from_cli installing_rpm_package installing_xDB_sles_12_host post_installation_host_environment uninstalling_xdb_replication_server uninstalling_xdb_rpm_package
      diff --git a/product_docs/docs/eprs/6.2/04_intro_xdb_console.mdx b/product_docs/docs/eprs/6.2/04_intro_xdb_console.mdx index 160530c4f86..d0cceb4ee9b 100644 --- a/product_docs/docs/eprs/6.2/04_intro_xdb_console.mdx +++ b/product_docs/docs/eprs/6.2/04_intro_xdb_console.mdx @@ -4,7 +4,6 @@ title: "Introduction to the xDB Replication Console" - The xDB Replication Console is the graphical user interface that you use to configure and manage the replication system. The equivalent functionality can also be done using the xDB Replication Server CLI utility. See Chapter [xDB Replication Server Command Line Interface](08_xdb_cli/#xdb_cli) for information on the xDB Replication Server CLI. The xDB Replication Console window consists of the following main areas: @@ -22,19 +21,10 @@ The content of the information window applies to the highlighted node as well. ## xDB Replication Console Tool Bar -This section describes when the various tool bar icons are activated. The operations associated with the tool bar are described in [Creating a Publication](05_smr_operation/02_creating_publication/#creating_publication) and [Creating a Subscription](05_smr_operation/03_creating_subscription/#creating_subscription) for single-master replication. For multi-master replication see [Creating a Publication](05_smr_operation/02_creating_publication/06_mmr_operation/#creating_publication_mmr). - -
      - -
      - -Note +This section describes when the various tool bar icons are activated. The operations associated with the tool bar are described in [Creating a Publication](05_smr_operation/02_creating_publication/#creating_publication) and [Creating a Subscription](05_smr_operation/03_creating_subscription/#creating_subscription) for single-master replication. For multi-master replication see [Creating a Publication](06_mmr_operation/02_creating_publication_mmr/#creating_publication_mmr). -
      - -The publication server must be running in order to use tools relevant to publications. Similarly, the subscription server must be running in order to use tools relevant to subscriptions. - -
      +!!! Note + The publication server must be running in order to use tools relevant to publications. Similarly, the subscription server must be running in order to use tools relevant to subscriptions. ### Refresh @@ -76,21 +66,21 @@ The following discussion applies to both publication servers and subscription se ### Server Login File -If you choose to save the login information, the server’s network location (IP address and port number), admin user name, and password are stored in a server login file in a hidden location under the home directory of the operating system account with which you have opened the xDB Replication Console. See [Post-Installation Host Environment](03_installation/#post_installation_host_environment) for the location of this file. +If you choose to save the login information, the server’s network location (IP address and port number), admin user name, and password are stored in a server login file in a hidden location under the home directory of the operating system account with which you have opened the xDB Replication Console. See [Post-Installation Host Environment](03_installation/05_post_installation_host_environment/#post_installation_host_environment) for the location of this file. The following shows the Register Publication Server dialog box where the option to save login information is presented as a check box. In this example `192.168.2.22` entered in the Host field, 9051 entered in the Port field, admin entered in the `User Name` field, and an encrypted form of the password entered in the `Password` field are saved in the server login file for this publication server if the admin user name and password validation are successful. -The values for User Name and Password that you enter are validated against the admin user name and password in the xDB Replication Configuration file residing on host `192.168.2.22`, in this case. The admin user name and password must successfully authenticate before registration of the publication server and saving of the publication server’s login information in the server login file occur. See [xDB Replication Configuration File](02_overview/03_replication_server_components_and_architecture/#xdb_replication_conf_file) for information on the xDB Replication Configuration file. +The values for User Name and Password that you enter are validated against the admin user name and password in the xDB Replication Configuration file residing on host `192.168.2.22`, in this case. The admin user name and password must successfully authenticate before registration of the publication server and saving of the publication server’s login information in the server login file occur. See [xDB Replication Configuration File](02_overview/03_replication_server_components_and_architecture/01_physical_components/#xdb_replication_conf_file) for information on the xDB Replication Configuration file. ![Save login information option for a publication server](/images/image63.png) -See [Registering a Publication Server](05_smr_operation/02_creating_publication/#registering_publication_server) for more information on the purpose of these fields and the process of registering a publication server. +See [Registering a Publication Server](05_smr_operation/02_creating_publication/01_registering_publication_server/#registering_publication_server) for more information on the purpose of these fields and the process of registering a publication server. The following shows the Register Subscription Server dialog box. In this example `192.168.2.22` entered in the Host field, `9052` entered in the Port field, admin entered in the User Name field, and an encrypted form of the password entered in the Password field are saved in the server login file for this subscription server if the admin user name and password validation are successful. ![Save login information option for a subscription server](/images/image64.png) -See [Registering a Subscription Server](05_smr_operation/03_creating_subscription/#registering_subscription_server) for more information on the purpose of these fields and the process of registering a subscription server. +See [Registering a Subscription Server](05_smr_operation/03_creating_subscription/01_registering_subscription_server/#registering_subscription_server) for more information on the purpose of these fields and the process of registering a subscription server. Saving server login information gives you the convenience of immediate access to the publication server and any of its subordinate publications, or access to the subscription server and any of its subordinate subscriptions. That is, when you open the xDB Replication Console, the Publication Server nodes of saved publication servers immediately appear in the replication tree allowing you to perform administrative tasks on its subordinate publications. @@ -98,17 +88,8 @@ Similarly, the Subscription Server nodes of saved subscription servers immediate If you did not save server login information, the server nodes would not be visible in the replication tree. You would have to re-enter the server’s network location, admin user name, and password. In other words, you would have to register the server each time you open the xDB Replication Console. -
      - -
      - -Note - -
      - -Each operating system account on a given host has its own server login file. Thus, the servers that are saved and appear in the xDB Replication Console when opened is independently determined for each operating system account. - -
      +!!! Note + Each operating system account on a given host has its own server login file. Thus, the servers that are saved and appear in the xDB Replication Console when opened is independently determined for each operating system account. ### Security Risks of Saved Server Login Information @@ -118,16 +99,7 @@ If the login information of publication servers or subscription servers is saved This allows an unauthorized person to perform any operation on the exposed publications and subscriptions including the potential to completely delete the replication system. -
      - -
      - -Note - -
      - -The publication database and subscription database cannot be deleted, but unauthorized replications could be forced to occur. - -
      +!!! Note + The publication database and subscription database cannot be deleted, but unauthorized replications could be forced to occur. Thus, it is important that operating system accounts are secure on hosts that have access to an xDB Replication Console and a replication system. diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/01_setting_heap_size_for_pub_and_sub.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/01_setting_heap_size_for_pub_and_sub.mdx index 253bd7bb125..11bdb3040ab 100644 --- a/product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/01_setting_heap_size_for_pub_and_sub.mdx +++ b/product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/01_setting_heap_size_for_pub_and_sub.mdx @@ -4,12 +4,11 @@ title: "Setting Heap Memory Size for the Publication and Subscription Servers" - The publication server and the subscription server are configured to run with a default set of heap size parameters. Either the default settings for 32-bit platforms or the default settings for 64-bit platforms are set by parameter `JAVA_HEAP_SIZE` when xDB Replication Server is installed. -This parameter is configured in the xDB Startup Configuration file. See [xDB Startup Configuration File](../../02_overview/03_replication_server_components_and_architecture/#xdb_startup_conf_file) for information on the xDB Startup Configuration file. The following is an example of the xDB Startup Configuration file. +This parameter is configured in the xDB Startup Configuration file. See [xDB Startup Configuration File](../../02_overview/03_replication_server_components_and_architecture/01_physical_components/#xdb_startup_conf_file) for information on the xDB Startup Configuration file. The following is an example of the xDB Startup Configuration file. -``` text +```text #!/bin/sh JAVA_EXECUTABLE_PATH="/usr/bin/java" @@ -24,7 +23,7 @@ On a 32-bit system, the initial heap size is set to 128 megabytes (-Xms128m) and Typically, these values can handle the average workloads. However, depending upon the average row size and pending backlog of replication updates, it may be beneficial to increase the default heap size settings. -The default values can be modified by changing the `JAVA_HEAP_SIZE` parameter setting in the xDB Startup Configuration file. Be sure to restart the publication server and the subscription server (see [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server) and [Registering a Subscription Server](../../05_smr_operation/03_creating_subscription/#registering_subscription_server) ) after making such changes. +The default values can be modified by changing the `JAVA_HEAP_SIZE` parameter setting in the xDB Startup Configuration file. Be sure to restart the publication server and the subscription server (see [Registering a Publication Server](../02_creating_publication/01_registering_publication_server/#registering_publication_server) and [Registering a Subscription Server](../03_creating_subscription/01_registering_subscription_server/#registering_subscription_server) ) after making such changes. The heap size value should conform to the available RAM on the host running the publication server or subscription server. The basic guideline is that the maximum heap size should not exceed 25% of the total RAM size. diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/02_enable_sync_replication_with_log-based_method.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/02_enable_sync_replication_with_log-based_method.mdx index 9a8a51ffeba..15b68428ffb 100644 --- a/product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/02_enable_sync_replication_with_log-based_method.mdx +++ b/product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/02_enable_sync_replication_with_log-based_method.mdx @@ -4,15 +4,14 @@ title: "Enabling Synchronization Replication with the Log-Based Method" - This section applies only to Postgres database servers of version 9.4 and later. If you plan to use the log-based method of synchronization replication with any publication database running under the Postgres database server, the following configuration parameter settings are required in the configuration file, postgresql.conf, of the Postgres database server: - `wal_level`. Set to `logical`. - `max_wal_senders`. Specifies the maximum number of concurrent connections (that is, the maximum number of simultaneously running WAL sender processes). Set at minimum, to the number of SMR publication databases on this database server that will use the log-based method. In addition, if MMR primary nodes are to run on this database server, also add the number of MMR primary nodes that will use the log-based method. -- `max_replication_slots`. Specifies the maximum number of replication slots. Set at minimum, to the number of SMR publication databases on this database server that will use the log-based method. In addition, if MMR primary nodes are to run on this database server with the log-based method, see [Replication Origin](../../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#replication_origin) for information on the additional number of replication slots required. +- `max_replication_slots`. Specifies the maximum number of replication slots. Set at minimum, to the number of SMR publication databases on this database server that will use the log-based method. In addition, if MMR primary nodes are to run on this database server with the log-based method, see [Replication Origin](../../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/04_replication_origin/#replication_origin) for information on the additional number of replication slots required. See [Synchronization Replication with the Log-Based Method](../../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#sync_replication_log_based) for information on the log-based method of synchronization replication. The Postgres database server must be restarted after altering any of these configuration parameters. -In addition, the `pg_hba.conf` file requires an entry for each publication database user of publication databases that are to use the log-based method. Such database users must be included as a replication database user in the `pg_hba.conf` file. See [Postgres Server Authentication](../../05_smr_operation/01_prerequisites/#postgres_server_auth) for additional information. +In addition, the `pg_hba.conf` file requires an entry for each publication database user of publication databases that are to use the log-based method. Such database users must be included as a replication database user in the `pg_hba.conf` file. See [Postgres Server Authentication](06_verifying_host_accessibility/#postgres_server_auth) for additional information. diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/03_enable_access_to_database.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/03_enable_access_to_database.mdx index 30ac3853e51..3d3662bb809 100644 --- a/product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/03_enable_access_to_database.mdx +++ b/product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/03_enable_access_to_database.mdx @@ -4,10 +4,9 @@ title: "Enabling Access to the Database Servers" - The following sections describe configuration steps required to use xDB Replication Server on various types of database servers. -The following section describes the steps to enable access to Oracle. See Section [Enabling Access to SQL Server](../../05_smr_operation/01_prerequisites/#enable_access_to_sql_server) for enabling access to SQL Server. +The following section describes the steps to enable access to Oracle. See Section [Enabling Access to SQL Server](#enable_access_to_sql_server) for enabling access to SQL Server. No special steps are required to enable access to a Postgres database server. @@ -15,17 +14,8 @@ No special steps are required to enable access to a Postgres database server. ## Enabling Access to Oracle -
      - -
      - -Note - -
      - -The directions in this section apply only if Oracle will be used as the publication or subscription database. - -
      +!!! Note + The directions in this section apply only if Oracle will be used as the publication or subscription database. An Oracle JDBC driver jar file such as, `ojdbc5.jar`, must be accessible to the Java virtual machine (JVM) on the host running the publication server and the subscription server. If the publication server and subscription server are running on separate hosts, the Oracle JDBC driver must be accessible to the JVM on each host. Oracle JDBC driver version ojdbc5 or later must be used. @@ -33,7 +23,7 @@ An Oracle JDBC driver jar file such as, `ojdbc5.jar`, must be accessible to the **Step 2:** Copy file ojdbc5.jar to the directory `XDB_HOME/lib/jdbc.` -``` text +```text $ su root Password: $ cd /opt/PostgreSQL/EnterpriseDB-xDBReplicationServer/lib/jdbc @@ -55,17 +45,8 @@ Note: You may also copy the ojdbc5.jar file to the jre/lib/ext subdirectory of t ## Enabling Access to SQL Server -
      - -
      - -Note - -
      - -The directions in this section apply only if SQL Server will be used as the publication or subscription database. - -
      +!!! Note + The directions in this section apply only if SQL Server will be used as the publication or subscription database. The jTDS JDBC driver jar file `jtds-1.3.1.jar` must be accessible to the Java virtual machine (JVM) on the host running the publication server and the subscription server. If the publication server and subscription server are running on separate hosts, the `jTDS JDBC` driver must be accessible to the JVM on each host. @@ -83,6 +64,6 @@ This can be done using SQL Server Management Studio. Refer to the appropriate SQ **Step 3 (Required only for a SQL Server publication database):** Be sure SQL Server Agent is enabled and running. SQL Server Agent is a Windows service that controls job scheduling and execution with SQL Server. -xDB Replication Server uses SQL Server Agent for certain operations such as for scheduled shadow table history cleanup (see Section [Scheduling Shadow Table History Cleanup](../../07_common_operations/#schedule_shadow_table_history_cleanup)). +xDB Replication Server uses SQL Server Agent for certain operations such as for scheduled shadow table history cleanup (see Section [Scheduling Shadow Table History Cleanup](../../07_common_operations/05_managing_history/#schedule_shadow_table_history_cleanup)). SQL Server Agent can be started by using SQL Server Configuration Manager. Refer to the appropriate SQL Server documentation for using SQL Server Configuration Manager. diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/04_preparing_pub_database.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/04_preparing_pub_database.mdx index 708c16a0e85..418d647d3d4 100644 --- a/product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/04_preparing_pub_database.mdx +++ b/product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/04_preparing_pub_database.mdx @@ -4,7 +4,6 @@ title: "Preparing the Publication Database" - This section discusses the preparation of a database that contains tables and views that will become members of publications. The tables and views to be used for any given publication must all reside in the same database. This database becomes the publication database of that publication. A publication database user name must be created or already exist with the following characteristics: @@ -22,23 +21,14 @@ The examples used throughout the rest of this user’s guide are based on the fo - One view named `salesemp` is a member of schema `edb`. This view is a SELECT statement over the `emp` table. - The Oracle system identifier (SID) of the publication database is `xe`. The SQL Server publication database name is edb. The Postgres publication database name is `edb`. (The cases of Oracle as the publication database, SQL Server as the publication database, and Postgres as the publication database are presented with examples in this section.) -For preparing an Oracle publication database, see the next section. For preparing a SQL Server publication database, see [SQL Server Publication Database](../../05_smr_operation/01_prerequisites/#sql_server_pub_db). For preparing a Postgres publication database, see [Postgres Publication Database](../../05_smr_operation/01_prerequisites/#postgres_pub_db). +For preparing an Oracle publication database, see the next section. For preparing a SQL Server publication database, see [SQL Server Publication Database](#sql_server_pub_db). For preparing a Postgres publication database, see [Postgres Publication Database](#postgres_pub_db). ## Oracle Publication Database -
      - -
      - -Note - -
      - -(For Oracle 12c): The Oracle 12c multitenant architecture introduces the concept of the container database (CDB), which can contain multiple pluggable databases (PDBs). A pluggable database can be used as a publication database or a subscription database in a single-master replication system. - -
      +!!! Note + (For Oracle 12c): The Oracle 12c multitenant architecture introduces the concept of the container database (CDB), which can contain multiple pluggable databases (PDBs). A pluggable database can be used as a publication database or a subscription database in a single-master replication system. Oracle 12c still supports the usage of a single database referred to as a non-container database (non-CDB) that is compatible with Oracle versions prior to 12c. An Oracle 12c non-container database can also be used as a publication database or a subscription database in a single-master replication system. @@ -46,76 +36,49 @@ The setup instructions for using an Oracle 12c publication database or subscript **Step 1:** Create a database user name for the publication database user. The publication database user name must have a password, and it must have the ability to create a database session. The publication database user becomes the owner of the control schema objects that will be created in the publication database to track, control, and record the replication process and history. -
      - -
      - -Note - -
      - -(For Oracle 12c Pluggable Database): The publication database user can be an Oracle local user or a common user. The local user exists within and has access to only a single, user-created pluggable database (PDB), which is to be used as the publication database. Common user names typically begin with `C##` or `c##` and can access multiple pluggable databases. - -
      - -
      - -
      - -Note - -
      - -(For Oracle 12c Pluggable Database): Creation and granting of privileges for a local user must be done while connected to the pluggable database to be used as the publication database. Creation of a common user must be done within the Oracle 12c root container `CDB$ROOT`. Granting of privileges to the common user must be done while connected to the pluggable database to be used as the publication database. +!!! Note + (For Oracle 12c Pluggable Database): The publication database user can be an Oracle local user or a common user. The local user exists within and has access to only a single, user-created pluggable database (PDB), which is to be used as the publication database. Common user names typically begin with `C##` or `c##` and can access multiple pluggable databases. -
      +!!! Note + (For Oracle 12c Pluggable Database): Creation and granting of privileges for a local user must be done while connected to the pluggable database to be used as the publication database. Creation of a common user must be done within the Oracle 12c root container `CDB$ROOT`. Granting of privileges to the common user must be done while connected to the pluggable database to be used as the publication database. -
      +!!! Note + (For Oracle 12c Non-Container Database): Creation and granting of privileges to the publication database user are performed in the same manner as for Oracle versions prior to 12c. -
      +When creating the publication database definition, the publication database user name is entered in the Publication Service – Add Database dialog box (see [Adding a Publication Database](../02_creating_publication/02_adding_pub_database/#adding_pub_database)). -Note - -
      - -(For Oracle 12c Non-Container Database): Creation and granting of privileges to the publication database user are performed in the same manner as for Oracle versions prior to 12c. - -
      - -When creating the publication database definition, the publication database user name is entered in the Publication Service – Add Database dialog box (see [Adding a Publication Database](../../05_smr_operation/02_creating_publication/#adding_pub_database)). - -``` text +```text CREATE USER pubuser IDENTIFIED BY password; GRANT CONNECT TO pubuser; ``` **Step 2:** Grant the privileges needed to create the control schema objects. The control schema objects are created in the schema owned by, and with the same name as the publication database user. That is, the publication database user’s schema is the control schema for an Oracle publication database. -``` text +```text GRANT RESOURCE TO pubuser; ``` **Step 3:** Grant the privileges required to create triggers on the publication tables. The `CREATE ANY TRIGGER` privilege must be granted to the publication database user. -``` text +```text GRANT CREATE ANY TRIGGER TO pubuser; ``` **Step 4:** Grant the privileges required to lock publication tables when creating triggers. The `LOCK ANY TABLE` privilege must be granted to the publication database user. -``` text +```text GRANT LOCK ANY TABLE TO pubuser; ``` **Step 5 (For Oracle 12c only):** Grant the privileges required to access tablespaces. The `GRANT UNLIMITED TABLESPACE` privilege must be granted to the publication database user. This requirement applies to both a pluggable database and a non-container database. -``` text +```text GRANT UNLIMITED TABLESPACE TO pubuser; ``` **Step 6:** The publication database user must be able to read the tables and views that are to be included in publications. -``` text +```text GRANT SELECT ON edb.dept TO pubuser; GRANT SELECT ON edb.emp TO pubuser; GRANT SELECT ON edb.jobhist TO pubuser; @@ -128,7 +91,7 @@ Using roles is convenient if you wish to add new application users who need priv The following example shows the creation of the role and the granting of the privileges on the publication tables to the role: -``` text +```text CREATE ROLE appgroup; GRANT SELECT, INSERT, UPDATE, DELETE ON edb.dept TO appgroup; GRANT SELECT, INSERT, UPDATE, DELETE ON edb.emp TO appgroup; @@ -138,7 +101,7 @@ GRANT SELECT, INSERT, UPDATE, DELETE ON edb.salesemp TO appgroup; The following example shows the creation of a new user and the granting of the new role to the user: -``` text +```text CREATE USER appuser IDENTIFIED BY password; GRANT CREATE SESSION TO appuser; GRANT appgroup TO appuser; @@ -171,21 +134,12 @@ This example uses the following SQL Server login, database users, and mappings t - The control schema used to contain certain control schema objects created by the publication server is pubuser. Other control schema objects are always created in `_edb_replicator_pub`, `_edb_replicator_sub`, and `_edb_scheduler`. - The database user mapped to SQL Server login `pubuser` in database `msdb` is `pubuser_msdb`. -
      - -
      - -Note - -
      +!!! Note + The sqlcmd utility program is used to execute the SQL statements in these examples. The USE command establishes the database to which the subsequent statements are to apply. The GO command executes the preceding SQL statements as a batch. Placement of the GO command within a stream of SQL statements sometimes has significance depending upon the particular SQL statements. -The sqlcmd utility program is used to execute the SQL statements in these examples. The USE command establishes the database to which the subsequent statements are to apply. The GO command executes the preceding SQL statements as a batch. Placement of the GO command within a stream of SQL statements sometimes has significance depending upon the particular SQL statements. +**Step 1:** Create a SQL Server login for the xDB Replication Server publication database user. The login must have a password. When creating the publication database definition, the SQL Server login is entered in the Publication Service – Add Database dialog box (see Section [Adding a Publication Database](../02_creating_publication/02_adding_pub_database/#adding_pub_database)). -
      - -**Step 1:** Create a SQL Server login for the xDB Replication Server publication database user. The login must have a password. When creating the publication database definition, the SQL Server login is entered in the Publication Service – Add Database dialog box (see Section [Adding a Publication Database](../../05_smr_operation/02_creating_publication/#adding_pub_database)). - -``` text +```text USE primary; GO CREATE LOGIN pubuser WITH PASSWORD = 'password'; @@ -194,7 +148,7 @@ GO **Step 2:** Create the database user and its required privileges for job scheduling in database `msdb`: -``` text +```text USE msdb; GO CREATE USER pubuser_msdb FOR LOGIN pubuser; @@ -206,40 +160,22 @@ GO **Step 3:** Create the database user for the control schema object creation and ownership. The control schema objects are created in the publication database to track, control, and record the replication process and history. This example assumes some of the control schema objects are to be created in the schema named `pubuser`. -
      - -
      - -Note - -
      - -The schema name you specify in the `WITH DEFAULT_SCHEMA` clause must be the schema you choose in Step 5. This schema does not have to exist before using it in the `CREATE USER FOR LOGIN WITH DEFAULT_SCHEMA` statement. - -
      +!!! Note + The schema name you specify in the `WITH DEFAULT_SCHEMA` clause must be the schema you choose in Step 5. This schema does not have to exist before using it in the `CREATE USER FOR LOGIN WITH DEFAULT_SCHEMA` statement. -``` text +```text USE edb; GO CREATE USER pubuser FOR LOGIN pubuser WITH DEFAULT_SCHEMA = pubuser; GO ``` -
      - -
      - -Note - -
      - -The remaining steps assume that the commands are given in the publication database (that is, the `USE` edb command has been previously given to establish the publication database `edb` as the current database.) - -
      +!!! Note + The remaining steps assume that the commands are given in the publication database (that is, the `USE` edb command has been previously given to establish the publication database `edb` as the current database.) **Step 4:** Grant the database level privileges needed by the publication database user to create the control schema objects. -``` text +```text GRANT CREATE TABLE TO pubuser; GRANT CREATE PROCEDURE TO pubuser; GRANT CREATE FUNCTION TO pubuser; @@ -251,14 +187,14 @@ GO To create the control schema objects in a new schema owned by the publication database user and created exclusively for this purpose (recommended approach) issue the following command: -``` text +```text CREATE SCHEMA pubuser AUTHORIZATION pubuser; GO ``` Alternatively, to create the control schema objects in an existing schema such as in the same schema containing the publication tables (that is, schema `edb` in this example) use the following commands: -``` text +```text GRANT ALTER ON SCHEMA :: edb TO pubuser; GRANT EXECUTE ON SCHEMA :: edb TO pubuser; GRANT SELECT ON SCHEMA :: edb TO pubuser; @@ -270,7 +206,7 @@ GO **Step 6:** Grant the privileges required to create triggers on the publication tables. The publication database user must have the `ALTER` privilege on the publication tables. -``` text +```text GRANT ALTER ON edb.dept TO pubuser; GRANT ALTER ON edb.emp TO pubuser; GRANT ALTER ON edb.jobhist TO pubuser; @@ -279,7 +215,7 @@ GO **Step 7:** The publication database user must be able to read the tables and views that are to be included in publications. -``` text +```text GRANT SELECT ON edb.dept TO pubuser; GRANT SELECT ON edb.emp TO pubuser; GRANT SELECT ON edb.jobhist TO pubuser; @@ -289,17 +225,8 @@ GO **Step 8 (Optional):** Create one or more `group` roles containing the required privileges to access the tables and views of the publications that will be needed by application users. -
      - -
      - -Note - -
      - -Creation of these roles can only be done after the SQL Server publication database definition has been created using the xDB Replication Console or xDB Replication Server CLI. (For example, see [Adding a Publication Database](../../05_smr_operation/02_creating_publication/#adding_publication) for the xDB Replication Console usage.) - -
      +!!! Note + Creation of these roles can only be done after the SQL Server publication database definition has been created using the xDB Replication Console or xDB Replication Server CLI. (For example, see [Adding a Publication Database](../02_creating_publication/03_adding_publication/#adding_publication) for the xDB Replication Console usage.) Using roles is convenient if you wish to add new application users who need privileges to select, insert, update, or delete from any of the publication tables. A role containing the required privileges can then be granted to the new users instead of granting each privilege individually to each user. @@ -307,7 +234,7 @@ In addition to privileges on the publication tables, any user performing an inse The following example shows the creation of the role `appgroup` and the granting of privileges on the publication tables to the role. The example assumes that in Step 5, schema pubuser was chosen as the control schema to store some of the control schema objects. -``` text +```text CREATE ROLE appgroup AUTHORIZATION edb; GRANT SELECT, INSERT, UPDATE, DELETE ON edb.dept TO appgroup; GRANT SELECT, INSERT, UPDATE, DELETE ON edb.emp TO appgroup; @@ -323,30 +250,21 @@ GO The following example shows the creation of a new login and database user, and the addition of the database user as a member of the role in order to inherit its privileges: -``` text +```text CREATE LOGIN applogin WITH PASSWORD = 'password', DEFAULT_DATABASE = edb; CREATE USER appuser FOR LOGIN applogin WITH DEFAULT_SCHEMA = edb; EXEC sp_addrolemember @rolename = 'appgroup', @membername = 'appuser'; GO ``` -
      - -
      - -Note - -
      - -(Granting privileges to individual users): As previously described, each application database user that is to modify the data in any of the publication tables must be granted certain privileges on the publication tables and the control schema objects. Using a group role for this purpose as described earlier in this step helps simplify this process. - -
      +!!! Note + (Granting privileges to individual users): As previously described, each application database user that is to modify the data in any of the publication tables must be granted certain privileges on the publication tables and the control schema objects. Using a group role for this purpose as described earlier in this step helps simplify this process. Individual database users can be granted the privileges to access the publication tables and the controls schema objects in a similar fashion. The following example shows the creation of a new login and database user, and the granting of the privileges on the publication tables and the control schema objects to the user: -``` text +```text CREATE LOGIN newlogin WITH PASSWORD = 'password', DEFAULT_DATABASE = edb; CREATE USER newuser FOR LOGIN newlogin WITH DEFAULT_SCHEMA = edb; GRANT SELECT, INSERT, UPDATE, DELETE ON edb.dept TO newuser; @@ -361,19 +279,10 @@ GRANT INSERT ON SCHEMA :: pubuser TO newuser; GO ``` -
      +!!! Note + Instead of using the preceding statements, which grant privileges at the schema level, a more granular level of privileges can be issued at the database object level using the following statements: -
      - -Note - -
      - -Instead of using the preceding statements, which grant privileges at the schema level, a more granular level of privileges can be issued at the database object level using the following statements: - -
      - -``` text +```text CREATE LOGIN newlogin WITH PASSWORD = 'password', DEFAULT_DATABASE = edb; CREATE USER newuser FOR LOGIN newlogin WITH DEFAULT_SCHEMA = edb; GRANT SELECT, INSERT, UPDATE, DELETE ON edb.dept TO newuser; @@ -390,7 +299,7 @@ In addition, depending upon the version of SQL Server, grant the following addit **For SQL Server 2008:** Grant the following privileges: -``` text +```text GRANT EXECUTE ON _edb_replicator_pub.nextval TO newuser; GRANT SELECT ON _edb_replicator_pub.rrep_tx_seq TO newuser; GRANT INSERT ON _edb_replicator_pub.rrep_tx_seq TO newuser; @@ -399,7 +308,7 @@ GO **For SQL Server 2012, 2014:** Grant the following privileges: -``` text +```text GRANT UPDATE ON _edb_replicator_pub.rrep_tx_seq TO newuser; GRANT UPDATE ON _edb_replicator_pub.rrep_txset_seq TO newuser; GRANT UPDATE ON _edb_replicator_pub.rrep_common_seq TO newuser; @@ -415,32 +324,23 @@ Using this approach, however, requires you to issue additional privileges for ea When creating the publication database definition, a database user name must be specified that has the following characteristics: - The database user can connect to the publication database. -- The database user has superuser privileges. Superuser privileges are required because the database configuration parameter session\_replication\_role is altered by the database user to replica for snapshot operations involving replication of the control schema from one publication database to another. -- The database user must have the ability to modify the system catalog tables in order to disable foreign key constraints on the control schema tables for snapshot operations involving replication of the control schema from one publication database to another. See [Disabling Foreign Key Constraints for Snapshot Replications](../../10_appendix/04_miscellaneous_xdb_processing_topics/#disable_foreign_key_constraints_for_snapshot_replication) for more information on this requirement. +- The database user has superuser privileges. Superuser privileges are required because the database configuration parameter session_replication_role is altered by the database user to replica for snapshot operations involving replication of the control schema from one publication database to another. +- The database user must have the ability to modify the system catalog tables in order to disable foreign key constraints on the control schema tables for snapshot operations involving replication of the control schema from one publication database to another. See [Disabling Foreign Key Constraints for Snapshot Replications](../../10_appendix/04_miscellaneous_xdb_processing_topics/04_disable_foreign_key_constraints_for_snapshot_replication/#disable_foreign_key_constraints_for_snapshot_replication) for more information on this requirement. **Step 1:** Create a database superuser for the publication database user. The publication database user name must have a password, and it must have the ability to create a database session. The publication database user becomes the owner of the control schema objects that will be created in the publication database to track, control, and record the replication process and history. When creating the publication database definition, the publication database user name is entered in the Publication Service – Add Database dialog box. -See [Adding a Publication Database](../../05_smr_operation/02_creating_publication/#adding_pub_database) +See [Adding a Publication Database](../02_creating_publication/02_adding_pub_database/#adding_pub_database) -``` text +```text CREATE ROLE pubuser WITH LOGIN SUPERUSER PASSWORD 'password'; ``` **Step 2 (Optional):** Create one or more `group` roles containing the required privileges to access the tables and views of the publications that will be needed by application users. -
      - -
      - -Note - -
      - -The process described in this step is applicable to Postgres publications in both single-master and multi-master replication systems. - -
      +!!! Note + The process described in this step is applicable to Postgres publications in both single-master and multi-master replication systems. Using roles is convenient if you wish to add new application users who need privileges to select, insert, update, or delete from any of the publication tables. A role containing the required privileges can then be granted to the new users instead of granting each privilege individually to each user. @@ -448,7 +348,7 @@ Any user performing an `insert, update`, or `delete` operation on any of the pub The following example shows the creation of the role `appgroup` and the granting of privileges on the publication tables to the role. -``` text +```text CREATE ROLE appgroup; GRANT USAGE ON SCHEMA edb TO appgroup; GRANT SELECT, INSERT, UPDATE, DELETE ON edb.dept TO appgroup; @@ -459,37 +359,28 @@ GRANT SELECT, INSERT, UPDATE, DELETE ON edb.salesemp TO appgroup; In addition, for the log-based method of synchronization replication, if the `TRUNCATE` command is to be permitted on the publication tables, grant the following additional privileges: -``` text +```text GRANT TRUNCATE ON edb.dept TO appgroup; GRANT TRUNCATE ON edb.emp TO appgroup; GRANT TRUNCATE ON edb.jobhist TO appgroup; ``` -Also for the log-based method of synchronization replication for usage of the `TRUNCATE` command, grant the following privileges after creation of the publication database definition. See [Adding a Publication Database](../../05_smr_operation/02_creating_publication/#adding_publication) for information on creating the publication database definition for a single-master replication system. For a multi-master replication system, [Adding the Primary definition node](../../06_mmr_operation/#adding_pdn). +Also for the log-based method of synchronization replication for usage of the `TRUNCATE` command, grant the following privileges after creation of the publication database definition. See [Adding a Publication Database](../02_creating_publication/03_adding_publication/#adding_publication) for information on creating the publication database definition for a single-master replication system. For a multi-master replication system, [Adding the Primary definition node](../../06_mmr_operation/02_creating_publication_mmr/#adding_pdn). -``` text +```text GRANT USAGE ON SCHEMA _edb_replicator_pub TO appgroup; GRANT INSERT ON _edb_replicator_pub.rrep_wal_events_queue TO appgroup; ``` Finally, grant the group role to the desired database users. The following example shows the creation of a new user and the granting of the role to the user: -``` text +```text CREATE ROLE appuser WITH LOGIN PASSWORD 'password'; GRANT appgroup TO appuser; ``` -
      - -
      - -Note - -
      - -(Granting privileges to roles after publication creation): Roles for containing publication table privileges should be created before you create the publication. (See [Adding a Publication](../../05_smr_operation/02_creating_publication/#adding_publication) for information on creating a publication for a single-master replication system. For a multi-master replication system, see [Adding a Publication](../../06_mmr_operation/#add_pub_mmr).) - -
      +!!! Note + (Granting privileges to roles after publication creation): Roles for containing publication table privileges should be created before you create the publication. (See [Adding a Publication](../02_creating_publication/03_adding_publication/#adding_publication) for information on creating a publication for a single-master replication system. For a multi-master replication system, see [Adding a Publication](../../06_mmr_operation/02_creating_publication_mmr/#add_pub_mmr).) When you create the publication, the privileges that have been granted on the publication tables to roles that exist at the time, are applied to the control schema objects for those roles. So for the preceding example, the privileges required on the control schema objects for any publication created using `edb.dept`, `edb.emp`, `edb.jobhist`, or `edb.salesemp` are granted to role `appgroup` when you create that publication. @@ -503,7 +394,7 @@ When using the trigger-based method of synchronization replication, a role must The following example shows the creation of a new role and the granting of the privileges on the publication tables and the control schema objects to the role for the trigger-based method of synchronization replication: -``` text +```text CREATE ROLE newuser WITH LOGIN PASSWORD 'password'; GRANT USAGE ON SCHEMA edb TO newuser; GRANT SELECT, INSERT, UPDATE, DELETE ON edb.dept TO newuser; @@ -525,7 +416,7 @@ When using the log-based method of synchronization replication, a role must be g The following example shows the creation of a new role and the granting of the privileges on the publication tables to the role for the log-based method of synchronization replication: -``` text +```text CREATE ROLE newuser WITH LOGIN PASSWORD 'password'; GRANT USAGE ON SCHEMA edb TO newuser; GRANT SELECT, INSERT, UPDATE, DELETE ON edb.dept TO newuser; @@ -535,7 +426,7 @@ GRANT SELECT, INSERT, UPDATE, DELETE ON edb.jobhist TO newuser; In addition, if the TRUNCATE command is to be permitted on the publication tables, grant the following additional privileges: -``` text +```text GRANT TRUNCATE ON edb.dept TO newuser; GRANT TRUNCATE ON edb.emp TO newuser; GRANT TRUNCATE ON edb.jobhist TO newuser; diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/05_preparing_sub_database.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/05_preparing_sub_database.mdx index 9cd7a11ee2a..0931481cadd 100644 --- a/product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/05_preparing_sub_database.mdx +++ b/product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/05_preparing_sub_database.mdx @@ -4,7 +4,6 @@ title: "Preparing the Subscription Database" - This section discusses the preparation of a database that will be used as a subscription database. The tables and views in a given publication must all be replicated to the same database. This database is called the subscription database. A subscription database user name must be created with the following characteristics: @@ -13,7 +12,7 @@ The tables and views in a given publication must all be replicated to the same d - The subscription database user has the privileges to create database objects for the replicated tables and views from publications. - The subscription database user has the privileges necessary to execute the TRUNCATE command on the replicated tables. -See [Postgres Subscription Database](../../05_smr_operation/01_prerequisites/#postgres_sub_database) for preparation of a Postgres subscription database. See [Oracle Subscription Database](../../05_smr_operation/01_prerequisites/#oracle_sub_database) for preparation of an Oracle subscription database. See [SQL Server Subscription Database](../../05_smr_operation/01_prerequisites/#sql_sub_database) for preparation of a SQL Server subscription database. +See [Postgres Subscription Database](#postgres_sub_database) for preparation of a Postgres subscription database. See [Oracle Subscription Database](#oracle_sub_database) for preparation of an Oracle subscription database. See [SQL Server Subscription Database](#sql_sub_database) for preparation of a SQL Server subscription database. @@ -21,12 +20,12 @@ See [Postgres Subscription Database](../../05_smr_operation/01_prerequisites/#po A database user name must be chosen or created to serve as the subscription database user. The user name must have a password. The subscription database user becomes the owner of the replicated database objects. -When creating the subscription database definition, the subscription database user name is entered in the Subscription Service – Add Database dialog box (see [Adding a Subscription Database](../../05_smr_operation/03_creating_subscription/#adding_subscription_database)). +When creating the subscription database definition, the subscription database user name is entered in the Subscription Service – Add Database dialog box (see [Adding a Subscription Database](../03_creating_subscription/02_adding_subscription_database/#adding_subscription_database)). The subscription database user must also have the ability to run the `TRUNCATE` command on the subscription tables. This requires the following: - The subscription database user must have superuser privileges. -- The subscription database user must have the ability to modify the system catalog tables in order to disable foreign key constraints on subscription tables. (See appendix [Disabling Foreign Key Constraints for Snapshot Replications](../../10_appendix/04_miscellaneous_xdb_processing_topics/#disable_foreign_key_constraints_for_snapshot_replication) for more information on this requirement.) +- The subscription database user must have the ability to modify the system catalog tables in order to disable foreign key constraints on subscription tables. (See appendix [Disabling Foreign Key Constraints for Snapshot Replications](../../10_appendix/04_miscellaneous_xdb_processing_topics/04_disable_foreign_key_constraints_for_snapshot_replication/#disable_foreign_key_constraints_for_snapshot_replication) for more information on this requirement.) You have the following two choices for choosing the subscription database user name: @@ -35,7 +34,7 @@ You have the following two choices for choosing the subscription database user n **Step 1:** Create a superuser as the subscription database user. -``` text +```text CREATE ROLE subuser WITH LOGIN SUPERUSER PASSWORD 'password'; ``` @@ -49,7 +48,7 @@ The existing schemas must not contain any tables or views with the same names as A new subscription database owned by the subscription database user `subuser` can be created with the following: -``` text +```text CREATE DATABASE subdb OWNER subuser; ``` @@ -61,45 +60,18 @@ CREATE DATABASE subdb OWNER subuser; **Step 2:** Create a database user name for the subscription database user. The subscription database user name must have a password, and it must have the ability to create a database session. The subscription database user becomes the owner of the replicated database objects. -
      - -
      - -Note - -
      - -(For Oracle 12c Pluggable Database): The subscription database user can be an Oracle local user or a common user. The local user exists within and has access to only a single, user-created pluggable database (PDB), which is to be used as the subscription database. Common user names typically begin with C\#\# or c\#\# and can access multiple pluggable databases. - -
      - -
      - -
      - -Note - -
      - -(For Oracle 12c Pluggable Database): Creation and granting of privileges for a local user must be done while connected to the pluggable database to be used as the subscription database. Creation of a common user must be done within the Oracle 12c root container `CDB$ROOT`. Granting of privileges to the common user must be done while connected to the pluggable database to be used as the subscription database. +!!! Note + (For Oracle 12c Pluggable Database): The subscription database user can be an Oracle local user or a common user. The local user exists within and has access to only a single, user-created pluggable database (PDB), which is to be used as the subscription database. Common user names typically begin with C## or c## and can access multiple pluggable databases. -
      +!!! Note + (For Oracle 12c Pluggable Database): Creation and granting of privileges for a local user must be done while connected to the pluggable database to be used as the subscription database. Creation of a common user must be done within the Oracle 12c root container `CDB$ROOT`. Granting of privileges to the common user must be done while connected to the pluggable database to be used as the subscription database. -
      +!!! Note + (For Oracle 12c Non-Container Database): Creation and granting of privileges to the subscription database user are performed in the same manner as for Oracle versions prior to 12c. -
      +When creating the subscription database definition, the subscription database user name is entered in the Subscription Service – Add Database dialog box (see [Adding a Subscription Database](../03_creating_subscription/02_adding_subscription_database/#adding_subscription_database)). -Note - -
      - -(For Oracle 12c Non-Container Database): Creation and granting of privileges to the subscription database user are performed in the same manner as for Oracle versions prior to 12c. - -
      - -When creating the subscription database definition, the subscription database user name is entered in the Subscription Service – Add Database dialog box (see [Adding a Subscription Database](../../05_smr_operation/03_creating_subscription/#adding_subscription_database)). - -``` text +```text CREATE USER subuser IDENTIFIED BY password; GRANT CONNECT TO subuser; ``` @@ -108,13 +80,13 @@ GRANT CONNECT TO subuser; The replicated database objects are created in the schema owned by, and with the same name as the subscription database user. -``` text +```text GRANT RESOURCE TO subuser; ``` **Step 4 (For Oracle 12c only):** Grant the privileges required to access tablespaces. The `GRANT UNLIMITED TABLESPACE` privilege must be granted to the subscription database user. This requirement applies to both a pluggable database and a non-container database. -``` text +```text GRANT UNLIMITED TABLESPACE TO subuser; ``` @@ -124,23 +96,14 @@ GRANT UNLIMITED TABLESPACE TO subuser; **Step 1:** Create or choose the subscription database. The names of the schemas containing the publication tables and views become the names of the SQL Server schemas for the subscription tables. The subscription server creates these schemas in the subscription database when the subscription is created. If schemas with these names already exist in the subscription database, the existing schemas will be used to store the subscription tables. -
      - -
      - -Note - -
      - -If the schema containing the publication tables and views is named public, then the subscription server creates a schema named `public_sql` in the SQL Server subscription database for the subscription tables. - -
      +!!! Note + If the schema containing the publication tables and views is named public, then the subscription server creates a schema named `public_sql` in the SQL Server subscription database for the subscription tables. The existing schemas must not contain any tables or views with the same names as the publication tables and views. The subscription server returns an error if there are already identically named tables or views. You must delete or rename these tables and views before the subscription can be created. A new subscription database can be created as shown by the following: -``` text +```text USE primary; GO CREATE DATABASE subdb; @@ -149,9 +112,9 @@ GO **Step 2:** Create a SQL Server login for the subscription database user. The login must have a password. -When creating the subscription database definition, the SQL Server login is entered in the Subscription Service – Add Database dialog box (see [Adding a Subscription Database](../../05_smr_operation/03_creating_subscription/#adding_subscription_database)). +When creating the subscription database definition, the SQL Server login is entered in the Subscription Service – Add Database dialog box (see [Adding a Subscription Database](../03_creating_subscription/02_adding_subscription_database/#adding_subscription_database)). -``` text +```text CREATE LOGIN subuser WITH PASSWORD = 'password'; GO ``` @@ -160,7 +123,7 @@ GO In this example, the database user is given the same name as the SQL Server login `subuser`. -``` text +```text USE subdb; GO CREATE USER subuser FOR LOGIN subuser; @@ -169,7 +132,7 @@ GO **Step 4:** Grant the database level privileges needed by the subscription database user to create the schema and tables for the subscription. -``` text +```text GRANT CREATE SCHEMA TO subuser; GRANT CREATE TABLE TO subuser; GO diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/06_verifying_host_accessibility.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/06_verifying_host_accessibility.mdx index cfd00b30e77..a9d8681301b 100644 --- a/product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/06_verifying_host_accessibility.mdx +++ b/product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/06_verifying_host_accessibility.mdx @@ -4,7 +4,6 @@ title: "Verifying Host Accessibility" - If more than one computer is used to host the components of the replication system, each computer must be able to communicate with the others on a network. There are a number of different aspects of this topic as discussed in the following sections. @@ -17,13 +16,13 @@ In addition if you are running the xDB Replication Console or the xDB Replicatio The xDB Replication Console and xDB Replication Server CLI access the publication server and the subscription server using Java Remote Method Invocation (RMI) through the designated ports. -The publication server uses the port number you specified on the Publication Server Details screen in Step 16 of [Installing With Stack Builder or StackBuilder Plus](../../03_installation/#installing_with_stackbuilder) as well the port offset by a value of 2 greater than this specified port number. So for a default publication server installation, access is required for port numbers `9051` and `9053`. +The publication server uses the port number you specified on the Publication Server Details screen in Step 16 of [Installing With Stack Builder or StackBuilder Plus](../../03_installation/01_installing_with_stackbuilder/#installing_with_stackbuilder) as well the port offset by a value of 2 greater than this specified port number. So for a default publication server installation, access is required for port numbers `9051` and `9053`. -The subscription server uses the port number you specified on the Subscription Server Details screen in Step 17 of [Installing With Stack Builder or StackBuilder Plus](../../03_installation/#installing_with_stackbuilder) as well as the port offset by a value of 2 greater than this specified port number. So for a default subscription server installation, access is required for port numbers `9052` and `9054`. +The subscription server uses the port number you specified on the Subscription Server Details screen in Step 17 of [Installing With Stack Builder or StackBuilder Plus](../../03_installation/01_installing_with_stackbuilder/#installing_with_stackbuilder) as well as the port offset by a value of 2 greater than this specified port number. So for a default subscription server installation, access is required for port numbers `9052` and `9054`. -When you install xDB Replication Server, the port numbers you specify for the publication server and the subscription server are stored in the xDB Startup Configuration file as shown by the following example. See [xDB Startup Configuration File](../../02_overview/03_replication_server_components_and_architecture/#xdb_startup_conf_file) for information on the xDB Startup Configuration file. +When you install xDB Replication Server, the port numbers you specify for the publication server and the subscription server are stored in the xDB Startup Configuration file as shown by the following example. See [xDB Startup Configuration File](../../02_overview/03_replication_server_components_and_architecture/01_physical_components/#xdb_startup_conf_file) for information on the xDB Startup Configuration file. -``` text +```text #!/bin/sh JAVA_EXECUTABLE_PATH="/usr/bin/java" @@ -36,17 +35,8 @@ SUBPORT=9052 If you want to use different port numbers, modify the PUBPORT and SUBPORT entries in the xDB Startup Configuration file and restart the publication server and subscription server. -
      - -
      - -Note - -
      - -If you change the port numbers for the publication server or subscription server for which there are existing replication systems, there are additional updates you must perform upon these existing replication systems.See [Subscription Server Network Location](../../07_common_operations/06_managing_publication/#sub_server_network_loc) for changes that must be made for the publication server metadata in the control schema if the port number used by the subscription server has been changed. See [Updating a Subscription](../../05_smr_operation/05_managing_subscription/#updating_subscription) for changes that must be made for the subscription metadata in the control schema if the port number used by the publication server has been changed. - -
      +!!! Note + If you change the port numbers for the publication server or subscription server for which there are existing replication systems, there are additional updates you must perform upon these existing replication systems.See [Subscription Server Network Location](../../07_common_operations/06_managing_publication/01_updating_publication_server/#sub_server_network_loc) for changes that must be made for the publication server metadata in the control schema if the port number used by the subscription server has been changed. See [Updating a Subscription](../05_managing_subscription/03_updating_subscription/#updating_subscription) for changes that must be made for the subscription metadata in the control schema if the port number used by the publication server has been changed. @@ -68,27 +58,18 @@ The loopback address works as long as the communicating components are on the sa **For Linux only:** You may need to modify the `/etc/hosts` file so that a host’s network IP address is associated with the host’s name. -
      - -
      - -Note - -
      - -For an alternative to modifying the /etc/hosts file see [Assigning an IP Address for Remote Method Invocation](../../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/#assign_ip_adress_for_rmi). - -
      +!!! Note + For an alternative to modifying the /etc/hosts file see [Assigning an IP Address for Remote Method Invocation](../../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/07_assign_ip_adress_for_rmi/#assign_ip_adress_for_rmi). The default configuration on Linux systems associates the host name with the loopback address in the `/etc/hosts` file as shown by the following example: -``` text +```text 127.0.0.1 localhost.localdomain localhost ``` This is also verified by using the hostname -i command, which returns the IP address associated with the host name: -``` text +```text $ hostname -i 127.0.0.1 ``` @@ -102,7 +83,7 @@ If the loopback address `127.x.x.x` is returned such as in the preceding example The following example shows the modified /etc/hosts file so that the host name localhost is now associated with the network IP address `192.168.2.22` instead of the loopback address `127.0.0.1`: -``` text +```text #127.0.0.1 localhost.localdomain localhost 192.168.2.22 localhost.localdomain localhost ::1 localhost6.localdomain6 localhost6 @@ -110,7 +91,7 @@ The following example shows the modified /etc/hosts file so that the host name l On some Linux systems, you may need to restart the network service after you have modified the `/etc/hosts` file. This may be done a number of different ways depending upon the Linux system you are using as shown by the following variations: -``` text +```text service network restart /etc/init.d/networking restart sudo /etc/init.d/networking restart @@ -118,7 +99,7 @@ sudo /etc/init.d/networking restart The following example illustrates the service network command: -``` text +```text $ su root Password: $ service network restart @@ -132,7 +113,7 @@ Use the following command for CentOS 7 or RHEL 7 and CentOS 8 or RHEL 8: The hostname -i command now returns the network IP address of the host: -``` text +```text $ hostname -i 192.168.2.22 ``` @@ -154,16 +135,16 @@ The modifications needed to the `pg_hba.conf` file for each of the aforementione For a Postgres publication database, the following is needed to allow access to the publication database: -``` text +```text host pub_dbname pub_dbuser pub_ipaddr/32 md5 host pub_dbname pub_dbuser sub_ipaddr/32 md5 ``` -The value you substitute for `pub_dbname` is the name of the Postgres publication database you intend to use. The value you substitute for `pub_dbuser` is the publication database user name you created in Step 1 of [Postgres Publication Database](../../05_smr_operation/01_prerequisites/#postgres_pub_db). +The value you substitute for `pub_dbname` is the name of the Postgres publication database you intend to use. The value you substitute for `pub_dbuser` is the publication database user name you created in Step 1 of [Postgres Publication Database](04_preparing_pub_database/#postgres_pub_db). For a Postgres publication database named `edb`, the resulting `pg_hba.conf` file appears as follows: -``` text +```text # TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only @@ -180,19 +161,10 @@ host all all ::1/128 md5 #host replication enterprisedb ::1/128 md5 ``` -
      +!!! Note + The preceding example assumes the publication server and the subscription server are running on the same host, hence the single entry for database `edb`. If the publication server and subscription server are running on separate hosts, then the `pg_hba.conf` file on the publication database server would look like the following: -
      - -Note - -
      - -The preceding example assumes the publication server and the subscription server are running on the same host, hence the single entry for database `edb`. If the publication server and subscription server are running on separate hosts, then the `pg_hba.conf` file on the publication database server would look like the following: - -
      - -``` text +```text # TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only @@ -214,7 +186,7 @@ In addition, the preceding examples assume publication database edb is using the The following shows a modification of the preceding example with this additional entry as the last line in the file: -``` text +```text # TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only @@ -233,7 +205,7 @@ host all all ::1/128 md5 host replication pubuser 192.168.2.22/32 md5 ``` -See [Synchronization Replication with the Log-Based Method](../../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#sync_replication_log_based) and [Enabling Synchronization Replication with the Log-Based Method](../../05_smr_operation/01_prerequisites/#enable_sync_replication_with_log-based_method) for additional information on synchronization replication with the log-based method. +See [Synchronization Replication with the Log-Based Method](../../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#sync_replication_log_based) and [Enabling Synchronization Replication with the Log-Based Method](02_enable_sync_replication_with_log-based_method/#enable_sync_replication_with_log-based_method) for additional information on synchronization replication with the log-based method. Reload the configuration file after making the modifications. @@ -243,16 +215,16 @@ Choose Reload Configuration (Expert Configuration, then Reload Configuration on For a Postgres subscription database, the following entries are needed to allow access to the subscription database: -``` text +```text host sub_dbname sub_dbuser pub_ipaddr/32 md5 host sub_dbname sub_dbuser sub_ipaddr/32 md5 ``` -The values you substitute for sub\_dbuser and sub\_dbname are the subscription database user name and the subscription database name you created in steps 1 and 2 of [Postgres Subscription Database](../../05_smr_operation/01_prerequisites/#postgres_sub_database). +The values you substitute for sub_dbuser and sub_dbname are the subscription database user name and the subscription database name you created in steps 1 and 2 of [Postgres Subscription Database](05_preparing_sub_database/#postgres_sub_database). For a Postgres subscription database named `subdb`, the resulting `pg_hba.conf` file appears as follows: -``` text +```text # TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only @@ -269,19 +241,10 @@ host all all ::1/128 md5 #host replication enterprisedb ::1/128 md5 ``` -
      - -
      - -Note - -
      - -The preceding example assumes that the publication server and the subscription server are running on the same host hence, only one entry is needed for database `subdb`. If the publication server and subscription server are running on separate hosts, then the `pg_hba.conf` file on the subscription database server looks like the following: - -
      +!!! Note + The preceding example assumes that the publication server and the subscription server are running on the same host hence, only one entry is needed for database `subdb`. If the publication server and subscription server are running on separate hosts, then the `pg_hba.conf` file on the subscription database server looks like the following: -``` text +```text # TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/index.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/index.mdx index bffaa40a735..04de8abc78d 100644 --- a/product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/index.mdx +++ b/product_docs/docs/eprs/6.2/05_smr_operation/01_prerequisites/index.mdx @@ -4,11 +4,10 @@ title: "Prerequisite Steps" - Certain steps must be taken to prepare the host environments as well as the publication and subscription database servers before beginning the process of building a single-master replication system. This section describes these steps.
      -setting\_heap\_size\_for\_pub\_and\_sub enable\_sync\_replication\_with\_log-based\_method enable\_access\_to\_database preparing\_pub\_database preparing\_sub\_database verifying\_host\_accessibility +setting_heap_size_for_pub_and_sub enable_sync_replication_with_log-based_method enable_access_to_database preparing_pub_database preparing_sub_database verifying_host_accessibility
      diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/02_creating_publication/01_registering_publication_server.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/02_creating_publication/01_registering_publication_server.mdx index fce1a168b07..c477f648002 100644 --- a/product_docs/docs/eprs/6.2/05_smr_operation/02_creating_publication/01_registering_publication_server.mdx +++ b/product_docs/docs/eprs/6.2/05_smr_operation/02_creating_publication/01_registering_publication_server.mdx @@ -4,36 +4,26 @@ title: "Registering a Publication Server" - When you register a publication server, you are identifying the network location, admin user name, and password of a specific, running, publication server instance that you want to use to manage all aspects of the publications you will be creating subordinate to it. It is important that you record the login information for the publication server as you must always use this same publication server instance to manage all publications created subordinate to it as represented in the xDB Replication Console replication tree. **Step 1:** Start the publication server if it is not already running. -
      - -
      - -Note - -
      - -If you are using Oracle publication or subscription databases, and the publication server has not been restarted since copying the Oracle JDBC driver to the `lib/jdbc` subdirectory of your xDB Replication Server installation, you must restart the publication server. - -
      +!!! Note + If you are using Oracle publication or subscription databases, and the publication server has not been restarted since copying the Oracle JDBC driver to the `lib/jdbc` subdirectory of your xDB Replication Server installation, you must restart the publication server. **For Linux only:** You can verify the publication server is running by using the `systemctl` command for CentOS 7 or RHEL 7 and CentOS or RHEL 8, and the service command for previous Linux versions. Use the following command for CentOS 7 or RHEL 7 and CentOS 8 or RHEL 8: -``` text +```text systemctl status edb-xdbpubserver ``` Use the following command for previous Linux versions: -``` text +```text service edb-xdbpubserver status ``` @@ -41,13 +31,13 @@ If the publication server is running and you wish to restart it, use the restart For CentOS 7 or RHEL 7 and CentOS 8 or RHEL 8: -``` text +```text systemctl restart edb-xdbpubserver ``` **For previous Linux versions:** -``` text +```text service edb-xdbpubserver restart ``` @@ -55,13 +45,13 @@ If the publication server is not running, use the start option. For CentOS 7 or RHEL 7 and CentOS 8 or RHEL 8: -``` text +```text systemctl start edb-xdbpubserver ``` **For previous Linux versions:** -``` text +```text service edb-xdbpubserver start ``` @@ -73,7 +63,7 @@ Similarly, use the stop option to stop the publication server. Use the Start or Restart link for the service. -If the publication server fails to start, see [Publication and Subscription Server Startup Failures](../../10_appendix/03_resolving_problems/#pub_and_sub_startup_failures) for information. +If the publication server fails to start, see [Publication and Subscription Server Startup Failures](../../10_appendix/03_resolving_problems/02_where_to_look_for_errors/#pub_and_sub_startup_failures) for information. Step 2: Register the publication server. Open the xDB Replication Console from the system’s application menu. For xDB Replication Server installed from an xDB RPM package, the xDB Replication Console is started by invoking the script `XDB_HOME/bin/runRepConsole.sh`. @@ -85,23 +75,14 @@ Step 2: Register the publication server. Open the xDB Replication Console from t Enter the values you supplied during the installation of xDB Replication Server unless otherwise specified. -- `Host`. Network IP address of the host running the publication server. This is the network IP address used for `pub_ipaddr` in the `pg_hba.conf` file in [Postgres Server Authentication](../../05_smr_operation/01_prerequisites/#postgres_server_auth). (Do not use `localhost` for this field.) -- `Port`. Port number the publication server is using. This is the port number you specified on the Publication Server Details screen in Step 16 of [Postgres Server Authentication](../../03_installation/#installing_with_stackbuilder). -- `User Name`. Admin user name that is used to authenticate your usage of this publication server. This is the user name you specified on the xDB Admin User Details screen in Step 15 of [Installing With Stack Builder or StackBuilder Plus](../../03_installation/#installing_with_stackbuilder). +- `Host`. Network IP address of the host running the publication server. This is the network IP address used for `pub_ipaddr` in the `pg_hba.conf` file in [Postgres Server Authentication](../01_prerequisites/06_verifying_host_accessibility/#postgres_server_auth). (Do not use `localhost` for this field.) +- `Port`. Port number the publication server is using. This is the port number you specified on the Publication Server Details screen in Step 16 of [Postgres Server Authentication](../../03_installation/01_installing_with_stackbuilder/#installing_with_stackbuilder). +- `User Name`. Admin user name that is used to authenticate your usage of this publication server. This is the user name you specified on the xDB Admin User Details screen in Step 15 of [Installing With Stack Builder or StackBuilder Plus](../../03_installation/01_installing_with_stackbuilder/#installing_with_stackbuilder). - `Password`. Password of the admin user given in the User Name field. -- `Save login information`. Check this box if you do not want to re-register the publication server each time you open the xDB Replication Console. See [Saving Server Login Information](../../#saving_server_login_info) for additional information on the advantages and disadvantages of saving server login information. - -
      - -
      - -Note - -
      - -The user name and password combination you enter is authenticated against the admin user name and password in the xDB Replication Configuration file residing on the host with the IP address you enter in the Host field. +- `Save login information`. Check this box if you do not want to re-register the publication server each time you open the xDB Replication Console. See [Saving Server Login Information](../../04_intro_xdb_console/#saving_server_login_info) for additional information on the advantages and disadvantages of saving server login information. -
      +!!! Note + The user name and password combination you enter is authenticated against the admin user name and password in the xDB Replication Configuration file residing on the host with the IP address you enter in the Host field. ![Register Publication Server dialog box](/../../images/image63.png) diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/02_creating_publication/02_adding_pub_database.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/02_creating_publication/02_adding_pub_database.mdx index ba98e2e13db..4fbe9920744 100644 --- a/product_docs/docs/eprs/6.2/05_smr_operation/02_creating_publication/02_adding_pub_database.mdx +++ b/product_docs/docs/eprs/6.2/05_smr_operation/02_creating_publication/02_adding_pub_database.mdx @@ -4,7 +4,6 @@ title: "Adding a Publication Database" - The database in which publications are to reside must be identified to xDB Replication Server. This is done by creating a publication database definition. After the publication database definition is created, a Publication Database node representing that publication database definition appears in the replication tree of the xDB Replication Console. Publications that are to contain tables and views residing within this database can then be created under the Publication Database node. @@ -20,26 +19,17 @@ You must enter database connection information such as the database server netwo - `Database Type.` Select Oracle, SQL Server, PostgreSQL, or Postgres Plus Advanced Server for the type of publication database. For an Advanced Server Oracle compatible installation, select the Postgres Plus Advanced Server option. For PostgreSQL or an Advanced Server PostgreSQL compatible installation, select the PostgreSQL option. - `Host.` IP address of the host on which the publication database server is running. - `Port.` Port on which the publication database server is listening for connections. -- `User.` The publication database user name created in Step 1 of [Preparing the Publication Database](../../05_smr_operation/01_prerequisites/#preparing_pub_database). +- `User.` The publication database user name created in Step 1 of [Preparing the Publication Database](../01_prerequisites/04_preparing_pub_database/#preparing_pub_database). - `Password.` Password of the database user. - `Service ID (For Oracle).` Enter the Oracle System Identifier (SID) of the Oracle instance running the publication database if the SID radio button is selected. Enter the net service name of a connect descriptor as defined in the `TNSNAMES.ORA` file if the Service Name radio button is selected. Note (For Oracle 12c Pluggable Database): Use the service name. - Database (For Postgres or SQL Server). Enter the Postgres or SQL Server database name. -- `URL Options (For SSL connectivity).` Enter the URL options to establish SSL connectivity to the publication database. See Using Secure Sockets Layer (SSL) Connections <using\_ssl\_connections> for information on using SSL connections. -- `Changeset Logging (For Postgres).` Select Table Triggers to use the trigger-based method of synchronization replication. Select WAL Stream to use the log-based method of synchronization replication. See [Synchronization Replication with the Trigger-Based Method](../../02_overview/02_replication_concepts_and_definitions/#sync_replication_trigger_based) for information on the trigger-based method. See [Synchronization Replication with the Log-Based Method](../../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#sync_replication_log_based) for information on the log-based method. +- `URL Options (For SSL connectivity).` Enter the URL options to establish SSL connectivity to the publication database. See Using Secure Sockets Layer (SSL) Connections <using_ssl_connections> for information on using SSL connections. +- `Changeset Logging (For Postgres).` Select Table Triggers to use the trigger-based method of synchronization replication. Select WAL Stream to use the log-based method of synchronization replication. See [Synchronization Replication with the Trigger-Based Method](../../02_overview/02_replication_concepts_and_definitions/09_sync_replication_trigger_based/#sync_replication_trigger_based) for information on the trigger-based method. See [Synchronization Replication with the Log-Based Method](../../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#sync_replication_log_based) for information on the log-based method. ![Publication Service - Add Database dialog box](/../../images/image69.png) -
      - -
      - -Note - -
      - -If the controller database is an Oracle or a SQL Server publication database, then a second Oracle or SQL Server publication database cannot be added to create a second single-master replication system. In order for xDB Replication Server to run more than one single-master replication systems consisting of Oracle or SQL Server publication databases, a Postgres publication database must be designated as the controller database. See [Controller Database](../../02_overview/03_replication_server_components_and_architecture/#controller_database) for information on the controller database. - -
      +!!! Note + If the controller database is an Oracle or a SQL Server publication database, then a second Oracle or SQL Server publication database cannot be added to create a second single-master replication system. In order for xDB Replication Server to run more than one single-master replication systems consisting of Oracle or SQL Server publication databases, a Postgres publication database must be designated as the controller database. See [Controller Database](../../02_overview/03_replication_server_components_and_architecture/01_physical_components/#controller_database) for information on the controller database. The following is the Publication Service – Add Database dialog box for a Postgres database that shows the `Changeset Logging` option for selecting either the trigger-based method or the log-based method of synchronization replication. diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/02_creating_publication/03_adding_publication.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/02_creating_publication/03_adding_publication.mdx index fc89cd87661..66a67e5abd6 100644 --- a/product_docs/docs/eprs/6.2/05_smr_operation/02_creating_publication/03_adding_publication.mdx +++ b/product_docs/docs/eprs/6.2/05_smr_operation/02_creating_publication/03_adding_publication.mdx @@ -4,7 +4,6 @@ title: "Adding a Publication" - Subordinate to a publication database definition, you create publications that contain tables and views of the database identified in the publication database definition. **Step 1:** Select the Publication Database node. From the Publication menu, choose Create Publication. Alternatively, click the secondary mouse button on the Publication Database node and choose Create Publication. The Create Publication dialog box appears. @@ -15,7 +14,7 @@ Subordinate to a publication database definition, you create publications that c - `Snapshot-only replication.` Check the box if replication is to be done by snapshot only. Tables included in a snapshot-only publication do not require a primary key. Tables included in publications on which synchronization replication is to be used must have primary keys. - `Publish.` Check the boxes next to the tables that are to be included in the publication. If the Snapshot-Only Replication box is checked, then views appear in the Publish list as well. Alternatively or in addition, click the Use Wildcard Selection button to use wildcard pattern matching for selecting publication tables. - `Select All.` Check this box if you want to include all tables and views in the Available Tables list in the publication. -- `Use Wildcard Selection.` Click this button to use the wildcard selector to choose tables for the publication. See [Selecting Tables with the Wildcard Selector](../../07_common_operations/#select_tables_wildcard_selector) for information on the wildcard selector. +- `Use Wildcard Selection.` Click this button to use the wildcard selector to choose tables for the publication. See [Selecting Tables with the Wildcard Selector](../../07_common_operations/01_select_tables_wildcard_selector/#select_tables_wildcard_selector) for information on the wildcard selector. ![Create Publication dialog box](/../../images/image73.png) @@ -23,17 +22,8 @@ If you wish to use table filters during replications from this publication, foll **Step 3 (Optional):** Table filters consist of a set of filter rules that control the selection criteria for rows replicated to the subscription tables during a snapshot or a synchronization replication. -
      - -
      - -Note - -
      - -See [Table Settings and Restrictions for Table Filters](../../07_common_operations/#wildcard_selector_patterns) for table setup requirements for a log-based replication system as well as general restrictions on the use of table filters. - -
      +!!! Note + See [Table Settings and Restrictions for Table Filters](../../07_common_operations/01_select_tables_wildcard_selector/#wildcard_selector_patterns) for table setup requirements for a log-based replication system as well as general restrictions on the use of table filters. A filter rule consists of a filter name and a `SQL WHERE` clause (omitting the WHERE keyword) called the filter clause, which you specify for a table or view that defines the selection criteria for rows that are to be included during a replication. @@ -68,7 +58,7 @@ To remove a filter rule, click the primary mouse button on the filter rule you w You may also modify the filter name or filter clause of a filter rule listed in the Table Filters tab by double-clicking on the cell of the filter name or filter clause you wish to change. When the cursor appears in the cell, enter the text for the desired change. -When creating a subscription, you may selectively enable these table filters on the corresponding subscription tables. See [Adding a Subscription](../../05_smr_operation/03_creating_subscription/#adding_subscription) for information on creating a subscription. +When creating a subscription, you may selectively enable these table filters on the corresponding subscription tables. See [Adding a Subscription](../03_creating_subscription/03_adding_subscription/#adding_subscription) for information on creating a subscription. **Step 4:** Click the `Create` button. If Publication Created Successfully appears, click the `OK` button, otherwise investigate the error and make the necessary corrections. diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/02_creating_publication/04_control_schema_objects_created_for_publication.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/02_creating_publication/04_control_schema_objects_created_for_publication.mdx index 2d43d1d9e53..08a7afe100d 100644 --- a/product_docs/docs/eprs/6.2/05_smr_operation/02_creating_publication/04_control_schema_objects_created_for_publication.mdx +++ b/product_docs/docs/eprs/6.2/05_smr_operation/02_creating_publication/04_control_schema_objects_created_for_publication.mdx @@ -4,7 +4,6 @@ title: "Control Schema Objects Created for a Publication" - After you have added a publication database definition and publications you will find the following control schema objects have been created in addition to your original publication tables and views: - In the publication database, control schema objects are created to control and manage the xDB replication systems. How the control schema objects are organized under the actual, physical database schemas depends upon the publication database server type (that is, whether it is Oracle, SQL Server, or Postgres). @@ -23,7 +22,7 @@ When you remove publications and publication database definitions using the xDB The control schema objects created in the publication database user’s schema (that is, the control schema) are shown in the following output: -``` text +```text SQL> CONNECT pubuser/password Connected. SQL> SET PAGESIZE 9999 @@ -160,12 +159,12 @@ RREP_SYNCID_ARRAY COLLECTION Note the following in the preceding output. -- The tables named according to the convention `RRST_schema_table` from the SELECT statement on user\_tables are found only for synchronization publications. In this example, these tables are `RRST_EDB_DEPT` and `RRST_EDB_EMP`. -- The triggers named according to the convention RRPD\_schema\_table, `RRPI_schema_table`, and `RRPU_schema_table` from the SELECT statement on `user_triggers` are found only for synchronization publications. In this example, these triggers are `RRPU_EDB_DEPT`, `RRPI_EDB_DEPT`, `RRPD_EDB_DEPT`, `RRPI_EDB_EMP`, `RRPU_EDB_EMP`, and `RRPD_EDB_EMP`. +- The tables named according to the convention `RRST_schema_table` from the SELECT statement on user_tables are found only for synchronization publications. In this example, these tables are `RRST_EDB_DEPT` and `RRST_EDB_EMP`. +- The triggers named according to the convention RRPD_schema_table, `RRPI_schema_table`, and `RRPU_schema_table` from the SELECT statement on `user_triggers` are found only for synchronization publications. In this example, these triggers are `RRPU_EDB_DEPT`, `RRPI_EDB_DEPT`, `RRPD_EDB_DEPT`, `RRPI_EDB_EMP`, `RRPU_EDB_EMP`, and `RRPD_EDB_EMP`. The following example shows what the same set of queries would look like if the publication was a snapshot-only publication: -``` text +```text SQL> CONNECT pubuser/password Connected. SQL> SET PAGESIZE 9999 @@ -292,27 +291,18 @@ TYPE_NAME TYPECODE RREP_SYNCID_ARRAY COLLECTION ``` -
      - -
      - -Note - -
      - -The RREP\_SYNCID\_ARRAY collection type is found only in an Oracle publication database. - -
      +!!! Note + The RREP_SYNCID_ARRAY collection type is found only in an Oracle publication database. ## SQL Server Control Schema Objects -Most of the control schema objects are created in `schemas _edb_replicator_pub`, `_edb_replicator_sub`, and `_edb_scheduler`. Additional control schema objects are created in the schema you chose in Step 5 of [SQL Server Publication Database](../../05_smr_operation/01_prerequisites/#sql_server_pub_db). The following examples assume the schema of your choosing is `pubuser`. The publication tables are dept and emp located in the edb schema. +Most of the control schema objects are created in `schemas _edb_replicator_pub`, `_edb_replicator_sub`, and `_edb_scheduler`. Additional control schema objects are created in the schema you chose in Step 5 of [SQL Server Publication Database](../01_prerequisites/04_preparing_pub_database/#sql_server_pub_db). The following examples assume the schema of your choosing is `pubuser`. The publication tables are dept and emp located in the edb schema. The following query lists the control schema objects located in the aforementioned schemas: -``` text +```text 1> USE edb; 2> GO Changed database context to 'edb'. @@ -411,7 +401,7 @@ pubuser.rrst_edb_emp USER_TABLE **Note (For SQL Server 2012, 2014):** The following database objects from the preceding list are no longer created as part of the control schema when the publication database is SQL Server 2012 or 2014: -``` text +```text Object Name Object Type -------------------------------------------------- --------------------- _edb_replicator_pub.nextval SQL_STORED_PROCEDURE @@ -425,7 +415,7 @@ _edb_replicator_sub.rrep_common_seq USER_TABLE SQL Server versions 2012 and 2014 support creation of sequence objects that can now perform the functionality previously provided by the preceding list of objects. The following are the sequence objects that are now used when the publication database is SQL Server 2012 or 2014: -``` text +```text 1> USE edb; 2> GO Changed database context to 'edb'. @@ -449,7 +439,7 @@ _edb_replicator_pub.rrep_txset_seq SEQUENCE_OBJECT The following is a continuation of the list of control schema objects for all SQL Server versions: -``` text +```text 1> USE edb; 2> GO Changed database context to 'edb'. @@ -503,7 +493,7 @@ _edb_scheduler.sch_sub_triggers_trigger SQL_TRIGGER For non-snapshot only publication tables, triggers are created that reside in the schema containing the publication tables as shown by the following: -``` text +```text 1> USE edb; 2> GO Changed database context to 'edb'. @@ -530,7 +520,7 @@ edb.rrpu_edb_emp Finally, some jobs are created in the msdb database after the subscription is created as shown by the following: -``` text +```text 1> USE msdb; 2> GO Changed database context to 'msdb'. @@ -556,9 +546,9 @@ rrep_txset_job_edb The control schema objects are created in three schemas named `_edb_replicator_pub`, `_edb_replicator_sub`, and `_edb_scheduler`. -The control schema objects contained in \_edb\_replicator\_pub are shown by the following: +The control schema objects contained in \_edb_replicator_pub are shown by the following: -``` text +```text edb=# SET search_path TO _edb_replicator_pub; SET edb=# \dt @@ -642,9 +632,9 @@ edb-# ORDER BY typname, funname; (18 rows) ``` -The control schema objects contained in \_edb\_replicator\_sub are shown by the following: +The control schema objects contained in \_edb_replicator_sub are shown by the following: -``` text +```text edb=# SET search_path TO _edb_replicator_sub; SET edb=# \dt @@ -681,7 +671,7 @@ edb-# ORDER BY typname, funname; The control schema objects contained in `_edb_scheduler` are shown by the following: -``` text +```text edb=# SET search_path TO _edb_scheduler; SET edb=# \dt @@ -743,7 +733,7 @@ edb-# ORDER BY typname, funname; In addition, triggers and trigger functions are created in the schema containing the publication tables if the trigger-based method of synchronization replication is used. -``` text +```text edb=# SET search_path TO edb; SET edb=# \df rr* @@ -761,7 +751,7 @@ edb=# \df rr* If the log-based method of synchronization replication is used, the following triggers are created on the publication tables: -``` text +```text edb=# SELECT t.tgname AS "Trigger Name", c.relname AS "Table Name", edb-# f.funname AS "Trigger Function" edb-# FROM pg_trigger t, pg_function f, pg_class c diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/02_creating_publication/index.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/02_creating_publication/index.mdx index b476051c0cf..088a84843d7 100644 --- a/product_docs/docs/eprs/6.2/05_smr_operation/02_creating_publication/index.mdx +++ b/product_docs/docs/eprs/6.2/05_smr_operation/02_creating_publication/index.mdx @@ -4,17 +4,16 @@ title: "Creating a Publication" - Creating your first publication requires the following steps: - Registering the publication server - Adding the publication database - Creating a publication by choosing the tables and views for the publication along with creating any optional filter clauses -Once the publication database has been added, as many publications can be created as there are available tables and views that are readable by the publication database user and that meet the criteria outlined in [Design Considerations](../02_overview/04_design_replication_system/#design_considerations) and [Restrictions on Replicated Database Objects](../02_overview/04_design_replication_system/#restrictions_on_replicated_database_objects). +Once the publication database has been added, as many publications can be created as there are available tables and views that are readable by the publication database user and that meet the criteria outlined in [Design Considerations](../../02_overview/04_design_replication_system/02_design_considerations/#design_considerations) and [Restrictions on Replicated Database Objects](../../02_overview/04_design_replication_system/03_restrictions_on_replicated_database_objects/#restrictions_on_replicated_database_objects).
      -registering\_publication\_server adding\_pub\_database adding\_publication control\_schema\_objects\_created\_for\_publication +registering_publication_server adding_pub_database adding_publication control_schema_objects_created_for_publication
      diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/03_creating_subscription/01_registering_subscription_server.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/03_creating_subscription/01_registering_subscription_server.mdx index 680f0dfc1ed..708d03d63ba 100644 --- a/product_docs/docs/eprs/6.2/05_smr_operation/03_creating_subscription/01_registering_subscription_server.mdx +++ b/product_docs/docs/eprs/6.2/05_smr_operation/03_creating_subscription/01_registering_subscription_server.mdx @@ -4,32 +4,22 @@ title: "Registering a Subscription Server" - When you register a subscription server, you are identifying the network location, admin user name, and password of a specific, running, subscription server instance that you want to use to manage all aspects of the subscriptions you will be creating subordinate to it. It is important that you record the login information for the subscription server as you must always use this same subscription server instance to manage all subscriptions created subordinate to it as represented in the xDB Replication Console replication tree. -**Step 1:** Start the subscription server if it is not already running. Repeat the same process as in Step 1 of [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server). - -
      - -
      - -Note - -
      - -If you are using Oracle publication or subscription databases, and the subscription server has not been restarted since copying the Oracle JDBC driver to the `lib/jdbc` subdirectory of your xDB Replication Server installation, you must restart the subscription server. +**Step 1:** Start the subscription server if it is not already running. Repeat the same process as in Step 1 of [Registering a Publication Server](../02_creating_publication/01_registering_publication_server/#registering_publication_server). -
      +!!! Note + If you are using Oracle publication or subscription databases, and the subscription server has not been restarted since copying the Oracle JDBC driver to the `lib/jdbc` subdirectory of your xDB Replication Server installation, you must restart the subscription server. -**For Linux only:** Use the `systemctl` command for CentOS 7 or RHEL 7 and CentOS 8 or RHEL 8, and the service command for previous Linux versions to start, stop, or restart `edb-xdbsubserver` for the subscription server. See [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server) for information on how these commands are used. +**For Linux only:** Use the `systemctl` command for CentOS 7 or RHEL 7 and CentOS 8 or RHEL 8, and the service command for previous Linux versions to start, stop, or restart `edb-xdbsubserver` for the subscription server. See [Registering a Publication Server](../02_creating_publication/01_registering_publication_server/#registering_publication_server) for information on how these commands are used. **For Windows only:** Open Control Panel, System and Security, Administrative Tools, and then Services. Use the Start or Restart link for the service named Subscription Service for xDB Replication Server. ![Windows subscription service](/../../images/image79.png) -If the subscription server fails to start, see [Publication and Subscription Server Startup Failures](../../10_appendix/03_resolving_problems/#pub_and_sub_startup_failures) for information. +If the subscription server fails to start, see [Publication and Subscription Server Startup Failures](../../10_appendix/03_resolving_problems/02_where_to_look_for_errors/#pub_and_sub_startup_failures) for information. **Step 2:** Register the subscription server. Open the xDB Replication Console from the system’s application menu. For xDB Replication Server installed from an xDB RPM package, the xDB Replication Console is started by invoking the script `XDB_HOME/bin/runRepConsole.sh`. @@ -37,23 +27,14 @@ If the subscription server fails to start, see [Publication and Subscription Ser Enter the values you supplied during the installation of xDB Replication Server unless otherwise specified. -- `Host.` Network IP address of the host running the subscription server. This is the network IP address used for `sub_ipaddr` in the `pg_hba.conf` file in [Postgres Server Authentication](../../05_smr_operation/01_prerequisites/#postgres_server_auth). (Do not use `localhost` for this field.) -- `Port.` Port number the subscription server is using. This is the port number you specified on the Subscription Server Details screen in Step 17 of [Installing With Stack Builder or StackBuilder Plus](../../03_installation/#installing_with_stackbuilder). -- `User Name.` Admin user name that is used to authenticate your usage of this subscription server. This is the user name you specified on the xDB Admin User Details screen in Step 15 of [Installing With Stack Builder or StackBuilder Plus](../../03_installation/#installing_with_stackbuilder). +- `Host.` Network IP address of the host running the subscription server. This is the network IP address used for `sub_ipaddr` in the `pg_hba.conf` file in [Postgres Server Authentication](../01_prerequisites/06_verifying_host_accessibility/#postgres_server_auth). (Do not use `localhost` for this field.) +- `Port.` Port number the subscription server is using. This is the port number you specified on the Subscription Server Details screen in Step 17 of [Installing With Stack Builder or StackBuilder Plus](../../03_installation/01_installing_with_stackbuilder/#installing_with_stackbuilder). +- `User Name.` Admin user name that is used to authenticate your usage of this subscription server. This is the user name you specified on the xDB Admin User Details screen in Step 15 of [Installing With Stack Builder or StackBuilder Plus](../../03_installation/01_installing_with_stackbuilder/#installing_with_stackbuilder). - `Password.` Password of the admin user given in the User Name field. -- `Save login information.` Check this box if you do not want to re-register the subscription server each time you open the xDB Replication Console. See [Saving Server Login Information](../../#saving_server_login_info) for additional information on the advantages and disadvantages of saving server login information. - -
      - -
      - -Note - -
      - -The user name and password combination you enter is authenticated against the admin user name and password in the xDB Replication Configuration file residing on the host with the IP address you enter in the Host field. +- `Save login information.` Check this box if you do not want to re-register the subscription server each time you open the xDB Replication Console. See [Saving Server Login Information](../../04_intro_xdb_console/#saving_server_login_info) for additional information on the advantages and disadvantages of saving server login information. -
      +!!! Note + The user name and password combination you enter is authenticated against the admin user name and password in the xDB Replication Configuration file residing on the host with the IP address you enter in the Host field. ![Register Subscription Server dialog box](/../../images/image64.png) diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/03_creating_subscription/02_adding_subscription_database.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/03_creating_subscription/02_adding_subscription_database.mdx index b50ac0e141b..824b6c42ba5 100644 --- a/product_docs/docs/eprs/6.2/05_smr_operation/03_creating_subscription/02_adding_subscription_database.mdx +++ b/product_docs/docs/eprs/6.2/05_smr_operation/03_creating_subscription/02_adding_subscription_database.mdx @@ -4,7 +4,6 @@ title: "Adding a Subscription Database" - The database in which subscriptions are to reside must be identified to xDB Replication Server. This is done by creating a subscription database definition. After the subscription database definition is created, a Subscription Database node representing that subscription database definition appears in the replication tree of the xDB Replication Console. Subscriptions created subordinate to this subscription database definition will have their publications replicated to the database identified by the subscription database definition. @@ -16,43 +15,16 @@ Note the following restriction on the subscription database: - **For Oracle only.** There must be no existing tables or views owned by the Oracle subscription database user that has the same name as a table or view in a publication that will be replicated to this database. For example, if the Oracle subscription database user name is `subuser`, and if a Postgres publication contains a table with the name dept, then the Oracle subscription database must not have an existing table or view with the schema-qualified name `subuser.dept` at the time you create the subscription. - **For Postgres only.** There must be no existing tables or views with the same schema-qualified name as a table or view in a publication that will be replicated to this database. For example, if the publication contains a table with the schema-qualified name `edb.dept`, then the Postgres subscription database must not have an existing table or view with the schema-qualified name edb.dept at the time you create the subscription. -
      - -
      - -Note - -
      - -If the SQL Server publication schema name is dbo, the subscription tables are created under a schema named `dbo_sql` in Postgres. - -
      +!!! Note + If the SQL Server publication schema name is dbo, the subscription tables are created under a schema named `dbo_sql` in Postgres. - **For SQL Server only.** There must be no existing tables or views with the same schema-qualified name as a table or view in a publication that will be replicated to this database. For example, if the publication contains a table with the schema-qualified name `edb.dept`, then the SQL Server subscription database must not have an existing table or view with the schema-qualified name edb.dept at the time you create the subscription. -
      - -
      - -Note - -
      - -If the Postgres publication schema name is public, the subscription tables are created under a schema named `public_sql` in SQL Server. - -
      - -
      - -
      - -Note - -
      - -A database that has been added as a publication database can also be used as a subscription database. +!!! Note + If the Postgres publication schema name is public, the subscription tables are created under a schema named `public_sql` in SQL Server. -
      +!!! Note + A database that has been added as a publication database can also be used as a subscription database. **Step 1:** Make sure the database server in which the subscription database resides is running and accepting client connections. @@ -63,11 +35,11 @@ A database that has been added as a publication database can also be used as a s - Database Type. Select Oracle, SQL Server, PostgreSQL, or Postgres Plus Advanced Server for the type of subscription database. For an Advanced Server Oracle compatible installation, select the Postgres Plus Advanced Server option. For PostgreSQL or an Advanced Server PostgreSQL compatible installation, select the PostgreSQL option. - `Host`. IP address of the host on which the subscription database server is running. - `Port`. Port on which the subscription database server is listening for connections. -- `User`. The subscription database user name chosen in [Postgres Subscription Database](../../05_smr_operation/01_prerequisites/#postgres_sub_database) for a Postgres subscription database or the database user name created in Step 2 of [Oracle Subscription Database](../../05_smr_operation/01_prerequisites/#oracle_sub_database) for an Oracle subscription database or the database user name created in Step 2 of [SQL Server Subscription Database](../../05_smr_operation/01_prerequisites/#sql_sub_database) for a SQL Server subscription database. +- `User`. The subscription database user name chosen in [Postgres Subscription Database](../01_prerequisites/05_preparing_sub_database/#postgres_sub_database) for a Postgres subscription database or the database user name created in Step 2 of [Oracle Subscription Database](../01_prerequisites/05_preparing_sub_database/#oracle_sub_database) for an Oracle subscription database or the database user name created in Step 2 of [SQL Server Subscription Database](../01_prerequisites/05_preparing_sub_database/#sql_sub_database) for a SQL Server subscription database. - `Password`. Password of the database user. - `Service ID (For Oracle)`. Enter the Oracle System Identifier (SID) of the Oracle instance running the subscription database if the SID radio button is selected. Enter the net service name of a connect descriptor as defined in the `TNSNAMES.ORA` file if the Service Name radio button is selected. Note (For Oracle 12c Pluggable Database): Use the service name. - `Database (For Postgres or SQL Server)`. Enter the Postgres or SQL Server database name. -- `URL Options (For SSL connectivity)`. Enter the URL options to establish SSL connectivity to the subscription database. See Using Secure Sockets Layer (SSL) Connections <using\_ssl\_connections> for information on using SSL connections. +- `URL Options (For SSL connectivity)`. Enter the URL options to establish SSL connectivity to the subscription database. See Using Secure Sockets Layer (SSL) Connections <using_ssl_connections> for information on using SSL connections. ![Subscription Service - Add Database dialog box](/../../images/image81.png) diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/03_creating_subscription/03_adding_subscription.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/03_creating_subscription/03_adding_subscription.mdx index 8120816b1b3..4c905196daa 100644 --- a/product_docs/docs/eprs/6.2/05_smr_operation/03_creating_subscription/03_adding_subscription.mdx +++ b/product_docs/docs/eprs/6.2/05_smr_operation/03_creating_subscription/03_adding_subscription.mdx @@ -4,7 +4,6 @@ title: "Adding a Subscription" - Subordinate to a subscription database definition, you create subscriptions. A subscription assigns the publication that is to be replicated to the database identified by the subscription database definition. **Step 1:** Select the Subscription Database node. From the Subscription menu, choose Create Subscription. Alternatively, click the secondary mouse button on the Subscription Database node and choose Create Subscription. The Create Subscription dialog box appears. @@ -12,19 +11,19 @@ Subordinate to a subscription database definition, you create subscriptions. A s **Step 2:** Fill in the following fields: - `Subscription Name`. Enter a name for the subscription that is unique amongst all subscription names. -- `Host`. Network IP address of the publication server that is the parent node of the publication to be subscribed to. This is the same value entered in the Host field in Step 3 of [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server). -- `Port`. Port used by the publication server. This is the same value entered in the Port field in Step 3 of [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server). -- `User Name`. Admin user name of the publication server. This is the same value entered in the User Name field in Step 3 of [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server). -- `Password`. Password of the admin user. This is the same value entered in the Password field in Step 3 of [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server). +- `Host`. Network IP address of the publication server that is the parent node of the publication to be subscribed to. This is the same value entered in the Host field in Step 3 of [Registering a Publication Server](../02_creating_publication/01_registering_publication_server/#registering_publication_server). +- `Port`. Port used by the publication server. This is the same value entered in the Port field in Step 3 of [Registering a Publication Server](../02_creating_publication/01_registering_publication_server/#registering_publication_server). +- `User Name`. Admin user name of the publication server. This is the same value entered in the User Name field in Step 3 of [Registering a Publication Server](../02_creating_publication/01_registering_publication_server/#registering_publication_server). +- `Password`. Password of the admin user. This is the same value entered in the Password field in Step 3 of [Registering a Publication Server](../02_creating_publication/01_registering_publication_server/#registering_publication_server). - `Publication Name`. Click the `Load` button to get a list of available publications. Select the publication to which to subscribe. ![Create Subscription dialog box](/../../images/image84.png) -**Step 3 (Optional):** If you defined a set of available table filters for the publication, you have the option of enabling these filters on this subscription. See [Adding a Publication](../../05_smr_operation/02_creating_publication/#adding_publication) for instructions on defining table filters. If you do not wish to filter the rows that are replicated to this subscription, go to Step 4. +**Step 3 (Optional):** If you defined a set of available table filters for the publication, you have the option of enabling these filters on this subscription. See [Adding a Publication](../02_creating_publication/03_adding_publication/#adding_publication) for instructions on defining table filters. If you do not wish to filter the rows that are replicated to this subscription, go to Step 4. Click the Filter Rules tab to enable one or more filter rules on the subscription. At most one filter rule may be enabled on any given subscription table. -In the following example the filter named `dept_10_20_30` is enabled on the dept table and the filter named dept\_30 is enabled on the `emp` table of this subscription. +In the following example the filter named `dept_10_20_30` is enabled on the dept table and the filter named dept_30 is enabled on the `emp` table of this subscription. ![Enabling filter rules on a subscription](/../../images/image85.png) diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/03_creating_subscription/04_subscription_metadata_object.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/03_creating_subscription/04_subscription_metadata_object.mdx index a9a294f399e..46f73e6cdbb 100644 --- a/product_docs/docs/eprs/6.2/05_smr_operation/03_creating_subscription/04_subscription_metadata_object.mdx +++ b/product_docs/docs/eprs/6.2/05_smr_operation/03_creating_subscription/04_subscription_metadata_object.mdx @@ -4,12 +4,11 @@ title: "Subscription Metadata Object" - -After you have added a subscription database definition you will find a single table named rrep\_txset\_health has been created as the subscription metadata object. +After you have added a subscription database definition you will find a single table named rrep_txset_health has been created as the subscription metadata object. **For Oracle only:** The `RREP_TXSET_HEALTH` table is created in the subscription database user’s schema as shown in the following output: -``` text +```text SQL> CONNECT subuser/password Connected. SQL> SET PAGESIZE 9999 @@ -22,7 +21,7 @@ RREP_TXSET_HEALTH **For SQL Server only:** The `rrep_txset_health` table is created in the schema named `_edb_replicator_sub`. -``` text +```text 1> USE subdb; 2> GO Changed database context to 'subdb'. @@ -42,7 +41,7 @@ _edb_replicator_sub.rrep_txset_health USER_TABLE **For Postgres only:** The `rrep_txset_health` table is created in the schema named `_edb_replicator_sub`. -``` text +```text subdb=# SET search_path TO _edb_replicator_sub; SET subdb=# \dt diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/03_creating_subscription/index.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/03_creating_subscription/index.mdx index f74f44672c7..24764646124 100644 --- a/product_docs/docs/eprs/6.2/05_smr_operation/03_creating_subscription/index.mdx +++ b/product_docs/docs/eprs/6.2/05_smr_operation/03_creating_subscription/index.mdx @@ -4,7 +4,6 @@ title: "Creating a Subscription" - Creating your first subscription requires the following steps: - Registering the subscription server @@ -15,6 +14,6 @@ Multiple subscriptions can be created in a subscription database. More than one
      -registering\_subscription\_server adding\_subscription\_database adding\_subscription subscription\_metadata\_object +registering_subscription_server adding_subscription_database adding_subscription subscription_metadata_object
      diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/04_on_demand_replication/01_perform_replication.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/04_on_demand_replication/01_perform_replication.mdx index d8f0f3dfb03..a41cee003bd 100644 --- a/product_docs/docs/eprs/6.2/05_smr_operation/04_on_demand_replication/01_perform_replication.mdx +++ b/product_docs/docs/eprs/6.2/05_smr_operation/04_on_demand_replication/01_perform_replication.mdx @@ -4,7 +4,6 @@ title: "Performing Snapshot Replication" - The very first replication must be performed using snapshot replication. After the first snapshot replication, subsequent replications can be done using either the synchronization method (if the publication was not initially defined as a snapshot-only publication) or the snapshot method. **Step 1:** Select the Subscription node of the subscription for which you wish to perform snapshot replication. @@ -39,4 +38,4 @@ The status messages of each snapshot are saved in the Migration Toolkit log file ![Successful on demand snapshot](/../../images/image92.png) -The publication has now been replicated to the subscription database. A record of the snapshot is maintained in the replication history. See [Viewing Replication History](../../07_common_operations/#view_replication_history) for information on how to view replication history. +The publication has now been replicated to the subscription database. A record of the snapshot is maintained in the replication history. See [Viewing Replication History](../../07_common_operations/04_view_replication_history/#view_replication_history) for information on how to view replication history. diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/04_on_demand_replication/02_perform_sync_replication.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/04_on_demand_replication/02_perform_sync_replication.mdx index 908b46bf3db..96b9657e6cf 100644 --- a/product_docs/docs/eprs/6.2/05_smr_operation/04_on_demand_replication/02_perform_sync_replication.mdx +++ b/product_docs/docs/eprs/6.2/05_smr_operation/04_on_demand_replication/02_perform_sync_replication.mdx @@ -4,7 +4,6 @@ title: "Performing Synchronization Replication" - After the first snapshot replication, subsequent replications can be performed using synchronization replication if the publication was not created as a snapshot-only publication. **Step 1:** When the trigger-based method of synchronization replication is in use, select the Subscription node of the subscription for which you wish to perform synchronization replication. @@ -29,4 +28,4 @@ When the log-based method of synchronization replication is in use, select the S ![Successful on demand synchronization](/../../images/image94.png) -The operations that were applied to the subscription tables can be seen in the replication history. See [Viewing Replication History](../../07_common_operations/#view_replication_history) for information on how to view replication history. +The operations that were applied to the subscription tables can be seen in the replication history. See [Viewing Replication History](../../07_common_operations/04_view_replication_history/#view_replication_history) for information on how to view replication history. diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/04_on_demand_replication/index.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/04_on_demand_replication/index.mdx index c93b45bfcd0..20472cda08f 100644 --- a/product_docs/docs/eprs/6.2/05_smr_operation/04_on_demand_replication/index.mdx +++ b/product_docs/docs/eprs/6.2/05_smr_operation/04_on_demand_replication/index.mdx @@ -4,16 +4,15 @@ title: "On Demand Replication" - After a publication and subscription are created, there are a couple of choices for starting the replication process. - Replication can be done immediately by taking an on demand snapshot. - Replication can be scheduled to start at a later date and time by creating a schedule. -This section discusses the procedure for initiating a replication on demand. Section [Creating a Schedule](../07_common_operations/#creating_schedule) discusses how to create a schedule. +This section discusses the procedure for initiating a replication on demand. Section [Creating a Schedule](../../07_common_operations/02_creating_schedule/#creating_schedule) discusses how to create a schedule.
      -perform\_replication perform\_sync\_replication +perform_replication perform_sync_replication
      diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/01_updating_subscription_server.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/01_updating_subscription_server.mdx index 9a55a192afa..51b2dc026f2 100644 --- a/product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/01_updating_subscription_server.mdx +++ b/product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/01_updating_subscription_server.mdx @@ -4,8 +4,7 @@ title: "Updating a Subscription Server" - -When you register a subscription server in the xDB Replication Console, you may choose to save the subscription server’s network location (IP address and port number), admin user name, and encrypted password in a server login file on the computer on which you are running the xDB Replication Console. See [Saving Server Login Information](../../#saving_server_login_info) for information on saving the login information. +When you register a subscription server in the xDB Replication Console, you may choose to save the subscription server’s network location (IP address and port number), admin user name, and encrypted password in a server login file on the computer on which you are running the xDB Replication Console. See [Saving Server Login Information](../../04_intro_xdb_console/#saving_server_login_info) for information on saving the login information. The steps described in this section show you how to update the subscription server’s login information in the server login file. @@ -22,7 +21,7 @@ You can perform the following actions on the server login file: The following steps change only the content of the server login file residing on the host under the current xDB Replication Console user’s home directory. These changes do not alter any characteristic of the actual subscription server daemon (on Linux) or service (on Windows). These changes affect only how a subscription server is viewed through the xDB Replication Console on this host by this user. **Step 1:** -The subscription server whose login information you want to save, change, or delete in the server login file must be running before you can make any changes to the file. See Step 1 of [Registering a Subscription Server](../../05_smr_operation/03_creating_subscription/#registering_subscription_server) for directions on starting the subscription server. +The subscription server whose login information you want to save, change, or delete in the server login file must be running before you can make any changes to the file. See Step 1 of [Registering a Subscription Server](../03_creating_subscription/01_registering_subscription_server/#registering_subscription_server) for directions on starting the subscription server. **Step 2:** Click the secondary mouse button on the Subscription Server node and choose Update. The Update Subscription Server dialog box appears. diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/02_updating_subscription_database.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/02_updating_subscription_database.mdx index 0734468351a..71057c7b5c2 100644 --- a/product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/02_updating_subscription_database.mdx +++ b/product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/02_updating_subscription_database.mdx @@ -4,22 +4,12 @@ title: "Updating a Subscription Database" - -When you create a subscription database definition, you save the subscription database server’s network location (IP address and port number), the database identifier, a database login user name, and the user’s password in the control schema accessed by the subscription server. This login information is used whenever a session needs to be established with the subscription database. See [Adding a Subscription Database](../../05_smr_operation/03_creating_subscription/#adding_subscription_database) for information on creating a subscription database definition. +When you create a subscription database definition, you save the subscription database server’s network location (IP address and port number), the database identifier, a database login user name, and the user’s password in the control schema accessed by the subscription server. This login information is used whenever a session needs to be established with the subscription database. See [Adding a Subscription Database](../03_creating_subscription/02_adding_subscription_database/#adding_subscription_database) for information on creating a subscription database definition. The steps described in this section show you how to update the subscription database login information stored in the control schema should any of these attributes of the actual, physical database change. -
      - -
      - -Note - -
      - -Depending upon the database type (Oracle, SQL Server, or Postgres), certain attributes must not be changed. If you have already added subscriptions, you must not change any attribute that alters access to the schema where the subscription tables were created. - -
      +!!! Note + Depending upon the database type (Oracle, SQL Server, or Postgres), certain attributes must not be changed. If you have already added subscriptions, you must not change any attribute that alters access to the schema where the subscription tables were created. Attributes you must not change if there are existing subscriptions include the following: @@ -36,7 +26,7 @@ Attributes you may change include the following: **Step 1:** Make sure the database server that you ultimately wish to save as the subscription database definition is running and accepting client connections. -**Step 2:** Make sure the subscription server whose node is the parent of the subscription database definition you wish to change is running and has been registered in the xDB Replication Console you are using. See [Registering a Subscription Server](../../05_smr_operation/03_creating_subscription/#registering_subscription_server) for directions on starting and registering a subscription server. +**Step 2:** Make sure the subscription server whose node is the parent of the subscription database definition you wish to change is running and has been registered in the xDB Replication Console you are using. See [Registering a Subscription Server](../03_creating_subscription/01_registering_subscription_server/#registering_subscription_server) for directions on starting and registering a subscription server. **Step 3:** Select the Subscription Database node corresponding to the subscription database definition that you wish to update. @@ -44,7 +34,7 @@ Attributes you may change include the following: **Step 4:** From the Subscription menu, choose Subscription Database, and then choose Update Database. Alternatively, click the secondary mouse button on the Subscription Database node and choose Update Database. The Update Database Source dialog box appears. -**Step 5:** Enter the desired changes. See Step 3 of Section [Adding a Subscription Database](../../05_smr_operation/03_creating_subscription/#adding_subscription_database) for the precise meanings of the fields. +**Step 5:** Enter the desired changes. See Step 3 of Section [Adding a Subscription Database](../03_creating_subscription/02_adding_subscription_database/#adding_subscription_database) for the precise meanings of the fields. ![Update Database Source dialog box](/../../images/image99.png) diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/03_updating_subscription.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/03_updating_subscription.mdx index fb574e53aee..9ff3e0abd71 100644 --- a/product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/03_updating_subscription.mdx +++ b/product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/03_updating_subscription.mdx @@ -4,7 +4,6 @@ title: "Updating a Subscription" - When a subscription is created, certain attributes of the subscribed publication are stored as part of the metadata for the subscription in the control schema. These include the following: - The network IP address of the host running the publication server that is the parent of the subscribed publication @@ -14,7 +13,7 @@ If the preceding attributes of the publication server change in the replication The following directions show how to update the publication server network IP address and port number within the subscription server’s metadata. -**Step 1:** Make sure the subscription server whose node is the parent of the subscription you wish to change is running and has been registered in the xDB Replication Console you are using. See [Registering a Subscription Server](../../05_smr_operation/03_creating_subscription/#registering_subscription_server) for directions on starting and registering a subscription server. +**Step 1:** Make sure the subscription server whose node is the parent of the subscription you wish to change is running and has been registered in the xDB Replication Console you are using. See [Registering a Subscription Server](../03_creating_subscription/01_registering_subscription_server/#registering_subscription_server) for directions on starting and registering a subscription server. **Step 2:** Select the Subscription node whose attributes you wish to update. diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/04_enable_filters_on_subscription.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/04_enable_filters_on_subscription.mdx index c24000059cd..ea1479dd669 100644 --- a/product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/04_enable_filters_on_subscription.mdx +++ b/product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/04_enable_filters_on_subscription.mdx @@ -4,12 +4,11 @@ title: "Enabling/Disabling Table Filters on a Subscription" - -Table filters must first be defined in a set of available table filters in the publication before they can be enabled on a subscription. See [Adding a Publication](../../05_smr_operation/02_creating_publication/#adding_publication) for information on defining table filters in a single-master replication system. +Table filters must first be defined in a set of available table filters in the publication before they can be enabled on a subscription. See [Adding a Publication](../02_creating_publication/03_adding_publication/#adding_publication) for information on defining table filters in a single-master replication system. The following are the steps for enabling or disabling table filters on an existing subscription. -**Step 1:** Make sure the publication server whose node is the parent of the publication associated with the subscription you wish to change is running and has been registered in the xDB Replication Console you are using. See [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server) for directions on starting and registering a publication server. Make sure the subscription server whose node is the parent of the subscription you wish to change is running and has been registered in the xDB Replication Console you are using. See [Registering a Subscription Server](../../05_smr_operation/03_creating_subscription/#registering_subscription_server) for directions on starting and registering a subscription server. +**Step 1:** Make sure the publication server whose node is the parent of the publication associated with the subscription you wish to change is running and has been registered in the xDB Replication Console you are using. See [Registering a Publication Server](../02_creating_publication/01_registering_publication_server/#registering_publication_server) for directions on starting and registering a publication server. Make sure the subscription server whose node is the parent of the subscription you wish to change is running and has been registered in the xDB Replication Console you are using. See [Registering a Subscription Server](../03_creating_subscription/01_registering_subscription_server/#registering_subscription_server) for directions on starting and registering a subscription server. **Step 2:** Select the Subscription node of the subscription on which you wish to enable or disable individual filter rules. @@ -40,4 +39,4 @@ If you clicked the **Cancel** button in the preceding step, the **Filter Rules** **Step 7:** It is strongly recommended that a snapshot replication be performed to the subscription that contains tables on which the filtering criteria has changed. -A snapshot ensures that the content of the subscription tables is consistent with the updated filtering criteria. See [Performing Snapshot Replication](../../05_smr_operation/04_on_demand_replication/#perform_replication) for information on performing a snapshot replication. +A snapshot ensures that the content of the subscription tables is consistent with the updated filtering criteria. See [Performing Snapshot Replication](../04_on_demand_replication/01_perform_replication/#perform_replication) for information on performing a snapshot replication. diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/05_removing_subscription.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/05_removing_subscription.mdx index a923c0969f1..da8aa72ac0d 100644 --- a/product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/05_removing_subscription.mdx +++ b/product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/05_removing_subscription.mdx @@ -4,12 +4,11 @@ title: "Removing a Subscription" - After a subscription is removed, replication can no longer occur for the publication that was associated with it until the publication is subscribed to with a new subscription. Removing a subscription does not delete the subscription tables in the subscription database. It removes the identity and association of these tables to xDB Replication Server so the tables remain in the database until the DBA deletes them with `DROP TABLE SQL` statements. -**Step 1:** Make sure the subscription server whose node is the parent of the subscription you wish to remove is running and has been registered in the xDB Replication Console you are using. See [Registering a Subscription Server](../../05_smr_operation/03_creating_subscription/#registering_subscription_server) for directions on starting and registering a subscription server. +**Step 1:** Make sure the subscription server whose node is the parent of the subscription you wish to remove is running and has been registered in the xDB Replication Console you are using. See [Registering a Subscription Server](../03_creating_subscription/01_registering_subscription_server/#registering_subscription_server) for directions on starting and registering a subscription server. **Step 2:** Select the Subscription node of the subscription that you wish to remove. diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/06_removing_subscription_database.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/06_removing_subscription_database.mdx index 4c2f6d01a17..23f9a14c5ca 100644 --- a/product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/06_removing_subscription_database.mdx +++ b/product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/06_removing_subscription_database.mdx @@ -4,12 +4,11 @@ title: "Removing a Subscription Database" - -Deleting a subscription database definition from xDB Replication Server is equivalent to removing its Subscription Database node. Before a Subscription Database node can be removed, all subscriptions under that Subscription Database node must be removed. See [Removing a Subscription](../../05_smr_operation/05_managing_subscription/#removing_subscription) for removing a subscription. +Deleting a subscription database definition from xDB Replication Server is equivalent to removing its Subscription Database node. Before a Subscription Database node can be removed, all subscriptions under that Subscription Database node must be removed. See [Removing a Subscription](05_removing_subscription/#removing_subscription) for removing a subscription. Removing a Subscription Database node does not delete the physical database from the database server. It removes the identity and association of the database to xDB Replication Server so no further replications can create or update tables in the database unless there are other subscription database definitions in xDB Replication Server with the same host and database identifier. The physical database can only be removed using the database management system’s database removal procedures. -**Step 1:** Make sure the subscription server whose node is the parent of the subscription database definition you wish to remove is running and has been registered in the xDB Replication Console you are using. See [Registering a Subscription Server](../../05_smr_operation/03_creating_subscription/#registering_subscription_server) for directions on starting and registering a subscription server. +**Step 1:** Make sure the subscription server whose node is the parent of the subscription database definition you wish to remove is running and has been registered in the xDB Replication Console you are using. See [Registering a Subscription Server](../03_creating_subscription/01_registering_subscription_server/#registering_subscription_server) for directions on starting and registering a subscription server. **Step 2:** Select the Subscription Database node that you wish to remove. diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/index.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/index.mdx index f44cdc73885..be318362c97 100644 --- a/product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/index.mdx +++ b/product_docs/docs/eprs/6.2/05_smr_operation/05_managing_subscription/index.mdx @@ -4,18 +4,8 @@ title: "Managing a Subscription" - -
      - -
      - -Note - -
      - -This section discusses various aspects of managing a subscription of a replication system. For a similar discussion on managing a publication of a replication system, see [Managing a Publication](../07_common_operations/06_managing_publication/#managing_publication). - -
      +!!! Note + This section discusses various aspects of managing a subscription of a replication system. For a similar discussion on managing a publication of a replication system, see [Managing a Publication](../../07_common_operations/06_managing_publication/#managing_publication). After a subscription has been created, certain aspects of the underlying replication system environment might be subsequently altered for any number of reasons. Attributes that might change include the network location of the subscription database server, the network location of the host running the subscription server, database or operating system user names and passwords, and so forth. @@ -25,6 +15,6 @@ This section describes how to update the metadata stored for the subscription se
      -updating\_subscription\_server updating\_subscription\_database updating\_subscription enable\_filters\_on\_subscription removing\_subscription removing\_subscription\_database +updating_subscription_server updating_subscription_database updating_subscription enable_filters_on_subscription removing_subscription removing_subscription_database
      diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/06_performing_switchover.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/06_performing_switchover.mdx index 7fbe48af2b6..76c6b11cdc0 100644 --- a/product_docs/docs/eprs/6.2/05_smr_operation/06_performing_switchover.mdx +++ b/product_docs/docs/eprs/6.2/05_smr_operation/06_performing_switchover.mdx @@ -4,7 +4,6 @@ title: "Performing Controlled Switchover" - Controlled switchover is the exchanging of roles between a publication database and a subscription database. That is, the tables that were formerly publications become the subscription tables. The former subscription tables now become the publications. Controlled switchover is useful for situations where the publication database must be taken offline such as for periodic maintenance. After the switchover, applications connect to the former subscription database to perform their queries and updates, while the former publication database is kept synchronized by replication. @@ -13,17 +12,8 @@ Updates for replication are accumulated in shadow tables that are created on the When you determine that you want to reverse the roles again so that the original publication database directly receives queries and updates from applications, and the original subscription database receives updates by replication, you perform the controlled switchover procedure once again, switching the roles back. -
      - -
      - -Note - -
      - -This discussion assumes that the trigger-based method of synchronization replication is used by the publication database. If the publication database employs the log-based method, then it must be determined if the current subscription database meets the criteria for using the log-based method if that is so desired when it is switched to the role of the publication database. If the subscription database does not meet the criteria, then the trigger-based method must be implemented and used. See [Synchronization Replication with the Log-Based Method](../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#sync_replication_log_based) for information on the log-based method and the necessary configuration steps that must be performed if the log-based method is to be used. - -
      +!!! Note + This discussion assumes that the trigger-based method of synchronization replication is used by the publication database. If the publication database employs the log-based method, then it must be determined if the current subscription database meets the criteria for using the log-based method if that is so desired when it is switched to the role of the publication database. If the subscription database does not meet the criteria, then the trigger-based method must be implemented and used. See [Synchronization Replication with the Log-Based Method](../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#sync_replication_log_based) for information on the log-based method and the necessary configuration steps that must be performed if the log-based method is to be used. ## Controlled Switchover Overview @@ -56,7 +46,7 @@ The following assumptions are made about the replication system environment: **Step 3:** Stop the publication server and the subscription server. -**Step 4:** Review the prerequisites in Section [Prerequisite Steps](../05_smr_operation/01_prerequisites/#prerequisites) to ensure that the subscription database and its host can be used in the role of a publication database, and the publication database and its host can be used in the role of a subscription database. +**Step 4:** Review the prerequisites in Section [Prerequisite Steps](01_prerequisites/#prerequisites) to ensure that the subscription database and its host can be used in the role of a publication database, and the publication database and its host can be used in the role of a subscription database. For practical purposes, the following items are the most likely to be affected: @@ -73,13 +63,13 @@ Delete or disable these triggers on node 1. Delete this schema from the subscription database on node 2 after the backup has been made. -**Step 8:** Restore the backups of `schemas _edb_replicator_pub`, \_edb\_replicator\_sub`, and`\_edb\_scheduler`created in Step 5 to the subscription database on node 2. Also restore the backup of the replication triggers and trigger functions created in Step 6 to the subscription database on node 2. **Step 9:** Restore the backup of schema`\_edb\_replicator\_sub`created in Step 7 to the publication database on node 1. **Step 10:** Update the control schema objects so that the publication database definition references the new publication database (that is, the former subscription database) on node 2 and the subscription database definition references the new subscription database (that is, the former publication database) on node 1. The connection information that may require updating includes the following: * Host IP address * Port number * User name * Password These updates must be made in the control schema of all publication databases to ensure consistency of the control schema information should the controller database be switched at some later point in time. For example, the following shows the update to the publication database definition so that its network IP address is now node 2 (`192.168.2.20`). .. code-block:: text UPDATE _edb_replicator_pub.xdb_pub_database SET db_host = '192.168.2.20'; The following shows the update to the subscription database definition so that its network IP address is now node 1 (192.168.2.19). .. code-block:: text UPDATE _edb_replicator_sub.xdb_sub_database SET db_host = '192.168.2.19'; **Step 11:** If you decide to use a publication server or subscription server on a new host, perform the following step, otherwise go to Step 12. The following example assumes you decide to use the publication server and subscription server running on node 2. Update the subscription metadata to the new location of the publication server managing its associated publication. .. code-block:: text UPDATE _edb_replicator_sub.xdb_subscriptions SET pub_server_ip = '192.168.2.20'; Update the publication metadata to the new location of the subscription server managing its associated subscription. .. code-block:: text UPDATE _edb_replicator_pub.xdb_sub_servers SET sub_server_ip = '192.168.2.20'; **Step 12:** Edit the xDB Replication Configuration file on the publication server and subscription server host so that it contains the controller database connection and authentication information for the new publication database now running on node 2. The following is the modified xDB Replication Configuration file with the network location and authentication information of the new controller database now running on node 2. .. code-block:: text #xDB Replication Server Configuration Properties #Fri Jan 30 17:34:06 GMT-05:00 2015 port=5444 admin_password=ygJ9AxoJEX854elcVIJPTw\=\= user=enterprisedb admin_user=enterprisedb type=enterprisedb database=edb password=ygJ9AxoJEX854elcVIJPTw\=\= host=192.168.2.20 **Step 13:** Update the`pg\_hba.conf\` files of the database servers to allow access to the subscription database now on node 1 and the publication database now on node 2 in accordance with Section \`Postgres Server Authentication <\#postgres\_server\_auth>\_. +**Step 8:** Restore the backups of `schemas _edb_replicator_pub`, \_edb_replicator_sub`, and`\_edb_scheduler`created in Step 5 to the subscription database on node 2. Also restore the backup of the replication triggers and trigger functions created in Step 6 to the subscription database on node 2. **Step 9:** Restore the backup of schema`\_edb_replicator_sub`created in Step 7 to the publication database on node 1. **Step 10:** Update the control schema objects so that the publication database definition references the new publication database (that is, the former subscription database) on node 2 and the subscription database definition references the new subscription database (that is, the former publication database) on node 1. The connection information that may require updating includes the following: * Host IP address * Port number * User name * Password These updates must be made in the control schema of all publication databases to ensure consistency of the control schema information should the controller database be switched at some later point in time. For example, the following shows the update to the publication database definition so that its network IP address is now node 2 (`192.168.2.20`). .. code-block:: text UPDATE _edb_replicator_pub.xdb_pub_database SET db_host = '192.168.2.20'; The following shows the update to the subscription database definition so that its network IP address is now node 1 (192.168.2.19). .. code-block:: text UPDATE _edb_replicator_sub.xdb_sub_database SET db_host = '192.168.2.19'; **Step 11:** If you decide to use a publication server or subscription server on a new host, perform the following step, otherwise go to Step 12. The following example assumes you decide to use the publication server and subscription server running on node 2. Update the subscription metadata to the new location of the publication server managing its associated publication. .. code-block:: text UPDATE _edb_replicator_sub.xdb_subscriptions SET pub_server_ip = '192.168.2.20'; Update the publication metadata to the new location of the subscription server managing its associated subscription. .. code-block:: text UPDATE _edb_replicator_pub.xdb_sub_servers SET sub_server_ip = '192.168.2.20'; **Step 12:** Edit the xDB Replication Configuration file on the publication server and subscription server host so that it contains the controller database connection and authentication information for the new publication database now running on node 2. The following is the modified xDB Replication Configuration file with the network location and authentication information of the new controller database now running on node 2. .. code-block:: text #xDB Replication Server Configuration Properties #Fri Jan 30 17:34:06 GMT-05:00 2015 port=5444 admin_password=ygJ9AxoJEX854elcVIJPTw\=\= user=enterprisedb admin_user=enterprisedb type=enterprisedb database=edb password=ygJ9AxoJEX854elcVIJPTw\=\= host=192.168.2.20 **Step 13:** Update the`pg_hba.conf\` files of the database servers to allow access to the subscription database now on node 1 and the publication database now on node 2 in accordance with Section \`Postgres Server Authentication <#postgres_server_auth>\_. **Step 14:** When using the log-based method, create a replication slot on the database server that now contains the publication database. Use the following query to obtain the slot name from the database server that was previously running the publication database, but is now the subscription database server: -``` text +```text SELECT slot_name FROM pg_replication_slots WHERE plugin = 'test_decoding'; slot_name ------------- @@ -89,7 +79,7 @@ SELECT slot_name FROM pg_replication_slots WHERE plugin = 'test_decoding'; Create a new replication slot on the database server that is now running the publication database, but was previously the subscription database server. The slot name from the previous query is used when creating the new replication slot. -``` text +```text SELECT pg_create_logical_replication_slot('xdb_47919_5', 'test_decoding'); pg_create_logical_replication_slot ------------------------------------ @@ -101,11 +91,11 @@ You may choose to keep the replication slot on the database server that now cont Alternatively, you can delete the replication slot from the database server that now contains the subscription database. The replication slot is deleted with the following command: -``` text +```text SELECT pg_drop_replication_slot('xdb_47919_5'); ``` -See [Dropping Replication Slots for Log-Based Synchronization Replication](../10_appendix/03_resolving_problems/#drop_replication_slots_for_log_based) for additional information on deleting the replication slot if the pg\_drop\_replication\_slot function is not successful. If you switch back the databases to their original roles, you will just have to recreate the replication slot on the publication database server as previously described in this step. +See [Dropping Replication Slots for Log-Based Synchronization Replication](../10_appendix/03_resolving_problems/04_troubleshooting_areas/#drop_replication_slots_for_log_based) for additional information on deleting the replication slot if the pg_drop_replication_slot function is not successful. If you switch back the databases to their original roles, you will just have to recreate the replication slot on the publication database server as previously described in this step. **Step 15:** The controlled switchover is now complete. Start the publication server and the subscription server. diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/07_performing_failover.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/07_performing_failover.mdx index 689f4cd4824..ffea06166dc 100644 --- a/product_docs/docs/eprs/6.2/05_smr_operation/07_performing_failover.mdx +++ b/product_docs/docs/eprs/6.2/05_smr_operation/07_performing_failover.mdx @@ -4,10 +4,9 @@ title: "Performing Failover" - Failover is the replacement of the publication database by the subscription database should a failure occur on the publication database or its host. Failover is considered an irreversible action so the subscription database permanently takes over the role of the publication database. -Generally, the same steps must be followed to perform a failover as was discussed for a controlled switchover in section [Performing Controlled Switchover](../05_smr_operation/#performing_switchover). However, the following points must also be taken into consideration: +Generally, the same steps must be followed to perform a failover as was discussed for a controlled switchover in section [Performing Controlled Switchover](06_performing_switchover/#performing_switchover). However, the following points must also be taken into consideration: - If the control schema objects on the publication database (that is, schemas `_edb_replicator_pub`, `_edb_replicator_sub`, `_edb_scheduler`, and their objects) cannot be salvaged or restored from a backup, then performing a failover may only be possible with the assistance of EnterpriseDB Technical Support Services. - Pending updates not yet applied to the subscription may have been lost. The chances of this are greater if the interval between synchronizations is long. diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/08_optimizing_performance/01_optimizing_snapshot_replication.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/08_optimizing_performance/01_optimizing_snapshot_replication.mdx index 6417b189da1..bfa4f5457c4 100644 --- a/product_docs/docs/eprs/6.2/05_smr_operation/08_optimizing_performance/01_optimizing_snapshot_replication.mdx +++ b/product_docs/docs/eprs/6.2/05_smr_operation/08_optimizing_performance/01_optimizing_snapshot_replication.mdx @@ -4,50 +4,22 @@ title: "Optimizing Snapshot Replication" - This section discusses configuration options for improving snapshot replication performance. -
      - -
      - -Note - -
      - -The options described in this section apply to the publication server only and are set in the publication server configuration file unless otherwise specified. - -
      +!!! Note + The options described in this section apply to the publication server only and are set in the publication server configuration file unless otherwise specified. `copyViaDBLinkOra` -When the `copyViaDBLinkOra` option is set to true, the Oracle database link API, dblink\_ora, is used instead of JDBC COPY to populate Advanced Server subscription tables from an Oracle publication during snapshot replication. +When the `copyViaDBLinkOra` option is set to true, the Oracle database link API, dblink_ora, is used instead of JDBC COPY to populate Advanced Server subscription tables from an Oracle publication during snapshot replication. Oracle database link provides an additional performance improvement over JDBC COPY. -
      - -
      - -Note - -
      - -The Oracle database link API feature is not available with PostgreSQL, therefore the copyViaDBLinkOra option is not applicable to PostgreSQL subscription tables. - -
      +!!! Note + The Oracle database link API feature is not available with PostgreSQL, therefore the copyViaDBLinkOra option is not applicable to PostgreSQL subscription tables. -
      - -
      - -Note - -
      - -Prior to using dblink\_ora with xDB Replication Server, there are a number of required configuration steps that must be performed in Advanced Server. For Advanced Server versions 9.3 or earlier, see the readme text file, `README-dblink_ora_setup.txt` located in the `POSTGRES_INSTALL_HOME/doc/contrib` directory for directions. For Advanced Server versions 9.4 or later, see Chapter dblink\_ora in the *Database Compatibility for Oracle Developer’s Guide* for directions. - -
      +!!! Note + Prior to using dblink_ora with xDB Replication Server, there are a number of required configuration steps that must be performed in Advanced Server. For Advanced Server versions 9.3 or earlier, see the readme text file, `README-dblink_ora_setup.txt` located in the `POSTGRES_INSTALL_HOME/doc/contrib` directory for directions. For Advanced Server versions 9.4 or later, see Chapter dblink_ora in the *Database Compatibility for Oracle Developer’s Guide* for directions. `copyViaDBLinkOra={true | false}` @@ -97,17 +69,8 @@ The default value is false. `snapshotParallelLoadCount` -
      - -
      - -Note - -
      - -To apply this option to a single-master replication system, it must be set for the subscription server within the subscription server configuration file. To apply this option to a multi-master replication system, it must be set for the publication server within the publication server configuration file. - -
      +!!! Note + To apply this option to a single-master replication system, it must be set for the subscription server within the subscription server configuration file. To apply this option to a multi-master replication system, it must be set for the publication server within the publication server configuration file. The `snapshotParallelLoadCount` option controls the number of threads used to perform snapshot data replication in parallel mode. The default behavior is to use a single thread. However, if the target system architecture contains `multi-CPUs/cores` you can specify a value greater than 1, normally equal to the `CPU/core` count, to fully utilize the system resources. diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/08_optimizing_performance/02_optimize_sync_replication/01_using_sql_statements.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/08_optimizing_performance/02_optimize_sync_replication/01_using_sql_statements.mdx index 65086a0eb4d..57acbffdeba 100644 --- a/product_docs/docs/eprs/6.2/05_smr_operation/08_optimizing_performance/02_optimize_sync_replication/01_using_sql_statements.mdx +++ b/product_docs/docs/eprs/6.2/05_smr_operation/08_optimizing_performance/02_optimize_sync_replication/01_using_sql_statements.mdx @@ -2,8 +2,6 @@ title: "Using Prepared SQL Statements" --- - - When synchronization replication occurs, the changes recorded in the shadow tables are applied to the subscription tables in JDBC batch updates. Within each batch, changes may be applied using either an individual SQL statement for each change; or a set of changes may be applied using a single, prepared SQL statement. A prepared SQL statement is parsed and compiled only once, but it can be executed multiple times using different values for certain components of the SQL statement in each execution. A SQL statement that is not prepared is parsed, compiled, and executed only once. Prepared statements are useful only if the same type of SQL statement (`INSERT, UPDATE` or `DELETE`) is executed repeatedly and consecutively with the same target table, but with different values. If there is a sequence of consecutive changes that occur to the same table using the same operation such as inserting a set of rows into the same table populating the same columns, the publication server may apply these changes using a prepared statement. Otherwise, each change is applied with its own individual SQL statement. @@ -28,33 +26,15 @@ The `switchBatchUpdateMode` option controls whether or not the publication serve This means using the default settings of `defaultBatchUpdateMode=BUS` and `switchBatchUpdateMode=true`, the publication server starts out by applying updates with individual SQL statements. When it encounters a stream of consecutive changes that can all be processed in a single prepared statement, it will switch to using prepared SQL statements. -
      - -
      - -Note - -
      - -If you want a certain batch update mode used throughout all synchronization replications applied by a given publication server without switching update modes, set the defaultBatchUpdateMode option to the desired mode in combination with switchBatchUpdateMode=false. For example, if you only want prepared statements used, set the following options: - -
      +!!! Note + If you want a certain batch update mode used throughout all synchronization replications applied by a given publication server without switching update modes, set the defaultBatchUpdateMode option to the desired mode in combination with switchBatchUpdateMode=false. For example, if you only want prepared statements used, set the following options: `defaultBatchUpdateMode=BUP` `switchBatchUpdateMode=false` -
      - -
      - -Note - -
      - -When Oracle is the subscription database, synchronization replication always occurs in BUP mode as if the preceding two options were always set. The reason for this is so large columns of TEXT data type from Postgres publications can successfully replicate to Oracle CLOB columns. In BUS mode an individual Oracle SQL statement has a string literal maximum length of 4000 characters. This limitation does not occur for prepared SQL statements that are used in BUP mode. - -
      +!!! Note + When Oracle is the subscription database, synchronization replication always occurs in BUP mode as if the preceding two options were always set. The reason for this is so large columns of TEXT data type from Postgres publications can successfully replicate to Oracle CLOB columns. In BUS mode an individual Oracle SQL statement has a string literal maximum length of 4000 characters. This limitation does not occur for prepared SQL statements that are used in BUP mode. `busBatchThresholdCount` @@ -76,7 +56,7 @@ If `BUP` mode is employed, but the number of updates using the same prepared sta For example, the following sequence of updates would be better processed in `BUS` mode: -``` text +```text INSERT INTO emp INSERT INTO dept INSERT INTO emp @@ -94,7 +74,7 @@ INSERT INTO dept However, in the following sequence, it is better to use BUP mode. Updates 1 thru 3 are batched in one prepared statement, 4 thru 7 in another prepared statement, 8 in its own prepared statement, and then 9 thru 15 in one prepared statement. -``` text +```text 1. INSERT INTO emp 2. INSERT INTO emp 3. INSERT INTO emp @@ -126,21 +106,12 @@ Each time the same prepared SQL statement is consecutively executed, an internal Thus, if there are frequent, consecutive changes of prepared SQL statements (as measured against `bupBatchThresholdRepeatLimit`), each of which is executed a small number of times (as measured against `bupBatchThresholdCount`), then the mode of execution changes back to individual SQL statements instead of prepared statements. -
      - -
      - -Note - -
      - -The publication server changes back to prepared statements when the threshold set by `busBatchThresholdCount` is met. - -
      +!!! Note + The publication server changes back to prepared statements when the threshold set by `busBatchThresholdCount` is met. The following example illustrates the processing of up dates when bupBatchThresholdCount is set to 3 and bupBatchThresholdRepeatLimit is set to 4. A change to the “query domain” referred to in this example means a different statement type (INSERT, UPDATE, or DELETE) or a different target table are encountered in the next update, thus requiring the use of a different prepared SQL statement. -``` text +```text 1. INSERT INTO emp 2. INSERT INTO emp 3. INSERT INTO dept @@ -148,7 +119,7 @@ The following example illustrates the processing of up dates when bupBatchThresh At this point the query domain is changed after the first two updates (change from table `emp` to `dept`) and the number of executions of the prior prepared statement (2) is less than `bupBatchThresholdCount`, so the repeat counter is set to 1. -``` text +```text 4. INSERT INTO dept 5. INSERT INTO dept 6. INSERT INTO dept @@ -157,14 +128,14 @@ At this point the query domain is changed after the first two updates (change fr The query domain is changed again (change from table dept to emp), but this time the number of executions (4) for the same query domain (updates 3 thru 6) exceeds bupBatchThresholdCount so the repeat counter is reset to 0. -``` text +```text 8. INSERT INTO emp 9. UPDATE emp ``` The query domain is changed again (INSERT statement to UPDATE statement) and the number of executions (2) is less than `bupBatchThresholdCount`, so the repeat counter is incremented to 1. -``` text +```text 10. UPDATE emp 11. INSERT INTO dept 12. DELETE FROM dept diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/08_optimizing_performance/02_optimize_sync_replication/02_parallel_sync.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/08_optimizing_performance/02_optimize_sync_replication/02_parallel_sync.mdx index 37e5eedc2a2..4b333b70db2 100644 --- a/product_docs/docs/eprs/6.2/05_smr_operation/08_optimizing_performance/02_optimize_sync_replication/02_parallel_sync.mdx +++ b/product_docs/docs/eprs/6.2/05_smr_operation/08_optimizing_performance/02_optimize_sync_replication/02_parallel_sync.mdx @@ -4,7 +4,6 @@ title: "Parallel Synchronization" - Parallel synchronization takes advantage of multi-CPUs or cores in the system architecture by using multiple threads to apply transaction sets in parallel. Parallel synchronization is applied in two ways: - Multiple threads are used to load data for multiple tables in parallel from the source database. Each thread opens a separate connection therefore you will observe multiple connections with the source database. The pooling framework is used to cache the connections. After the threads are finished with the data load, the idle connections are returned to the pool and remain there for a period of 3 minutes before being removed from the pool (as long as these are not reused). @@ -34,7 +33,7 @@ The default value is 0. The `targetDBQueryTimeout` option controls the timeout interval (in milliseconds) before an attempt by the publication server to apply a transaction set on a target database is aborted by the database server (typically due to a lock acquired by another application on one or more of the target tables). -The `targetDBQueryTimeout` option sets the default lock timeout value to 10 minutes. Change the 10 minute default value to a higher value if you want to allow a longer wait time before the transaction is aborted. Change the value to 0 if you want to turn off usage of the `targetDBQueryTimeout` option in which case the timeout interval is controlled by the setting of the Postgres database server statement\_timeout configuration parameter. +The `targetDBQueryTimeout` option sets the default lock timeout value to 10 minutes. Change the 10 minute default value to a higher value if you want to allow a longer wait time before the transaction is aborted. Change the value to 0 if you want to turn off usage of the `targetDBQueryTimeout` option in which case the timeout interval is controlled by the setting of the Postgres database server statement_timeout configuration parameter. A higher value of `targetDBQueryTimeout` delays processing of subsequent transaction sets on other target databases because if a transaction set is blocked, the next transaction set cannot be loaded until: diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/08_optimizing_performance/02_optimize_sync_replication/03_other_sync_configuration.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/08_optimizing_performance/02_optimize_sync_replication/03_other_sync_configuration.mdx index c09bb400a99..3e3a77aa184 100644 --- a/product_docs/docs/eprs/6.2/05_smr_operation/08_optimizing_performance/02_optimize_sync_replication/03_other_sync_configuration.mdx +++ b/product_docs/docs/eprs/6.2/05_smr_operation/08_optimizing_performance/02_optimize_sync_replication/03_other_sync_configuration.mdx @@ -2,8 +2,6 @@ title: "Other Synchronization Configuration Options" --- - - The following are other configuration options affecting synchronization replication. **syncBatchSize** @@ -34,7 +32,7 @@ The `txSetMaxSize` option defines the maximum number of transactional rows that `enablePerformanceStats` -Set `enablePerformanceStats` option to true only if you need to conduct performance testing and analyze the replication statistics. When enabled, the publication server creates additional triggers on the publication tables in each primary node. The triggers produce transaction statistics that are recorded in the MMR\_transaction\_history table in the control schema. This option should be disabled in a production environment to avoid performance overhead. +Set `enablePerformanceStats` option to true only if you need to conduct performance testing and analyze the replication statistics. When enabled, the publication server creates additional triggers on the publication tables in each primary node. The triggers produce transaction statistics that are recorded in the MMR_transaction_history table in the control schema. This option should be disabled in a production environment to avoid performance overhead. `enablePerformanceStats={true | false}` diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/08_optimizing_performance/02_optimize_sync_replication/index.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/08_optimizing_performance/02_optimize_sync_replication/index.mdx index 9ebe3365f0e..e83d3e7ab47 100644 --- a/product_docs/docs/eprs/6.2/05_smr_operation/08_optimizing_performance/02_optimize_sync_replication/index.mdx +++ b/product_docs/docs/eprs/6.2/05_smr_operation/08_optimizing_performance/02_optimize_sync_replication/index.mdx @@ -4,25 +4,15 @@ title: "Optimizing Synchronization Replication" - This section discusses configuration options for improving synchronization replication performance. -In addition, for configuration options specifically applicable to publication databases configured with the log-based method of synchronization replication, see [Specifying a Custom URL for an Oracle JDBC Connection](../../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/#specify_custom_url_for_oracle_jdbc). - -
      - -
      - -Note +In addition, for configuration options specifically applicable to publication databases configured with the log-based method of synchronization replication, see [Specifying a Custom URL for an Oracle JDBC Connection](../../../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/05_specify_custom_url_for_oracle_jdbc/#specify_custom_url_for_oracle_jdbc). -
      - -The options described in this section apply to the publication server only and are set in the publication server configuration file. - -
      +!!! Note + The options described in this section apply to the publication server only and are set in the publication server configuration file.
      -using\_sql\_statements parallel\_sync other\_sync\_configuration +using_sql_statements parallel_sync other_sync_configuration
      diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/08_optimizing_performance/index.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/08_optimizing_performance/index.mdx index 4d7e95c53dc..a73ce47d7aa 100644 --- a/product_docs/docs/eprs/6.2/05_smr_operation/08_optimizing_performance/index.mdx +++ b/product_docs/docs/eprs/6.2/05_smr_operation/08_optimizing_performance/index.mdx @@ -4,25 +4,15 @@ title: "Optimizing Performance" - Once you have become familiar with setting up and managing your replication system, you will often look for ways to optimize the performance of replications. This section discusses various publication server and subscription server configuration options available to improve the performance of snapshot and synchronization replications. -The publication server and subscription server configuration options are set in the publication server and subscription server configuration files, respectively. See [Publication and Subscription Server Configuration Options](../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/#publications_and_subscriptions_server_conf_options) for a detailed explanation of how to set the configuration options in these files. - -
      - -
      - -Note +The publication server and subscription server configuration options are set in the publication server and subscription server configuration files, respectively. See [Publication and Subscription Server Configuration Options](../../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/#publications_and_subscriptions_server_conf_options) for a detailed explanation of how to set the configuration options in these files. -
      - -Most of these configuration options are applicable to multi-master replication systems as well. Options applicable to multi-master replication systems are those that apply to the publication server and are not specific to a database product other than Postgres (such as an Oracle feature). - -
      +!!! Note + Most of these configuration options are applicable to multi-master replication systems as well. Options applicable to multi-master replication systems are those that apply to the publication server and are not specific to a database product other than Postgres (such as an Oracle feature).
      -optimizing\_snapshot\_replication optimize\_sync\_replication +optimizing_snapshot_replication optimize_sync_replication
      diff --git a/product_docs/docs/eprs/6.2/05_smr_operation/index.mdx b/product_docs/docs/eprs/6.2/05_smr_operation/index.mdx index bb11f3fb289..b85ced35e5a 100644 --- a/product_docs/docs/eprs/6.2/05_smr_operation/index.mdx +++ b/product_docs/docs/eprs/6.2/05_smr_operation/index.mdx @@ -4,13 +4,12 @@ title: "Single-Master Replication Operation" - This chapter describes how to configure and run xDB Replication Server for single-master replication systems. -For configuration and management of your replication system, the xDB Replication Console graphical user interface is used to illustrate the steps and examples in this chapter. The same steps can be performed from the operating system command line using the xDB Replication Server Command Line Interface (CLI). The commands of the xDB Replication Server CLI utility are described in Chapter [xDB Replication Server Command Line Interface](08_xdb_cli/#xdb_cli). +For configuration and management of your replication system, the xDB Replication Console graphical user interface is used to illustrate the steps and examples in this chapter. The same steps can be performed from the operating system command line using the xDB Replication Server Command Line Interface (CLI). The commands of the xDB Replication Server CLI utility are described in Chapter [xDB Replication Server Command Line Interface](../08_xdb_cli/#xdb_cli).
      -prerequisites creating\_publication creating\_subscription on\_demand\_replication managing\_subscription performing\_switchover performing\_failover optimizing\_performance +prerequisites creating_publication creating_subscription on_demand_replication managing_subscription performing_switchover performing_failover optimizing_performance
      diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/01_pre_steps.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/01_pre_steps.mdx index b06c9011fb6..a531bf755d6 100644 --- a/product_docs/docs/eprs/6.2/06_mmr_operation/01_pre_steps.mdx +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/01_pre_steps.mdx @@ -4,14 +4,13 @@ title: "Prerequisite Steps" - Certain steps must be taken to prepare the host environments as well as the database servers used as primary nodes before beginning the process of building a multi-master replication system. This section describes these steps. ## Setting Heap Memory Size for the Publication Server -Replication speed and efficiency can be affected by the heap memory size set for the publication server. The xDB Startup Configuration file sets a parameter controlling the minimum and maximum heap size allocated for the publication server. See [Setting Heap Memory Size for the Publication and Subscription Servers](../05_smr_operation/01_prerequisites/#setting_heap_size_for_pub_and_sub) for guidelines and information on setting this parameter. +Replication speed and efficiency can be affected by the heap memory size set for the publication server. The xDB Startup Configuration file sets a parameter controlling the minimum and maximum heap size allocated for the publication server. See [Setting Heap Memory Size for the Publication and Subscription Servers](../05_smr_operation/01_prerequisites/01_setting_heap_size_for_pub_and_sub/#setting_heap_size_for_pub_and_sub) for guidelines and information on setting this parameter. @@ -21,14 +20,14 @@ This section applies only to Postgres database servers of version 9.4 and later. - `wal_level.` Set to logical. - `max_wal_senders.` Specifies the maximum number of concurrent connections (that is, the maximum number of simultaneously running WAL sender processes). Set at minimum, to the number of MMR primary nodes on this database server that will use the log-based method. In addition, if SMR publication databases are to run on this database server, also add the number of SMR publication databases that will use the log-based method. -- `max_replication_slots.` Specifies the maximum number of replication slots. For support of MMR systems, the minimum is the total number of primary nodes in the multi-master replication system multiplied by the number of primary nodes residing on this database server. For information, see [Replication Origin](../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#replication_origin). In addition, if SMR publication databases are to run on this database server, also add the number of SMR publication databases that will use the log-based method. -- `track_commit_timestamp.` Set to on. This configuration parameter applies only to Postgres database servers of version 9.5 or later. See [Configuration Parameter and Table Setting Requirements](#configuration_para_and%20table_setting) for additional information. +- `max_replication_slots.` Specifies the maximum number of replication slots. For support of MMR systems, the minimum is the total number of primary nodes in the multi-master replication system multiplied by the number of primary nodes residing on this database server. For information, see [Replication Origin](../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/04_replication_origin/#replication_origin). In addition, if SMR publication databases are to run on this database server, also add the number of SMR publication databases that will use the log-based method. +- `track_commit_timestamp.` Set to on. This configuration parameter applies only to Postgres database servers of version 9.5 or later. See [Configuration Parameter and Table Setting Requirements](06_conflict_resolution/01_configuration_para_andtable_setting/#configuration_para_and_table_setting) for additional information. See [Synchronization Replication with the Log-Based Method](../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#sync_replication_log_based) for information on the log-based method of synchronization replication. The Postgres database server must be restarted after altering any of these configuration parameters. -In addition, the `pg_hba.conf` file requires an entry for each publication database user of primary nodes that are to use the log-based method. Such database users must be included as a replication database user in the `pg_hba.conf` file. See verify\_host\_accessibility <verify\_host\_accessibility> for additional information. +In addition, the `pg_hba.conf` file requires an entry for each publication database user of primary nodes that are to use the log-based method. Such database users must be included as a replication database user in the `pg_hba.conf` file. See verify_host_accessibility <verify_host_accessibility> for additional information. @@ -39,8 +38,8 @@ This section discusses the preparation of a database to be used as the primary d When creating the publication database definition for the primary definition node, a database user name must be specified that has the following characteristics: - The database user can connect to the primary definition node. -- The database user has superuser privileges. Superuser privileges are required because the database configuration parameter session\_replication\_role is altered by the database user when the primary definition node receives updates from other primary nodes during a synchronization replication. The database user temporarily changes session\_replication\_role to replica to prevent the triggers on the publication tables from firing. This session change also occurs for snapshot operations involving replication of the control schema from one publication database to another. -- The database user must have the ability to modify the system catalog tables in order to disable foreign key constraints on the publication tables for snapshots targeted to the publication, as well as for the control schema tables for snapshot operations involving the replication of the control schema from one publication database to another. (See appendix [Disabling Foreign Key Constraints for Snapshot Replications](../10_appendix/04_miscellaneous_xdb_processing_topics/#disable_foreign_key_constraints_for_snapshot_replication) for more information on this requirement.) +- The database user has superuser privileges. Superuser privileges are required because the database configuration parameter session_replication_role is altered by the database user when the primary definition node receives updates from other primary nodes during a synchronization replication. The database user temporarily changes session_replication_role to replica to prevent the triggers on the publication tables from firing. This session change also occurs for snapshot operations involving replication of the control schema from one publication database to another. +- The database user must have the ability to modify the system catalog tables in order to disable foreign key constraints on the publication tables for snapshots targeted to the publication, as well as for the control schema tables for snapshot operations involving the replication of the control schema from one publication database to another. (See appendix [Disabling Foreign Key Constraints for Snapshot Replications](../10_appendix/04_miscellaneous_xdb_processing_topics/04_disable_foreign_key_constraints_for_snapshot_replication/#disable_foreign_key_constraints_for_snapshot_replication) for more information on this requirement.) The examples used throughout the rest of this user’s guide are based on the following primary definition node: @@ -53,9 +52,9 @@ The following steps illustrate the preparation of the primary definition node da **Step 1:** Create a user name with login and superuser privileges for the primary definition node. This user becomes the owner of xDB Replication Server metadata database objects that will be created in the primary definition node to track, control, and record the replication process and history. The xDB Replication Server metadata database objects are created in a schema named `_edb_replicator_pub`. -When creating the publication database definition, the database user name is entered in the Publication Service – Add Database dialog box (see [Adding the Primary definition node](../06_mmr_operation/#adding_pdn)). +When creating the publication database definition, the database user name is entered in the Publication Service – Add Database dialog box (see [Adding the Primary definition node](02_creating_publication_mmr/#adding_pdn)). -``` text +```text CREATE ROLE pubuser WITH LOGIN SUPERUSER PASSWORD 'password'; ``` @@ -63,7 +62,7 @@ CREATE ROLE pubuser WITH LOGIN SUPERUSER PASSWORD 'password'; When adding new users, granting these users membership in these roles gives them the privileges to access the publication tables. This eliminates the need to grant these privileges individually to each new user. -See Step 2 of [Postgres Publication Database](../05_smr_operation/01_prerequisites/#postgres_pub_db) for information on creating such roles. +See Step 2 of [Postgres Publication Database](../05_smr_operation/01_prerequisites/04_preparing_pub_database/#postgres_pub_db) for information on creating such roles. @@ -74,9 +73,9 @@ The following steps illustrate the creation of a database user and a database fo When creating the publication database definition for an additional primary node, a database user name must be specified that has the following characteristics: - The database user can connect to the primary node. -- The database user has superuser privileges. Superuser privileges are required because the database configuration parameter session\_replication\_role is altered by the database user when the primary node receives updates from other primary nodes during a synchronization replication. The database user temporarily changes session\_replication\_role to replica to prevent the triggers on the publication tables from firing. This session change also occurs for snapshot operations involving replication of the control schema from one publication database to another. -- The database user must have the ability to modify the system catalog tables in order to disable foreign key constraints on the publication tables for snapshots targeted to the publication, as well as for the control schema tables for snapshot operations involving the replication of the control schema from one publication database to another. (See appendix [Disabling Foreign Key Constraints for Snapshot Replications](../10_appendix/04_miscellaneous_xdb_processing_topics/#disable_foreign_key_constraints_for_snapshot_replication) for more information on this requirement.) -- If the additional primary node is to reside on a different database server instance (that is, on a different host or port number) than the primary definition node, then the same database user name should be used for this additional primary node as used for the primary definition node unless the publication server configuration option `skipTablePrivileges` is changed from its default value of false to true. See [Skipping Grants of Table Level User Privileges on MMR Target Tables](../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/#skipping_grants_of_table_level_user_privileges_on_mmr) for information on `skipTablePrivileges`. +- The database user has superuser privileges. Superuser privileges are required because the database configuration parameter session_replication_role is altered by the database user when the primary node receives updates from other primary nodes during a synchronization replication. The database user temporarily changes session_replication_role to replica to prevent the triggers on the publication tables from firing. This session change also occurs for snapshot operations involving replication of the control schema from one publication database to another. +- The database user must have the ability to modify the system catalog tables in order to disable foreign key constraints on the publication tables for snapshots targeted to the publication, as well as for the control schema tables for snapshot operations involving the replication of the control schema from one publication database to another. (See appendix [Disabling Foreign Key Constraints for Snapshot Replications](../10_appendix/04_miscellaneous_xdb_processing_topics/04_disable_foreign_key_constraints_for_snapshot_replication/#disable_foreign_key_constraints_for_snapshot_replication) for more information on this requirement.) +- If the additional primary node is to reside on a different database server instance (that is, on a different host or port number) than the primary definition node, then the same database user name should be used for this additional primary node as used for the primary definition node unless the publication server configuration option `skipTablePrivileges` is changed from its default value of false to true. See [Skipping Grants of Table Level User Privileges on MMR Target Tables](../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/13_skipping_grants_of_table_level_user_privileges_on_mmr/#skipping_grants_of_table_level_user_privileges_on_mmr) for information on `skipTablePrivileges`. There are also two possible options available with respect to how the publication tables are to be created in the primary node: @@ -92,15 +91,15 @@ The examples used throughout the rest of this user’s guide are based on the fo **Step 1:** Create a database user name for the primary node. This user becomes the owner of xDB Replication Server metadata database objects that will be created in the primary node to track, control, and record the replication process and history. The xDB Replication Server metadata database objects are created in a schema named `_edb_replicator_pub`. -When creating the publication database definition for the primary node, the database user name is entered in the Publication Service – Add Database dialog box (see [Creating Additional Primary nodes](../06_mmr_operation/#creating_primary_nodes)). +When creating the publication database definition for the primary node, the database user name is entered in the Publication Service – Add Database dialog box (see [Creating Additional Primary nodes](03_creating_primary_nodes/#creating_primary_nodes)). -``` text +```text CREATE ROLE MMRuser WITH LOGIN SUPERUSER PASSWORD 'password'; ``` Step 2: Create a database that will be used as the primary node if such a database does not already exist. -``` text +```text CREATE DATABASE MMRnode; ``` @@ -110,8 +109,8 @@ CREATE DATABASE MMRnode; If more than one computer is used to host the components of the replication system, each computer must be able to communicate with the others on a network. There are a number of different aspects to this topic. -- For a discussion of firewalls and access to ports see [Firewalls and Access to Ports](../05_smr_operation/01_prerequisites/#firewalls_and_access_to_ports). -- For a discussion of network IP addresses see [Network IP Addresses](../05_smr_operation/01_prerequisites/#network_ip). +- For a discussion of firewalls and access to ports see [Firewalls and Access to Ports](../05_smr_operation/01_prerequisites/06_verifying_host_accessibility/#firewalls_and_access_to_ports). +- For a discussion of network IP addresses see [Network IP Addresses](../05_smr_operation/01_prerequisites/06_verifying_host_accessibility/#network_ip). A Postgres database server uses the host-based authentication file, `pg_hba.conf`, to control access to the databases in the database server. You need to modify the `pg_hba.conf` file on each Postgres database server that contains a primary node. @@ -125,11 +124,11 @@ On each database server running a primary node, the following is needed to allow `host primarynode_db primarynode_user pub_ipaddr/32 md5` -The value you substitute for `primarynode_db` is the name of the database you intend to use as the primary node. The value you substitute for `primarynode_user` is the database user name you created in Step 1 of [Preparing the Primary definition node](../06_mmr_operation/#prepare_pdn) or Step 1 of Section [Preparing Additional Primary nodes](../06_mmr_operation/#prepare_add_pdn). +The value you substitute for `primarynode_db` is the name of the database you intend to use as the primary node. The value you substitute for `primarynode_user` is the database user name you created in Step 1 of [Preparing the Primary definition node](#prepare_pdn) or Step 1 of Section [Preparing Additional Primary nodes](#prepare_add_pdn). For two primary nodes using databases named `edb` and `MMRnode` running on the same database server, the resulting `pg_hba.conf` file appears as follows: -``` text +```text # TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only @@ -149,7 +148,7 @@ host all all ::1/128 md5 If the primary node using database `MMRnode` with database user name `MMRuser` is running on a separate host than where database `edb` is running, the `pg_hba.conf` file on the database server with database `MMRnode` would look like the following: -``` text +```text # TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only @@ -170,7 +169,7 @@ The preceding examples assume databases `edb` and `MMRnode` are using the trigge The following shows a modification of the first example with these additional entries as the last two lines in the file: -``` text +```text # TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only @@ -190,7 +189,7 @@ host replication pubuser 192.168.2.22/32 md5 host replication MMRuser 192.168.2.22/32 md5 ``` -See sections [Synchronization Replication with the Log-Based Method](../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#sync_replication_log_based) and [Enabling Synchronization Replication with the Log-Based Method](../06_mmr_operation/#enabling_sync_replication_log-based_method_mmr) for additional information on synchronization replication with the log-based method. +See sections [Synchronization Replication with the Log-Based Method](../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#sync_replication_log_based) and [Enabling Synchronization Replication with the Log-Based Method](#enabling_sync_replication_log-based_method_mmr) for additional information on synchronization replication with the log-based method. Reload the configuration file after making the modifications. diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/02_creating_publication_mmr.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/02_creating_publication_mmr.mdx index 3456b5bffff..8b0de947ef3 100644 --- a/product_docs/docs/eprs/6.2/06_mmr_operation/02_creating_publication_mmr.mdx +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/02_creating_publication_mmr.mdx @@ -4,7 +4,6 @@ title: "Creating a Publication" - Creating a publication requires the following steps: - Registering the publication server @@ -16,7 +15,7 @@ Creating a publication requires the following steps: ## Registering a Publication Server -Registering a publication server is done in a manner identical to single-master replication. See [Registering a Publication Server](../05_smr_operation/02_creating_publication/#registering_publication_server) for directions on registering a publication server. +Registering a publication server is done in a manner identical to single-master replication. See [Registering a Publication Server](../05_smr_operation/02_creating_publication/01_registering_publication_server/#registering_publication_server) for directions on registering a publication server. ![Replication tree after registering a publication server](/../images/image68.png) @@ -43,12 +42,12 @@ You must enter database connection information such as the database server netwo - `Database Type`. Select PostgreSQL or Postgres Plus Advanced Server for the primary definition node. For an Advanced Server Oracle compatible installation, select the Postgres Plus Advanced Server option. For PostgreSQL or an Advanced Server PostgreSQL compatible installation, select the PostgreSQL option. - `Host`. IP address of the host on which the primary definition node is running. - `Port`. Port on which the primary definition node is listening for connections. -- `User`. The database user name for the primary definition node created in Step 1 of [Preparing the Primary definition node](../06_mmr_operation/#prepare_pdn). +- `User`. The database user name for the primary definition node created in Step 1 of [Preparing the Primary definition node](01_pre_steps/#prepare_pdn). - `Password`. Password of the database user. - `Database`. Enter the database name of the primary definition node. -- `URL Options (For SSL connectivity)`. Enter the URL options to establish SSL connectivity to the primary definition node. See Using Secure Sockets Layer (SSL) Connections <using\_ssl\_connections> for information on using SSL connections. -- `Changeset Logging (For Postgres)`. Select Table Triggers to use the trigger-based method of synchronization replication. Select WAL Stream to use the log-based method of synchronization replication. See [Synchronization Replication with the Trigger-Based Method](../02_overview/02_replication_concepts_and_definitions/#sync_replication_trigger_based) for information on the trigger-based method. See [Synchronization Replication with the Log-Based Method](../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#sync_replication_log_based) for information on the log-based method. -- `Node Priority Level`. An integer from 1 to 10, which is the priority level assigned to this primary node for conflict resolution based on node priority. The highest priority is 1 while the lowest is 10. See [Conflict Resolution Strategies](../06_mmr_operation/06_conflict_resolution/#conflict_resolution_strategies) for information on conflict resolution strategies. The default is 1 for the primary definition node. +- `URL Options (For SSL connectivity)`. Enter the URL options to establish SSL connectivity to the primary definition node. See Using Secure Sockets Layer (SSL) Connections <using_ssl_connections> for information on using SSL connections. +- `Changeset Logging (For Postgres)`. Select Table Triggers to use the trigger-based method of synchronization replication. Select WAL Stream to use the log-based method of synchronization replication. See [Synchronization Replication with the Trigger-Based Method](../02_overview/02_replication_concepts_and_definitions/09_sync_replication_trigger_based/#sync_replication_trigger_based) for information on the trigger-based method. See [Synchronization Replication with the Log-Based Method](../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#sync_replication_log_based) for information on the log-based method. +- `Node Priority Level`. An integer from 1 to 10, which is the priority level assigned to this primary node for conflict resolution based on node priority. The highest priority is 1 while the lowest is 10. See [Conflict Resolution Strategies](06_conflict_resolution/04_conflict_resolution_strategies/#conflict_resolution_strategies) for information on conflict resolution strategies. The default is 1 for the primary definition node. ![Publication Service - Add Database dialog box for the primary definition node](/../images/image114.png) @@ -77,7 +76,7 @@ Subordinate to the primary definition node, you create a publication that contai - `Publication Name`. Enter a name that is unique amongst all publications. - `Publish`. Check the boxes next to the tables that are to be included in the publication. Alternatively or in addition, click the `Use Wildcard Selection` button to use wildcard pattern matching for selecting publication tables. - `Select All`. Check this box if you want to include all tables in the Available Tables list in the publication. -- `Use Wildcard Selection`. Click this button to use the wildcard selector to choose tables for the publication. See [Selecting Tables with the Wildcard Selector](../07_common_operations/#select_tables_wildcard_selector) for information on the wildcard selector. +- `Use Wildcard Selection`. Click this button to use the wildcard selector to choose tables for the publication. See [Selecting Tables with the Wildcard Selector](../07_common_operations/01_select_tables_wildcard_selector/#select_tables_wildcard_selector) for information on the wildcard selector. ![Create Publication dialog box](/../images/image117.png) @@ -85,17 +84,8 @@ If you wish to use table filters during replications between primary nodes in th **Step 3 (Optional):** Table filters consist of a set of filter rules that control the selection criteria for rows replicated between primary nodes during a snapshot or a synchronization replication. -
      - -
      - -Note - -
      - -See [Table Settings and Restrictions for Table Filters](../02_overview/02_replication_concepts_and_definitions/#table_settings_and_restrictions_for_table_filters) for table setup requirements for a log-based replication system as well as general restrictions on the use of table filters. - -
      +!!! Note + See [Table Settings and Restrictions for Table Filters](../02_overview/02_replication_concepts_and_definitions/13_table_filters/#table_settings_and_restrictions_for_table_filters) for table setup requirements for a log-based replication system as well as general restrictions on the use of table filters. A filter rule consists of a filter name and a SQL `WHERE` clause (omitting the `WHERE` keyword) called the filter clause, which you specify for a table that defines the selection criteria for rows that are to be included during a replication. @@ -130,19 +120,10 @@ To remove a filter rule, click the primary mouse button on the filter rule you w You may also modify the filter name or filter clause of a filter rule listed in the Table Filters tab by double-clicking on the cell of the filter name or filter clause you wish to change. When the cursor appears in the cell, enter the text for the desired change. -When creating additional primary nodes, you may selectively enable these table filters on the corresponding tables in the additional primary nodes. See [Creating Additional Primary nodes](../06_mmr_operation/#creating_primary_nodes) for information on creating additional primary nodes. - -
      - -
      - -Note - -
      - -To enable table filters on the primary definition node under which you are currently creating the publication, you must first switch the role of the primary definition node to a different primary node (see [Switching the Primary definition node](../06_mmr_operation/#switching_pdn)), and then follow the directions in Section Enabling/Disabling Table Filters on a Primary node <enable\_disable\_table\_filters> to enable the table filters. +When creating additional primary nodes, you may selectively enable these table filters on the corresponding tables in the additional primary nodes. See [Creating Additional Primary nodes](03_creating_primary_nodes/#creating_primary_nodes) for information on creating additional primary nodes. -
      +!!! Note + To enable table filters on the primary definition node under which you are currently creating the publication, you must first switch the role of the primary definition node to a different primary node (see [Switching the Primary definition node](10_switching_pdn/#switching_pdn)), and then follow the directions in Section Enabling/Disabling Table Filters on a Primary node <enable_disable_table_filters> to enable the table filters. This completes the process of defining table filters. The next step is changing conflict resolution options. @@ -154,7 +135,7 @@ If you wish to change the conflict resolution options from their default setting If during synchronization replication, conflicting changes are pending against the same row from different primary nodes, the conflict resolution strategy determines which of the conflicting changes is accepted and replicated to all primary nodes. The conflicting changes that are not accepted are discarded. -If the selection from the Conflict Resolution Strategy column does not resolve the conflict, the selection from the Standby Conflict Resolution Strategy column is applied. If neither strategy resolves the conflict, the event is marked as Pending in the Conflict History tab. See [Viewing Conflict History](../06_mmr_operation/#view_conflict_history) for information on viewing conflict history. +If the selection from the Conflict Resolution Strategy column does not resolve the conflict, the selection from the Standby Conflict Resolution Strategy column is applied. If neither strategy resolves the conflict, the event is marked as Pending in the Conflict History tab. See [Viewing Conflict History](07_view_conflict_history/#view_conflict_history) for information on viewing conflict history. An example of a conflict is when the same column of the same row is changed by transactions in two different primary nodes. Depending upon the conflict resolution strategy in effect for the table, one of the transactions is accepted and replicated to all primary nodes. The other transaction is discarded and not replicated to any primary node. @@ -166,9 +147,9 @@ The following is a brief summary of each conflict resolution strategy: - `Custom`. Update/update conflicts are resolved with a PL/pgSQL custom conflict handling program. - `Manual`. The conflict remains unresolved. Conflicting changes remain applied in each primary node where they originated, but are not replicated to other primary nodes. The proper adjustments must be manually applied in each primary node. -See [Conflict Resolution Strategies](../06_mmr_operation/06_conflict_resolution/#conflict_resolution_strategies) for more information on conflict resolution strategies. +See [Conflict Resolution Strategies](06_conflict_resolution/04_conflict_resolution_strategies/#conflict_resolution_strategies) for more information on conflict resolution strategies. -**Step 5:** If you expect update/update conflicts, then set the `REPLICA IDENTITY` option to FULL on those tables where the conflicts are expected to occur. See [Configuration Parameter and Table Setting Requirements](#configuration_para_and%20table_setting) for additional information. +**Step 5:** If you expect update/update conflicts, then set the `REPLICA IDENTITY` option to FULL on those tables where the conflicts are expected to occur. See [Configuration Parameter and Table Setting Requirements](06_conflict_resolution/01_configuration_para_andtable_setting/#configuration_para_and_table_setting) for additional information. **Step 6:** Click the `Create` button. If `Publication Created Successfully` appears, click the `OK` button, otherwise investigate the error and make the necessary corrections. diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/03_creating_primary_nodes.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/03_creating_primary_nodes.mdx index c2c083ca148..c55eb556362 100644 --- a/product_docs/docs/eprs/6.2/06_mmr_operation/03_creating_primary_nodes.mdx +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/03_creating_primary_nodes.mdx @@ -4,7 +4,6 @@ title: "Creating Additional Primary nodes" - Once you have created the primary definition node, you add additional databases to the multi-master replication system by defining additional primary nodes. This is done by creating additional publication database definitions subordinate to the MMR type node under the Publication Server node that contains the primary definition node. @@ -22,28 +21,19 @@ You must enter database connection information such as the database server netwo - `Database Type.` Select PostgreSQL or Postgres Plus Advanced Server for the primary node. For an Advanced Server Oracle compatible installation, select the Postgres Plus Advanced Server option. For PostgreSQL or an Advanced Server PostgreSQL compatible installation, select the PostgreSQL option. - `Host.` IP address of the host on which the primary node is running. - `Port.` Port on which the primary node is listening for connections. -- `User.` The database user name for the primary node created in Step 1 of [Preparing Additional Primary nodes](../06_mmr_operation/#prepare_add_pdn). +- `User.` The database user name for the primary node created in Step 1 of [Preparing Additional Primary nodes](01_pre_steps/#prepare_add_pdn). - `Password.` Password of the database user. - `Database.` Enter the database name of the primary node. -- `URL Options (For SSL connectivity).` Enter the URL options to establish SSL connectivity to the primary node. See Preparing Using Secure Sockets Layer (SSL) Connections <using\_ssl\_connections> for information on using SSL connections. -- `Changeset Logging (For Postgres).` This setting is predetermined by the selection on the primary definition node (see [Adding the Primary definition node](../06_mmr_operation/#adding_pdn)). Table Triggers is for the trigger-based method of synchronization replication. WAL Stream is for the log-based method of synchronization replication. See [Synchronization Replication with the Trigger-Based Method](../02_overview/02_replication_concepts_and_definitions/#sync_replication_trigger_based) for information on the trigger-based method. See [Synchronization Replication with the Log-Based Method](../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#sync_replication_log_based) for information on the log-based method. -- `Node Priority Level.` An integer from 1 to 10, which is the priority level assigned to this primary node for conflict resolution based on node priority. The highest priority is 1 while the lowest is 10. See [Conflict Resolution Strategies](../06_mmr_operation/06_conflict_resolution/#conflict_resolution_strategies) for information on conflict resolution strategies. As each additional primary node is added, the default priority level number increases assigning a lower priority level to each additional node. -- `Replicate Publication Schema.` Check this box if you want the publication server to create the publication table definitions in the new primary node by copying the definitions from the primary definition node. If you do not check this box, it is assumed that you have already created the table definitions in the primary node. If you are using the offline snapshot technique to create this primary node, do not check this box. See Loading Tables From an External Data Source (Offline Snapshot) <offline\_snapshot>) for information on using an offline snapshot. -- `Perform Initial Snapshot.` Check this box if you want the publication server to perform a snapshot from the primary definition node to this primary node when you click the Save button. If you do not check this box, the tables on the primary node will not be loaded until you perform a replication at some later time. If you are using the offline snapshot technique to create this primary node, you should have already loaded the table rows. Therefore do not check this box unless you want to reload the data. See Loading Tables From an External Data Source (Offline Snapshot) <offline\_snapshot> for information on using an offline snapshot. +- `URL Options (For SSL connectivity).` Enter the URL options to establish SSL connectivity to the primary node. See Preparing Using Secure Sockets Layer (SSL) Connections <using_ssl_connections> for information on using SSL connections. +- `Changeset Logging (For Postgres).` This setting is predetermined by the selection on the primary definition node (see [Adding the Primary definition node](02_creating_publication_mmr/#adding_pdn)). Table Triggers is for the trigger-based method of synchronization replication. WAL Stream is for the log-based method of synchronization replication. See [Synchronization Replication with the Trigger-Based Method](../02_overview/02_replication_concepts_and_definitions/09_sync_replication_trigger_based/#sync_replication_trigger_based) for information on the trigger-based method. See [Synchronization Replication with the Log-Based Method](../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#sync_replication_log_based) for information on the log-based method. +- `Node Priority Level.` An integer from 1 to 10, which is the priority level assigned to this primary node for conflict resolution based on node priority. The highest priority is 1 while the lowest is 10. See [Conflict Resolution Strategies](06_conflict_resolution/04_conflict_resolution_strategies/#conflict_resolution_strategies) for information on conflict resolution strategies. As each additional primary node is added, the default priority level number increases assigning a lower priority level to each additional node. +- `Replicate Publication Schema.` Check this box if you want the publication server to create the publication table definitions in the new primary node by copying the definitions from the primary definition node. If you do not check this box, it is assumed that you have already created the table definitions in the primary node. If you are using the offline snapshot technique to create this primary node, do not check this box. See Loading Tables From an External Data Source (Offline Snapshot) <offline_snapshot>) for information on using an offline snapshot. +- `Perform Initial Snapshot.` Check this box if you want the publication server to perform a snapshot from the primary definition node to this primary node when you click the Save button. If you do not check this box, the tables on the primary node will not be loaded until you perform a replication at some later time. If you are using the offline snapshot technique to create this primary node, you should have already loaded the table rows. Therefore do not check this box unless you want to reload the data. See Loading Tables From an External Data Source (Offline Snapshot) <offline_snapshot> for information on using an offline snapshot. ![Publication Service - Add Database dialog box for an additional primary node](/../images/image124.png) -
      - -
      - -Note - -
      - -Unless you intend to use the offline snapshot technique (see Loading Tables From an External Data Source (Offline Snapshot) <offline\_snapshot>), it is suggested that you check the Perform Initial Snapshot box. An initial snapshot replication must be performed from the primary definition node to every other primary node before performing synchronization replications on demand (see [Performing Synchronization Replication](../06_mmr_operation/#perform_synchronization_replication_mmr)) or by a schedule (see [Creating a Schedule](../07_common_operations/#creating_schedule)). If a newly added primary node did not undergo an initial snapshot, any subsequent synchronization replication may fail to apply the transactions to that primary node. The initial snapshot can also be taken by performing an on demand snapshot (see [Performing Snapshot Replication](../06_mmr_operation/#perform_snapshot_replication_mmr)). - -
      +!!! Note + Unless you intend to use the offline snapshot technique (see Loading Tables From an External Data Source (Offline Snapshot) <offline_snapshot>), it is suggested that you check the Perform Initial Snapshot box. An initial snapshot replication must be performed from the primary definition node to every other primary node before performing synchronization replications on demand (see [Performing Synchronization Replication](05_on_demand_replication_mmr/#perform_synchronization_replication_mmr)) or by a schedule (see [Creating a Schedule](../07_common_operations/02_creating_schedule/#creating_schedule)). If a newly added primary node did not undergo an initial snapshot, any subsequent synchronization replication may fail to apply the transactions to that primary node. The initial snapshot can also be taken by performing an on demand snapshot (see [Performing Snapshot Replication](05_on_demand_replication_mmr/#perform_snapshot_replication_mmr)). **Step 4:** Click the `Test` button. If `Test Result: Success` appears, click the `OK` button. @@ -51,29 +41,20 @@ Unless you intend to use the offline snapshot technique (see - -
      - -Note - -
      - -See [Table Settings and Restrictions for Table Filters](../02_overview/02_replication_concepts_and_definitions/#table_settings_and_restrictions_for_table_filters) for table setup requirements for a log-based replication system as well as general restrictions on the use of table filters. +**Step 5 (Optional):** If you defined a set of available table filters for the publication, you have the option of enabling these filters on this primary node. See [Adding a Publication](02_creating_publication_mmr/#add_pub_mmr) for instructions on defining table filters. If you do not wish to filter the rows that are replicated to this primary node, go to Step 6. - +!!! Note + See [Table Settings and Restrictions for Table Filters](../02_overview/02_replication_concepts_and_definitions/13_table_filters/#table_settings_and_restrictions_for_table_filters) for table setup requirements for a log-based replication system as well as general restrictions on the use of table filters. Click the `Filter Rules` tab to apply one or more filter rules to the primary node. At most one filter rule may be enabled on any given table in the primary node. -In the following example the filter named `dept_10_20_30` is enabled on the dept table and the filter named dept\_30 is enabled on the `emp` table of this primary node. +In the following example the filter named `dept_10_20_30` is enabled on the dept table and the filter named dept_30 is enabled on the `emp` table of this primary node. ![Enabling filter rules on a primary node](/../images/image126.png) **Step 6:** Check the Perform Initial Snapshot box if you want the publication server to perform a snapshot from the primary definition node to this primary node when you click the Save button. If you do not check this box, the tables on the primary node will not be loaded until you perform a replication at some later time. -If you are using the offline snapshot technique to create this primary node, you should have already loaded the table rows. Therefore do not check this box unless you want to reload the data. See Loading Tables From an External Data Source (Offline Snapshot) <offline\_snapshot> for information on using an offline snapshot. +If you are using the offline snapshot technique to create this primary node, you should have already loaded the table rows. Therefore do not check this box unless you want to reload the data. See Loading Tables From an External Data Source (Offline Snapshot) <offline_snapshot> for information on using an offline snapshot. If you do check the Perform Initial Snapshot check box, the Verbose Output check box appears as shown by the following: @@ -101,10 +82,10 @@ If in Step 6, you checked the `Perform Initial Snapshot` check box, an initial s If the snapshot is successful, the replicated tables in the primary node are loaded with the rows from the publication tables of the primary definition node. -Step 7: If you expect update/update conflicts, then set the `REPLICA IDENTITY` option to `FULL` on those tables where the conflicts are expected to occur. See [Configuration Parameter and Table Setting Requirements](#configuration_para_and%20table_setting) for additional information. +Step 7: If you expect update/update conflicts, then set the `REPLICA IDENTITY` option to `FULL` on those tables where the conflicts are expected to occur. See [Configuration Parameter and Table Setting Requirements](06_conflict_resolution/01_configuration_para_andtable_setting/#configuration_para_and_table_setting) for additional information. Step 8 (Optional): If users are to access the data in the publication tables residing on this primary node, it is convenient to have one or more `group` roles containing the required privileges to access these tables. For the trigger-based method, privileges must also be granted on the control schema objects to users who are to perform inserts, updates, or deletions on the publication tables. When using the log-based method a user needs access to the publication tables and to certain control schema objects as well under certain circumstances. When adding new users, granting these users membership in these roles gives them the privileges to access the publication tables. This eliminates the need to grant these privileges individually to each new user. -After you perform the replication of the publication schema as shown in Step 3, you can grant the required privileges needed to access the publication tables and its control schema objects. See Step 2 of [Postgres Publication Database](../05_smr_operation/01_prerequisites/#postgres_pub_db) for information on how this can be accomplished. +After you perform the replication of the publication schema as shown in Step 3, you can grant the required privileges needed to access the publication tables and its control schema objects. See Step 2 of [Postgres Publication Database](../05_smr_operation/01_prerequisites/04_preparing_pub_database/#postgres_pub_db) for information on how this can be accomplished. diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/04_control_schema_created_in_primary_nodes.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/04_control_schema_created_in_primary_nodes.mdx index 172d4002ce4..9675ffbb2a4 100644 --- a/product_docs/docs/eprs/6.2/06_mmr_operation/04_control_schema_created_in_primary_nodes.mdx +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/04_control_schema_created_in_primary_nodes.mdx @@ -4,10 +4,9 @@ title: "Control Schema Objects Created in Primary nodes" - Creation of primary nodes results in the creation of control schema objects in each primary node database. -See [Control Schema Objects Created for a Publication](../05_smr_operation/02_creating_publication/#control_schema_objects_created_for_publication) for the control schema objects created in each primary node. +See [Control Schema Objects Created for a Publication](../05_smr_operation/02_creating_publication/04_control_schema_objects_created_for_publication/#control_schema_objects_created_for_publication) for the control schema objects created in each primary node. Do not delete any of these control schema objects as the replication system metadata will become corrupted. diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/05_on_demand_replication_mmr.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/05_on_demand_replication_mmr.mdx index 20203fba100..01970d3476c 100644 --- a/product_docs/docs/eprs/6.2/06_mmr_operation/05_on_demand_replication_mmr.mdx +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/05_on_demand_replication_mmr.mdx @@ -4,13 +4,12 @@ title: "On Demand Replication" - After a primary definition node, its publication, and additional primary nodes are created, there are a couple of choices for starting the replication process. - Replication can be done immediately by performing an initial on demand snapshot after which synchronization replication may be performed. - Replication can be scheduled to start at a later date and time by creating a schedule. -This section discusses the procedure for initiating a replication on demand. Section [Creating a Schedule](../07_common_operations/#creating_schedule) discusses how to create a schedule. +This section discusses the procedure for initiating a replication on demand. Section [Creating a Schedule](../07_common_operations/02_creating_schedule/#creating_schedule) discusses how to create a schedule. @@ -18,7 +17,7 @@ This section discusses the procedure for initiating a replication on demand. Sec A snapshot replication occurs from the primary definition node to a selected primary node. -When you create a primary node for the first time, you have the option of performing an initial snapshot (see Step 3 of [Creating Additional Primary nodes](../06_mmr_operation/#creating_primary_nodes)). You can perform snapshots to this primary node at any later point in time according to the following steps. +When you create a primary node for the first time, you have the option of performing an initial snapshot (see Step 3 of [Creating Additional Primary nodes](03_creating_primary_nodes/#creating_primary_nodes)). You can perform snapshots to this primary node at any later point in time according to the following steps. **Step 1:** Select the Publication node under the primary node for which you wish to perform snapshot replication. @@ -47,27 +46,18 @@ The status messages of each snapshot are saved in the Migration Toolkit log file `POSTGRES_HOME\.enterprisedb\xdb\x.x` -`POSTGRES_HOME` is the home directory of the Windows postgres account (enterprisedb account for Advanced Server installed in Oracle compatible configuration mode). The specific location of POSTGRES\_HOME is dependent upon your version of Windows. The xDB Replication Server version number is represented by `x.x`. +`POSTGRES_HOME` is the home directory of the Windows postgres account (enterprisedb account for Advanced Server installed in Oracle compatible configuration mode). The specific location of POSTGRES_HOME is dependent upon your version of Windows. The xDB Replication Server version number is represented by `x.x`. ![Successful on demand snapshot](/../images/image134.png) -The publication has now been replicated from the primary definition node to the selected primary node. A record of the snapshot is maintained in the replication history. See [Viewing Replication History](../07_common_operations/#view_replication_history) for information on how to view replication history. +The publication has now been replicated from the primary definition node to the selected primary node. A record of the snapshot is maintained in the replication history. See [Viewing Replication History](../07_common_operations/04_view_replication_history/#view_replication_history) for information on how to view replication history. ## Performing Synchronization Replication -
      - -
      - -Note - -
      - -Be sure an initial snapshot replication has been performed from the primary definition node to every other primary node in the multi-master replication system. If a newly added primary node did not undergo an initial snapshot, any subsequent synchronization replication may fail to apply the transactions to that primary node. The initial snapshot could be taken when the primary node is first added (see [Creating Additional Primary nodes](../06_mmr_operation/#creating_primary_nodes)) or by performing an on demand snapshot (see [Performing Snapshot Replication](../06_mmr_operation/#perform_snapshot_replication_mmr)). - -
      +!!! Note + Be sure an initial snapshot replication has been performed from the primary definition node to every other primary node in the multi-master replication system. If a newly added primary node did not undergo an initial snapshot, any subsequent synchronization replication may fail to apply the transactions to that primary node. The initial snapshot could be taken when the primary node is first added (see [Creating Additional Primary nodes](03_creating_primary_nodes/#creating_primary_nodes)) or by performing an on demand snapshot (see [Performing Snapshot Replication](#perform_snapshot_replication_mmr)). When synchronization replication is performed in a multi-master replication system, a series of synchronization operations occur between every primary node pair in the replication system. @@ -80,7 +70,7 @@ For example, if a replication system consists of primary nodes A, B, and C, sync - Changes on node C are applied to node A. - Changes on node C are applied to node B. -There may be circumstances where changes made on different nodes result in conflicts. Section [Conflict Resolution](../06_mmr_operation/06_conflict_resolution/#conflict_resolution) discusses the types of conflicts that may occur and how they can be resolved. +There may be circumstances where changes made on different nodes result in conflicts. Section [Conflict Resolution](06_conflict_resolution/#conflict_resolution) discusses the types of conflicts that may occur and how they can be resolved. The following steps describe how to initiate on demand synchronization replication. @@ -103,6 +93,6 @@ The following steps describe how to initiate on demand synchronization replicati ![Successful on demand synchronization](/../images/image137.png) -The operations that were applied to the publication tables can be seen in the replication history. See [Viewing Replication History](../07_common_operations/#view_replication_history) for information on how to view replication history. +The operations that were applied to the publication tables can be seen in the replication history. See [Viewing Replication History](../07_common_operations/04_view_replication_history/#view_replication_history) for information on how to view replication history. -Conflicting changes that were encountered can be seen in the conflict history. See [Viewing Conflict History](../06_mmr_operation/#view_conflict_history) for information on how to view conflict history. +Conflicting changes that were encountered can be seen in the conflict history. See [Viewing Conflict History](07_view_conflict_history/#view_conflict_history) for information on how to view conflict history. diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/01_configuration_para_andtable_setting.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/01_configuration_para_andtable_setting.mdx index adf9cf3047f..7d471d21410 100644 --- a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/01_configuration_para_andtable_setting.mdx +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/01_configuration_para_andtable_setting.mdx @@ -4,29 +4,28 @@ title: "Configuration Parameter and Table Setting Requirements" - Depending upon the multi-master replication system environment, certain configuration settings may be required in order for the conflict resolution process to operate properly. The following are required only for the log-based method. These do not apply to the trigger-based method. -- `track_commit_timestamp`. Any Postgres 9.6 and later database server containing a primary node must have its `track_commit_timestamp` configuration parameter enabled. The `track_commit_timestamp` parameter is located in the `postgresql.conf` file. If `track_commit_timestamp` is not enabled, then `update/update` conflicts are not automatically resolved such as by using the earliest timestamp of the conflicting transactions. As a result, these conflicting transactions are left in a pending state. See [Automatic Conflict Resolution Example](../../06_mmr_operation/06_conflict_resolution/#auto_conflict_resolution_eg) for an example of how update/update conflicts are automatically resolved. +- `track_commit_timestamp`. Any Postgres 9.6 and later database server containing a primary node must have its `track_commit_timestamp` configuration parameter enabled. The `track_commit_timestamp` parameter is located in the `postgresql.conf` file. If `track_commit_timestamp` is not enabled, then `update/update` conflicts are not automatically resolved such as by using the earliest timestamp of the conflicting transactions. As a result, these conflicting transactions are left in a pending state. See [Automatic Conflict Resolution Example](07_auto_conflict_resolution_eg/#auto_conflict_resolution_eg) for an example of how update/update conflicts are automatically resolved. - `REPLICA IDENTITY FULL.` If `update/update conflicts` are expected to occur on a given publication table, then the `REPLICA IDENTITY` setting for the table must be set to FULL on every primary node. The case where update transactions occur on separate primary nodes, but updating different columns in the same row, is not considered an update/update conflict. However, if `REPLICA IDENTITY` is not set to `FULL`, then this case will be recorded as an `update/update conflict`. The `REPLICA IDENTITY` option is set to `FULL` using the `ALTER TABLE` command as shown by the following: -``` text +```text ALTER TABLE schema.table_name REPLICA IDENTITY FULL ``` The following is an example of the `ALTER TABLE` command: -``` text +```text ALTER TABLE edb.dept REPLICA IDENTITY FULL; ``` The `REPLICA IDENTITY` setting can be displayed by the PSQL utility using the `\d+` command: -``` text +```text edb=# \d+ edb.dept Table "edb.dept" Column | Type | Modifiers | Storage | Stats target | Description @@ -43,14 +42,5 @@ Referenced by: Replica Identity: FULL ``` -
      - -
      - -Note - -
      - -In addition to conflict resolution requirements, the `REPLICA IDENTITY FULL` setting may be required on publication tables for other reasons in xDB Replication Server. See [Table Settings and Restrictions for Table Filters](../../02_overview/02_replication_concepts_and_definitions/#table_settings_and_restrictions_for_table_filters) for additional requirements. - -
      +!!! Note + In addition to conflict resolution requirements, the `REPLICA IDENTITY FULL` setting may be required on publication tables for other reasons in xDB Replication Server. See [Table Settings and Restrictions for Table Filters](../../02_overview/02_replication_concepts_and_definitions/13_table_filters/#table_settings_and_restrictions_for_table_filters) for additional requirements. diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/02_conflict_types.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/02_conflict_types.mdx index f87a4ef951b..e5c6640b6eb 100644 --- a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/02_conflict_types.mdx +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/02_conflict_types.mdx @@ -4,7 +4,6 @@ title: "Conflict Types" - The types of conflicts can be summarized as follows: - `Uniqueness Conflict.` A uniqueness conflict occurs when the same value is used for a primary key or unique column in an insert transaction on two or more primary nodes. This is also referred to as an insert/insert conflict. @@ -13,7 +12,7 @@ The types of conflicts can be summarized as follows: The following table definition is used to illustrate conflict resolution examples: -``` text +```text CREATE TABLE addrbook ( id SERIAL PRIMARY KEY, name VARCHAR(20), @@ -23,24 +22,27 @@ CREATE TABLE addrbook ( The following table illustrates an example of a uniqueness conflict. -
      Uniqueness Conflict

      Timestamp t1

      Action Node A: INSERT INTO addrbook (name, address) VALUES ('A', 'ADDR A');

      Node A: INSERT INTO addrbook (name, address) VALUES ('B', 'ADDR B');

      Primary node A id = 1, name = 'A', address = 'ADDR A'

      id = 2, name = 'B', address = 'ADDR B'

      Primary node B

      t2

      t3

      Node B: INSERT INTO addrbook (name, address) VALUES ('C', 'ADDR C');

      Synchronization pushes Node A changes to Node B

      id = 1, name = 'A', address = 'ADDR A'

      id = 2, name = 'B', address = 'ADDR B'

      id = 1, name = 'C', address = 'ADDR C'

      Row change for INSERT tx id = 1 on Node A results in unique key conflict on Node B

      id = 1, name = 'C', address = 'ADDR C'

      id = 1, name = 'A', address = 'ADDR A'

      +| | | | | +| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| Timestamp `t1`
      | Action **Node A:** INSERT INTO addrbook (name, address) VALUES ('A', 'ADDR A');

      **Node A:** INSERT INTO addrbook (name, address) VALUES ('B', 'ADDR B');
      | Primary node A id = 1, name = 'A', address = 'ADDR A'

      id = 2, name = 'B', address = 'ADDR B'
      | Primary node B
      | +| `t2`

      `t3`
      | **Node B:** INSERT INTO addrbook (name, address) VALUES ('C', 'ADDR C');

      Synchronization pushes Node A changes to Node B
      | id = 1, name = 'A', address = 'ADDR A'

      id = 2, name = 'B', address = 'ADDR B'
      | id = 1, name = 'C', address = 'ADDR C'

      **Row change for INSERT tx id = 1 on Node A results in unique key conflict on Node B**

      id = 1, name = 'C', address = 'ADDR C'

      **id = 1, name = 'A', address = 'ADDR A'**
      | **Uniqueness Conflict** The following table illustrates an example of an update conflict. -| | | | | -|----------------|-------------------------------------------------------------------------------------------------------------------|-------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------| -| Timestamp `t0` | Action | Primary node A id = 2, address = 'ADDR B' | Primary node B id = 2, address = 'ADDR B' | -| `t1` | **Node A:** UPDATE addrbook SET address = 'ADDR B1' WHERE id = 2; | id = 2, address = **'ADDR B1'** | id = 2, address = 'ADDR B' | -| `t2` `t3` | **Node B:** UPDATE addrbook SET address = 'ADDR B2' WHERE id = 2; Synchronization pushes Node A changes to Node B | id = 2, address = 'ADDR B1' | id = 2, address = **'ADDR B2'** **Current value of address on Node B not equal old value on Node A ('ADDR B2' <> 'ADDR B')** | +| | | | | +| -------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | +| Timestamp `t0` | Action | Primary node A id = 2, address = 'ADDR B' | Primary node B id = 2, address = 'ADDR B' | +| `t1` | **Node A:** UPDATE addrbook SET address = 'ADDR B1' WHERE id = 2; | id = 2, address = **'ADDR B1'** | id = 2, address = 'ADDR B' | +| `t2` `t3` | **Node B:** UPDATE addrbook SET address = 'ADDR B2' WHERE id = 2; Synchronization pushes Node A changes to Node B | id = 2, address = 'ADDR B1' | id = 2, address = **'ADDR B2'** **Current value of address on Node B not equal old value on Node A ('ADDR B2' <> 'ADDR B')** | **Update Conflict** The following table illustrates an example of a delete conflict. | | | | | -|----------------|------------------------------------------------------------------------------------------------|-------------------------------------------|--------------------------------------------------------------------------------------------------------------------------| +| -------------- | ---------------------------------------------------------------------------------------------- | ----------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ | | Timestamp `t0` | Action | Primary node A id = 2, address = 'ADDR B' | Primary node B id = 2, address = 'ADDR B' | | `t1` | **Node A:** UPDATE addrbook SET address = 'ADDR B1' WHERE id = 2; | id = 2, address = **'ADDR B1'** | id = 2, address = 'ADDR B' | | `t2` `t3` | **Node B:** DELETE FROM addrbook WHERE id = 2; Synchronization pushes Node A changes to Node B | id = 2, address = 'ADDR B1' | **Row with id = 2 deleted** **The row with id = 2 is already deleted on target Node B, hence update from Node A fails.** | diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/03_conflict_detection.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/03_conflict_detection.mdx index 1b9ece2a471..acd93347dec 100644 --- a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/03_conflict_detection.mdx +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/03_conflict_detection.mdx @@ -4,10 +4,9 @@ title: "Conflict Detection" - This section discusses the synchronization process and conflict detection. -When synchronization replication occurs, either on demand or on a scheduled basis, each of the primary node changes is pushed to the other primary nodes. See [Multi-Master Parallel Replication](../../02_overview/02_replication_concepts_and_definitions/#mmr_parallel_replication) for information on this process. +When synchronization replication occurs, either on demand or on a scheduled basis, each of the primary node changes is pushed to the other primary nodes. See [Multi-Master Parallel Replication](../../02_overview/02_replication_concepts_and_definitions/12_mmr_parallel_replication/#mmr_parallel_replication) for information on this process. Using a 3-node example the following describes the conflict detection process. diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/04_conflict_resolution_strategies.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/04_conflict_resolution_strategies.mdx index aec2ef6b561..8a2e5b11b76 100644 --- a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/04_conflict_resolution_strategies.mdx +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/04_conflict_resolution_strategies.mdx @@ -4,7 +4,6 @@ title: "Conflict Resolution Strategies" - A number of built-in conflict resolution options are available to support automatic conflict resolution. The conflict resolution options are applicable to update/update and delete/delete conflicts. Uniqueness (`insert/insert`), `update/delete`, and `delete/update` conflicts are marked unresolved and must be manually reconciled. @@ -14,10 +13,10 @@ The following are the built-in, automatic conflict resolution options. - `Earliest Timestamp.` When the earliest timestamp option is selected, the relevant rows involved in an update conflict from the source and target primary nodes are compared based on the timestamp of when the update occurred on that particular node. The row change that occurred earliest is applied. The row changes with the later timestamps are discarded. - `Latest Timestamp`. Same approach as earliest timestamp except the row change with the latest timestamp is accepted. The row changes with earlier timestamps are discarded. - `Node Priority.` The row change of the primary node with the highest node priority level is applied while the lower priority level primary node changes are discarded. The node priority level is an integer in the range of 1 to 10, inclusive where 1 is the highest priority level and 10 is the lowest priority level. -- `Custom.` Custom conflict handling applies to update/update conflicts only. You must supply a PL/pgSQL program to resolve any conflicts that occur resulting from an update/update conflict. See [Custom Conflict Handling](../../06_mmr_operation/06_conflict_resolution/08_custom_conflict_handling/#custom_conflict_handling) for information on using custom conflict handling. +- `Custom.` Custom conflict handling applies to update/update conflicts only. You must supply a PL/pgSQL program to resolve any conflicts that occur resulting from an update/update conflict. See [Custom Conflict Handling](08_custom_conflict_handling/#custom_conflict_handling) for information on using custom conflict handling. The `delete/delete` conflict is always resolved implicitly regardless of the conflict resolution option in effect. The net impact of a `delete/delete` conflict is the removal of a given row, and the row in question has already been removed the from the source and target nodes. For the earliest timestamp and latest timestamp conflict resolution strategies, the transaction timestamp is tracked in a column with data type `TIMESTAMP` in the shadow table. -Once selected, the conflict resolution strategy for a given table can later be changed to a different strategy (see [Updating the Conflict Resolution Options](../../06_mmr_operation/#update_conflict_resolution_options)). +Once selected, the conflict resolution strategy for a given table can later be changed to a different strategy (see [Updating the Conflict Resolution Options](../08_update_conflict_resolution_options/#update_conflict_resolution_options)). diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/05_conflict_prevention_uniquness.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/05_conflict_prevention_uniquness.mdx index 10f16713a04..094f4df293b 100644 --- a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/05_conflict_prevention_uniquness.mdx +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/05_conflict_prevention_uniquness.mdx @@ -4,7 +4,6 @@ title: "Conflict Prevention – Uniqueness Case" - Since there is no automatic built-in resolution strategy for the uniqueness conflict, this section discusses strategies to avoid this problem that would be implemented by the DBA. This discussion is based on a realm of numeric values generated by a sequence such as for a unique primary key. The following are possible strategies: @@ -12,8 +11,11 @@ The following are possible strategies: - **Node specific sequence range**. A sequence range is reserved for each primary node. For example, primary node A would have `MINVALUE = 1` and `MAXVALUE = 1000`, primary node B would have `MINVALUE = 1001` and `MAXVALUE = 2000`, and so on for other nodes. This ensures that a unique ID is always generated across all primary nodes. - **Start value variation**. Each node is assigned a different start value. For example, primary node A would have a START value of 1, node B would have 2, and node C would have 3. An increment greater than or equal to the number of nodes guarantees unique IDs as shown in Table 6 4. - **Common sequence**. All nodes share a common sequence object, however this has the major disadvantage of slowing down transaction processing due to network round-trips associated with each ID generation. -- **MMR-ready sequence**. This is a technique that enhances the use of sequences and provides a more flexible, reliable approach for a distributed, multiple database architecture as is inherent in a multi-master replication system. This approach is recommended over the previously listed sequence techniques. See [Conflict Prevention with an MMR-Ready Sequence](../../06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/#conflict_prevention_mmr_ready) for information on an MMR-ready sequence. +- **MMR-ready sequence**. This is a technique that enhances the use of sequences and provides a more flexible, reliable approach for a distributed, multiple database architecture as is inherent in a multi-master replication system. This approach is recommended over the previously listed sequence techniques. See [Conflict Prevention with an MMR-Ready Sequence](06_conflict_prevention_mmr_ready/#conflict_prevention_mmr_ready) for information on an MMR-ready sequence. -
      Uniqueness Conflict

      Sequence Clause START WITH INCREMENT BY

      Primary node A 1 2 5 5

      Primary node B

      3 5

      Primary node C

      Generated IDs1, 6, 11, 16, …

      2, 7, 12, 17, …

      3, 8, 13, 18, …

      +| | | | | +| ----------------------------------------------------- | -------------------------------- | ------------------------------------------------------------------- | --------------------------------------------- | +| **Sequence Clause** `START WITH` `INCREMENT BY`
      | **Primary node A** 1 2 5 5
      | - **Primary node B**

      3 5
      | **Primary node C**
      | +| `Generated IDs` | 1, 6, 11, 16, … |


      2, 7, 12, 17, …

      |


      3, 8, 13, 18, …

      | **Uniqueness Conflict** diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/01_create_mmr_ready_sequence.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/01_create_mmr_ready_sequence.mdx index 4fbb3882229..3d470e343f7 100644 --- a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/01_create_mmr_ready_sequence.mdx +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/01_create_mmr_ready_sequence.mdx @@ -4,7 +4,6 @@ title: "Creating an MMR-Ready Sequence" - The following are the steps to create an MMR-ready sequence in a database to participate as a primary node in a multi-master replication system. Begin these steps with the database to be used as the primary definition node. @@ -13,7 +12,7 @@ Begin these steps with the database to be used as the primary definition node. Issue the following commands to create and set the database identifier: -``` text +```text ALTER DATABASE dbname SET cluster.unique_db_id TO db_id; SET cluster.unique_db_id TO db_id; ``` @@ -22,7 +21,7 @@ Use a different `db_id` value for each database. **Step 2:** Create a sequence to uniquely identify each table row within the database. -``` text +```text CREATE SEQUENCE seq_name START WITH 1 INCREMENT BY 1 NO CYCLE; ``` @@ -32,7 +31,7 @@ A publication table column that uses an MMR-ready sequence will include a DEFAUL **Step 3:** Create the following function that returns the next MMR-ready sequence value when a row is inserted into the table. This function is referenced by the `DEFAULT` clause of the publication table column. -``` text +```text CREATE OR REPLACE FUNCTION MMR_sequence_nextval ( seq_id VARCHAR ) @@ -53,7 +52,7 @@ This function performs a bitwise shift left operation (<< 52) on the datab **Step 4 (Optional):** Create the following function to obtain the current MMR-ready sequence value. -``` text +```text CREATE OR REPLACE FUNCTION MMR_sequence_currval ( seq_id VARCHAR ) @@ -72,7 +71,7 @@ The `MMR_sequence_nextval` function must be invoked in the current session befor **Step 5:** Add or modify the publication table column that is to use the MMR-ready sequence. The column data type must be `BIGINT`. The `MMR_sequence_nextval` function is specified in the `DEFAULT` clause as shown in the following example for column id. -``` text +```text CREATE TABLE table_name ( id BIGINT NOT NULL PRIMARY KEY DEFAULT MMR_sequence_nextval('seq_name'), @@ -84,16 +83,7 @@ The column will also typically be the primary key. **Step 6:** Repeat steps 1 through 4 for the other databases to be added as primary nodes. -
      - -
      - -Note - -
      - -Step 5 is omitted for the additional primary nodes as the publication table definitions are replicated from the primary definition node to the additional primary nodes when they are created as described in [Creating Additional Primary nodes](../../../06_mmr_operation/#creating_primary_nodes). - -
      +!!! Note + Step 5 is omitted for the additional primary nodes as the publication table definitions are replicated from the primary definition node to the additional primary nodes when they are created as described in [Creating Additional Primary nodes](../../03_creating_primary_nodes/#creating_primary_nodes). -**Step 7:** Create the complete, multi-master replication system as described in Chapter [Multi-Master Replication Operation](../../../06_mmr_operation/#mmr_operation). +**Step 7:** Create the complete, multi-master replication system as described in Chapter [Multi-Master Replication Operation](../../#mmr_operation). diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/02_mmr_ready_example.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/02_mmr_ready_example.mdx index 86dfc1e2d2c..27c38465de0 100644 --- a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/02_mmr_ready_example.mdx +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/02_mmr_ready_example.mdx @@ -4,12 +4,11 @@ title: "MMR-Ready Sequence Example" - The following is an example of a 3-primary node system using an MMR-ready sequence. The databases to be used as the primary nodes are `MMRnode_a`, `MMRnode_b`, and `MMRnode_c`. A publication table named `MMR_seq_tbl` uses the `MMR-ready` sequence. The following commands are invoked in database `MMRnode_a`, which will be the primary definition node: -``` text +```text ALTER DATABASE MMRnode_a SET cluster.unique_db_id TO 1; SET cluster.unique_db_id TO 1; @@ -48,23 +47,14 @@ CREATE TABLE MMR_seq_tbl ( ); ``` -On `MMRnode_b` and `MMRnode_c`, the commands to create different settings for the configuration parameter cluster.unique\_db\_id are run as well as the commands to create the sequence and the functions. +On `MMRnode_b` and `MMRnode_c`, the commands to create different settings for the configuration parameter cluster.unique_db_id are run as well as the commands to create the sequence and the functions. On `MMRnode_b` the following commands are invoked. -
      - -
      - -Note - -
      +!!! Note + `Cluster.unique_db_id` is set to 2. -`Cluster.unique_db_id` is set to 2. - -
      - -``` text +```text ALTER DATABASE MMRnode_b SET cluster.unique_db_id TO 2; SET cluster.unique_db_id TO 2; @@ -99,19 +89,10 @@ $function$; On `MMRnode_c` the following commands are invoked. -
      - -
      - -Note +!!! Note + The `cluster.unique_db_id` is set to 3. -
      - -The `cluster.unique_db_id` is set to 3. - -
      - -``` text +```text ALTER DATABASE MMRnode_c SET cluster.unique_db_id TO 3; SET cluster.unique_db_id TO 3; @@ -150,21 +131,12 @@ The resulting primary nodes are shown in the xDB Replication Console. ![Publication table with MMR-ready sequence](/../../../images/image138.png) -
      - -
      - -Note - -
      - -The Default Value property of the id column uses the `MMR_sequence_nextval` function. - -
      +!!! Note + The Default Value property of the id column uses the `MMR_sequence_nextval` function. The following INSERT commands are invoked on `MMRnode_a`: -``` text +```text INSERT INTO MMR_seq_tbl (field) VALUES ('MMRnode_a - Row 1'); INSERT INTO MMR_seq_tbl (field) VALUES ('MMRnode_a - Row 2'); INSERT INTO MMR_seq_tbl (field) VALUES ('MMRnode_a - Row 3'); @@ -172,7 +144,7 @@ INSERT INTO MMR_seq_tbl (field) VALUES ('MMRnode_a - Row 3'); The following INSERT commands are invoked on `MMRnode_b`: -``` text +```text INSERT INTO MMR_seq_tbl (field) VALUES ('MMRnode_b - Row 1'); INSERT INTO MMR_seq_tbl (field) VALUES ('MMRnode_b - Row 2'); INSERT INTO MMR_seq_tbl (field) VALUES ('MMRnode_b - Row 3'); @@ -180,7 +152,7 @@ INSERT INTO MMR_seq_tbl (field) VALUES ('MMRnode_b - Row 3'); The following INSERT commands are invoked on `MMRnode_c`: -``` text +```text INSERT INTO MMR_seq_tbl (field) VALUES ('MMRnode_c - Row 1'); INSERT INTO MMR_seq_tbl (field) VALUES ('MMRnode_c - Row 2'); INSERT INTO MMR_seq_tbl (field) VALUES ('MMRnode_c - Row 3'); @@ -190,7 +162,7 @@ A synchronization replication is performed. No uniqueness conflicts occur as a unique value is generated for the id primary key column as shown by the following results on `MMRnode_a`: -``` text +```text MMRnode_a=# SELECT * FROM MMR_seq_tbl ORDER BY id; id | field -------------------+------------------- @@ -208,7 +180,7 @@ MMRnode_a=# SELECT * FROM MMR_seq_tbl ORDER BY id; The same query on `MMRnode_b` shows the same set of rows: -``` text +```text MMRnode_b=# SELECT * FROM MMR_seq_tbl ORDER BY id; id | field -------------------+------------------- @@ -226,7 +198,7 @@ MMRnode_b=# SELECT * FROM MMR_seq_tbl ORDER BY id; The same results are present on `MMRnode_c`: -``` text +```text MMRnode_c=# SELECT * FROM MMR_seq_tbl ORDER BY id; id | field -------------------+------------------- diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/03_convert_to_mmr_ready.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/03_convert_to_mmr_ready.mdx index 6267ae82bf7..e7786114782 100644 --- a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/03_convert_to_mmr_ready.mdx +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/03_convert_to_mmr_ready.mdx @@ -4,17 +4,16 @@ title: "Converting a Standard Sequence to an MMR-Ready Sequence" - If you have an existing application with tables that use a standard sequence such as with the `SERIAL` data type, these tables can be modified to use the MMR-ready sequence for incorporation into a multi-master replication system. The basic conversion process is the following: - Update the sequence values in the existing rows with MMR-ready sequence compatible values. - Alter the column definition to be compatible with the MMR-ready sequence including modification or addition of the `DEFAULT` clause to use the MMR-ready sequence function to supply the default values for subsequent inserts. -To perform the conversion of existing sequence values, first, create the unique database identifier as described in Step 1 of section [Creating an MMR-Ready Sequence](../../../06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/#create_mmr_ready_sequence). +To perform the conversion of existing sequence values, first, create the unique database identifier as described in Step 1 of section [Creating an MMR-Ready Sequence](01_create_mmr_ready_sequence/#create_mmr_ready_sequence). Use the following function to update the existing primary key and foreign key values that are required to be converted. -``` text +```text CREATE OR REPLACE FUNCTION MMR_sequence_convert ( old_seq_value bigint ) @@ -34,4 +33,4 @@ The function input and return arguments are data type `BIGINT` so the existing s Finally, the sequence columns must include the clauses `BIGINT NOT NULL DEFAULT MMR_sequence_nextval('seq_name')` to supply MMR-ready sequence values for future inserts. -See [Creating an MMR-Ready Sequence](../../../06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/#create_mmr_ready_sequence) for information on creating the objects required for an MMR-ready sequence. +See [Creating an MMR-Ready Sequence](01_create_mmr_ready_sequence/#create_mmr_ready_sequence) for information on creating the objects required for an MMR-ready sequence. diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/04_convert_to_mmr_ready_eg.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/04_convert_to_mmr_ready_eg.mdx index d2757f7f2de..254fb6ebabe 100644 --- a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/04_convert_to_mmr_ready_eg.mdx +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/04_convert_to_mmr_ready_eg.mdx @@ -4,12 +4,11 @@ title: "Conversion to an MMR-Ready Sequence Example" - This section describes a basic example of how two tables with standard sequences used as primary keys as well as a parent-child relationship by a foreign key constraint can be converted to use the MMR-ready sequence, then employed in a multi-master replication system. The tables are defined as follows: -``` text +```text CREATE TABLE MMR_seq_tbl ( id SERIAL PRIMARY KEY, field VARCHAR2(20) @@ -23,21 +22,12 @@ CREATE TABLE MMR_seq_child_tbl ( ); ``` -
      - -
      - -Note - -
      - -The foreign key constraint between columns `MMR_seq_child_tbl.parent_id` and `MMR_seq_tbl.id`. - -
      +!!! Note + The foreign key constraint between columns `MMR_seq_child_tbl.parent_id` and `MMR_seq_tbl.id`. The tables are populated with an initial set of rows: -``` text +```text INSERT INTO MMR_seq_tbl (field) VALUES ('MMRnode_a - Row 1'); INSERT INTO MMR_seq_tbl (field) VALUES ('MMRnode_a - Row 2'); INSERT INTO MMR_seq_tbl (field) VALUES ('MMRnode_a - Row 3'); @@ -52,7 +42,7 @@ INSERT INTO MMR_seq_child_tbl (field, parent_id) VALUES ('MMRnode_a - Row 3-2', The resulting table content is the following: -``` text +```text edb=# SELECT * FROM MMR_seq_tbl; id | field ----+------------------- @@ -83,13 +73,13 @@ In order to convert the existing sequence values in columns `MMR_seq_tbl.id`, `M Permit deferred updates to the foreign key constraint. -``` text +```text ALTER TABLE MMR_seq_child_tbl ALTER CONSTRAINT MMR_seq_tbl_fk DEFERRABLE INITIALLY DEFERRED; ``` Create the function to perform the sequence conversion. -``` text +```text CREATE OR REPLACE FUNCTION MMR_sequence_convert ( old_seq_value bigint ) @@ -105,7 +95,7 @@ $function$; Change the sequence columns to data type `BIGINT` so they are large enough for the MMR-ready sequence. -``` text +```text ALTER TABLE MMR_seq_tbl ALTER COLUMN id SET DATA TYPE BIGINT; ALTER TABLE MMR_seq_child_tbl ALTER COLUMN id SET DATA TYPE BIGINT; ALTER TABLE MMR_seq_child_tbl ALTER COLUMN parent_id SET DATA TYPE BIGINT; @@ -113,7 +103,7 @@ ALTER TABLE MMR_seq_child_tbl ALTER COLUMN parent_id SET DATA TYPE BIGINT; Set the unique database identifier to be used by the MMR-ready sequence. -``` text +```text ALTER DATABASE MMRnode_a SET cluster.unique_db_id TO 1; SET cluster.unique_db_id TO 1; ``` @@ -122,7 +112,7 @@ Update the primary key and foreign key values with the `MMR_sequence_convert` fu The updates affecting the foreign key constraint must be performed within the same transaction to avoid a foreign key violation error. -``` text +```text BEGIN TRANSACTION; UPDATE MMR_seq_tbl SET id = MMR_sequence_convert (id); UPDATE MMR_seq_child_tbl SET parent_id = MMR_sequence_convert (parent_id); @@ -132,13 +122,13 @@ COMMIT; Reset the foreign key constraint back to its original setting – for example: -``` text +```text ALTER TABLE MMR_seq_child_tbl ALTER CONSTRAINT MMR_seq_tbl_fk NOT DEFERRABLE; ``` After the conversion to the MMR-ready sequence, the table content is as follows: -``` text +```text edb=# SELECT * FROM MMR_seq_tbl; id | field ------------------+------------------- @@ -165,15 +155,15 @@ The primary key id values incorporate the old sequence values, but are increased **Setting Up the MMR-Ready Sequence** -The steps as described in Section [Creating an MMR-Ready Sequence](../../../06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/#create_mmr_ready_sequence) are now performed on the databases to be used as primary nodes. For database MMRnode\_a that contains the converted tables, a new sequence is created with a starting value of 7 to avoid a primary key uniqueness conflict with the existing rows. In the original tables, the maximum used sequence value was 6. When a sequence number is transformed to an MMR-ready sequence value, the same result is returned if the same database identifier is used with the same original number. +The steps as described in Section [Creating an MMR-Ready Sequence](01_create_mmr_ready_sequence/#create_mmr_ready_sequence) are now performed on the databases to be used as primary nodes. For database MMRnode_a that contains the converted tables, a new sequence is created with a starting value of 7 to avoid a primary key uniqueness conflict with the existing rows. In the original tables, the maximum used sequence value was 6. When a sequence number is transformed to an MMR-ready sequence value, the same result is returned if the same database identifier is used with the same original number. -``` text +```text CREATE SEQUENCE MMR_seq START WITH 7 INCREMENT BY 1 NO CYCLE; ``` Create the function to return the MMR-ready sequence value. -``` text +```text CREATE OR REPLACE FUNCTION MMR_sequence_nextval ( seq_id VARCHAR ) @@ -190,14 +180,14 @@ $function$; Alter the primary key columns to use the function to return the default value. -``` text +```text ALTER TABLE MMR_seq_tbl ALTER COLUMN id SET DEFAULT MMR_sequence_nextval('MMR_seq'); ALTER TABLE MMR_seq_child_tbl ALTER COLUMN id SET DEFAULT MMR_sequence_nextval('MMR_seq'); ``` Repeat the MMR-ready sequence setup process for the other primary nodes. -``` text +```text ALTER DATABASE MMRnode_b SET cluster.unique_db_id TO 2; SET cluster.unique_db_id TO 2; @@ -219,7 +209,7 @@ $function$; Repeat the process for `MMRnode_c`. -``` text +```text ALTER DATABASE MMRnode_c SET cluster.unique_db_id TO 3; SET cluster.unique_db_id TO 3; @@ -241,11 +231,11 @@ $function$; **Tables After Initial Multi-Master Replication System Creation** -The multi-master replication system is created using databases `MMRnode_a`, `MMRnode_b`, and `MMRnode_c` in a similar manner as described in Section [MMR-Ready Sequence Example](../../../06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/#mmr_ready_example). +The multi-master replication system is created using databases `MMRnode_a`, `MMRnode_b`, and `MMRnode_c` in a similar manner as described in Section [MMR-Ready Sequence Example](02_mmr_ready_example/#mmr_ready_example). After the system is created with the initial snapshot, `MMRnode_a, MMRnode_b`, and `MMRnode_c` all contain identical content. The following is the table content: -``` text +```text MMRnode_a=# SELECT * FROM MMR_seq_tbl; id | field ------------------+------------------- @@ -270,7 +260,7 @@ MMRnode_a=# SELECT * FROM MMR_seq_child_tbl; The following rows are inserted on `MMRnode_a`: -``` text +```text INSERT INTO MMR_seq_tbl (field) VALUES ('MMRnode_a - Row 4'); INSERT INTO MMR_seq_child_tbl (field, parent_id) VALUES ('MMRnode_a - Row 4-1', 4503599627370503); @@ -298,7 +288,7 @@ MMRnode_a=# SELECT * FROM MMR_seq_child_tbl ORDER BY id; The following rows are inserted on `MMRnode_b`: -``` text +```text INSERT INTO MMR_seq_tbl (field) VALUES ('MMRnode_b - Row 1'); INSERT INTO MMR_seq_child_tbl (field, parent_id) VALUES ('MMRnode_b - Row 1-1', 9007199254740993); @@ -352,7 +342,7 @@ After a synchronization replication is performed, there are no uniqueness confli Content of `MMRnode_a` after synchronization: -``` text +```text MMRnode_a=# SELECT * FROM MMR_seq_tbl ORDER BY id; id | field -------------------+------------------- @@ -381,7 +371,7 @@ MMRnode_a=# SELECT * FROM MMR_seq_child_tbl ORDER BY id; Content of `MMRnode_b` after synchronization: -``` text +```text MMRnode_b=# SELECT * FROM MMR_seq_tbl ORDER BY id; id | field -------------------+------------------- @@ -410,7 +400,7 @@ MMRnode_b=# SELECT * FROM MMR_seq_child_tbl ORDER BY id; Content of `MMRnode_c` after synchronization: -``` text +```text MMRnode_c=# SELECT * FROM MMR_seq_tbl ORDER BY id; id | field -------------------+------------------- diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/index.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/index.mdx index 804ba6dc7bf..1ea01e2dee3 100644 --- a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/index.mdx +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/index.mdx @@ -4,7 +4,6 @@ title: "Conflict Prevention with an MMR-Ready Sequence" - To prevent uniqueness conflicts in a multi-master replication system, an MMR-ready sequence can be used to generate unique identifiers for each row of publication tables that do not have an inherent, unique identifier. An MMR-ready sequence incorporates a function and a sequence to return `BIGINT` data type, integer values. These values combine a user-assigned, unique database identifier for each primary node with a sequence generated within that primary node. @@ -18,10 +17,10 @@ An MMR-ready sequence satisfies the following characteristics: - `Effective migration support`. Tables already utilizing a sequence can be modified to use an MMR-ready sequence with minimal impact on existing primary keys and foreign keys. - `Reliability and maintainability`. In summary, an MMR-ready sequence provides a reliable and maintainable method to avoid uniqueness conflicts. -The following sections provide the steps for creating an MMR-ready sequence followed by an example. The conversion process for existing sequences is described in Section [Converting a Standard Sequence to an MMR-Ready Sequence](../../06_mmr_operation/06_conflict_resolution/06_conflict_prevention_mmr_ready/#convert_to_mmr_ready). +The following sections provide the steps for creating an MMR-ready sequence followed by an example. The conversion process for existing sequences is described in Section [Converting a Standard Sequence to an MMR-Ready Sequence](03_convert_to_mmr_ready/#convert_to_mmr_ready).
      -create\_mmr\_ready\_sequence mmr\_ready\_example convert\_to\_mmr\_ready convert\_to\_mmr\_ready\_eg +create_mmr_ready_sequence mmr_ready_example convert_to_mmr_ready convert_to_mmr_ready_eg
      diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/07_auto_conflict_resolution_eg.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/07_auto_conflict_resolution_eg.mdx index 0729517d232..c30b3c0de7a 100644 --- a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/07_auto_conflict_resolution_eg.mdx +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/07_auto_conflict_resolution_eg.mdx @@ -4,20 +4,19 @@ title: "Automatic Conflict Resolution Example" - This example illustrates a scenario where a transaction change originating from the first primary node is successfully applied to the second primary node, but conflicts with the third primary node. The conflict is resolved automatically. The conflict resolution option is set to latest timestamp. -> | | | | | | -> |--------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------|---------------------------------------------|---------------------------------------------| -> | **Timestamp** `t0` | **Action** | **Primary node A** id = 2, address = 'ADDR' | **Primary node B** id = 2, address = 'ADDR' | **Primary node C** id = 2, address = 'ADDR' | -> | `t1` | **Node A:** UPDATE addrbook SET address = 'ADDR A' WHERE id = 2; | id = 2, address = **'ADDR A'** | id = 2, address = 'ADDR' | id = 2, address = 'ADDR' | -> | `t2` | **Node C:** UPDATE addrbook SET address = 'ADDR C' WHERE id = 2; | id = 2, address = 'ADDR A' | id = 2, address = 'ADDR' | id = 2, address = **'ADDR C'** | -> | `t3` | Synchronization pushes Node A changes to Node B. Changes successfully applied. | id = 2, address = 'ADDR A' | id = 2, address = **'ADDR A'** | id = 2, address = 'ADDR C' | -> | `t4` | Synchronization pushes Node A changes to Node C. Current address on Node C <> old value on Node A ('ADDR C' <> 'ADDR') hence conflict detected. Latest change on Node C accepted and Node A change discarded. | id = 2, address = 'ADDR A' | id = 2, address = 'ADDR A' | id = 2, address = **'ADDR C'** | -> | `t5` | No changes on Node B. Node C changes pushed to Node A that is successfully applied (Node A change already marked as discarded and hence is overwritten.) | id = 2, address = **'ADDR C'** | id = 2, address = 'ADDR A' | id = 2, address = 'ADDR C' | -> | `t6` | Node C changes pushed to Node B that is successfully applied. All nodes are in sync and have consistent state. | id = 2, address = 'ADDR C' | id = 2, address = **'ADDR C'** | id = 2, address = 'ADDR C' | +> | | | | | | +> | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------- | ------------------------------------------- | ------------------------------------------- | +> | **Timestamp** `t0` | **Action** | **Primary node A** id = 2, address = 'ADDR' | **Primary node B** id = 2, address = 'ADDR' | **Primary node C** id = 2, address = 'ADDR' | +> | `t1` | **Node A:** UPDATE addrbook SET address = 'ADDR A' WHERE id = 2; | id = 2, address = **'ADDR A'** | id = 2, address = 'ADDR' | id = 2, address = 'ADDR' | +> | `t2` | **Node C:** UPDATE addrbook SET address = 'ADDR C' WHERE id = 2; | id = 2, address = 'ADDR A' | id = 2, address = 'ADDR' | id = 2, address = **'ADDR C'** | +> | `t3` | Synchronization pushes Node A changes to Node B. Changes successfully applied. | id = 2, address = 'ADDR A' | id = 2, address = **'ADDR A'** | id = 2, address = 'ADDR C' | +> | `t4` | Synchronization pushes Node A changes to Node C. Current address on Node C <> old value on Node A ('ADDR C' <> 'ADDR') hence conflict detected. Latest change on Node C accepted and Node A change discarded. | id = 2, address = 'ADDR A' | id = 2, address = 'ADDR A' | id = 2, address = **'ADDR C'** | +> | `t5` | No changes on Node B. Node C changes pushed to Node A that is successfully applied (Node A change already marked as discarded and hence is overwritten.) | id = 2, address = **'ADDR C'** | id = 2, address = 'ADDR A' | id = 2, address = 'ADDR C' | +> | `t6` | Node C changes pushed to Node B that is successfully applied. All nodes are in sync and have consistent state. | id = 2, address = 'ADDR C' | id = 2, address = **'ADDR C'** | id = 2, address = 'ADDR C' | > > There are a few situations where an update/update conflict may not be properly resolved according to the selected resolution options. These exceptions are described by the following. @@ -27,7 +26,7 @@ If there is an update to a publication table where the updated column value happ For example, consider the following row in the `dept` table: -``` text +```text deptno | dname | loc --------+------------+-------- 40 | OPERATIONS | BOSTON @@ -41,21 +40,12 @@ edb=# SELECT * FROM dept WHERE deptno = 40; (1 row) ``` -
      - -
      - -Note - -
      - -The original value, OPERATIONS, of column `dname` is the same as the value to which it is changed in the `UPDATE` statement. - -
      +!!! Note + The original value, OPERATIONS, of column `dname` is the same as the value to which it is changed in the `UPDATE` statement. The following `UPDATE` statement is then given in a second primary node: -``` text +```text MMRnode=# UPDATE dept SET dname = 'LOGISTICS', loc = 'CAMBRIDGE' WHERE deptno = 40; UPDATE 1 MMRnode=# SELECT * FROM dept WHERE deptno = 40; @@ -67,7 +57,7 @@ MMRnode=# SELECT * FROM dept WHERE deptno = 40; After a synchronization replication using the earliest timestamp conflict resolution option, the row in the primary definition node retains the update performed on it as expected since the update on the primary definition node occurred first. -``` text +```text edb=# SELECT * FROM dept WHERE deptno = 40; deptno | dname | loc --------+------------+--------- @@ -77,7 +67,7 @@ edb=# SELECT * FROM dept WHERE deptno = 40; However the value of column `dname` in the second primary node remains set to LOGISTICS. It was not reverted back to the value `OPERATIONS` from the primary definition node as would normally be expected on a conflicting column. Note that as expected, the value in column `loc` is reverted from CAMBRIDGE back to the primary definition node value of `BEDFORD`. -``` text +```text MMRnode=# SELECT * FROM dept WHERE deptno = 40; deptno | dname | loc --------+-----------+--------- diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/08_custom_conflict_handling/01_custom_conflict_handling_function.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/08_custom_conflict_handling/01_custom_conflict_handling_function.mdx index 7839257f098..c38ab5cec29 100644 --- a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/08_custom_conflict_handling/01_custom_conflict_handling_function.mdx +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/08_custom_conflict_handling/01_custom_conflict_handling_function.mdx @@ -4,22 +4,21 @@ title: "Custom Conflict Handling Function" - An `update/update` conflict occurs if there is at least one conflicting column in the table. A column is considered a conflicting column if it is updated on more than one primary node in the same synchronization. Even if the new, updated value for the column is identical in the conflicting update transactions, the fact that the same column was updated on more than one primary node makes it a conflicting column. Each publication table must have its own custom conflict handling function to handle custom resolution for update/update conflicts on that particular publication table. -Custom conflict handling is designed to provide one of the following three outcomes based upon the setting of the resolution\_code parameter, which is described later in this section. +Custom conflict handling is designed to provide one of the following three outcomes based upon the setting of the resolution_code parameter, which is described later in this section. -- **Columns are to be set to the source node.** When the resolution\_code parameter of the function is set to a value of 1, the resultant setting of all columns in both conflicting nodes is obtained from the source node of the replication. -- **Columns are to be set to the target node.** When the resolution\_code parameter of the function is set to a value of 2, the resultant setting of all columns in both conflicting nodes is obtained from the target node of the replication. -- **The function logic sets the column.** When the resolution\_code parameter of the function is set to a value of 3, the resultant setting of the first conflicting column is obtained from the value returned in the source parameter coded within the function logic. The resultant setting of all other column values is obtained from the source node of the replication. +- **Columns are to be set to the source node.** When the resolution_code parameter of the function is set to a value of 1, the resultant setting of all columns in both conflicting nodes is obtained from the source node of the replication. +- **Columns are to be set to the target node.** When the resolution_code parameter of the function is set to a value of 2, the resultant setting of all columns in both conflicting nodes is obtained from the target node of the replication. +- **The function logic sets the column.** When the resolution_code parameter of the function is set to a value of 3, the resultant setting of the first conflicting column is obtained from the value returned in the source parameter coded within the function logic. The resultant setting of all other column values is obtained from the source node of the replication. The following is an example of a custom conflict handling function where the conflicting columns are set to the target node. -``` text +```text CREATE OR REPLACE FUNCTION edb.custom_conflict_dept ( INOUT source _edb_replicator_pub.rrst_edb_dept, IN target _edb_replicator_pub.rrst_edb_dept, @@ -40,7 +39,7 @@ LANGUAGE plpgsql; If the multi-master replication system is configured with the log-based method of synchronization replication the shadow tables of the `INOUT` source and `IN` target parameters are replaced with the actual publication tables as shown by the following: -``` text +```text CREATE OR REPLACE FUNCTION edb.custom_conflict_dept ( INOUT source edb.dept, IN target edb.dept, @@ -61,7 +60,7 @@ LANGUAGE plpgsql; The following is an example of a custom conflict handling function where the function logic determines the value of the first conflicting column. -``` text +```text CREATE OR REPLACE FUNCTION edb.custom_conflict_emp ( INOUT source _edb_replicator_pub.rrst_edb_emp, IN target _edb_replicator_pub.rrst_edb_emp, @@ -94,7 +93,7 @@ The following is a description of the function parameters. `source` -> `INOUT` parameter of the record type of the shadow table in schema `_edb_replicator_pub` of the primary definition node on which conflicts are to be resolved. If the log-based method of synchronization replication is used, specify the actual publication table instead of the shadow table. The input values are the column values from the source node. When resolution\_code is set to a value of 3, set the columns in this parameter to the values that are to be used for the final outcome. +> `INOUT` parameter of the record type of the shadow table in schema `_edb_replicator_pub` of the primary definition node on which conflicts are to be resolved. If the log-based method of synchronization replication is used, specify the actual publication table instead of the shadow table. The input values are the column values from the source node. When resolution_code is set to a value of 3, set the columns in this parameter to the values that are to be used for the final outcome. `target` @@ -106,7 +105,7 @@ The following is a description of the function parameters. `resolution_message` -> OUT parameter of type VARCHAR(255) containing any informative message to be written to the publication server log file. The publication server configuration option logging.level must be set to at least the INFO level in order for the messages to appear in the publication server log file. See Section [Post Installation Host Environment](../../../03_installation/#post_installation_host_environment) for the location of the publication server log file. +> OUT parameter of type VARCHAR(255) containing any informative message to be written to the publication server log file. The publication server configuration option logging.level must be set to at least the INFO level in order for the messages to appear in the publication server log file. See Section [Post Installation Host Environment](../../../03_installation/05_post_installation_host_environment/#post_installation_host_environment) for the location of the publication server log file. `resolution_code` diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/08_custom_conflict_handling/02_adding_custom_conflict_handling_function.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/08_custom_conflict_handling/02_adding_custom_conflict_handling_function.mdx index ceefe74ef66..128168204de 100644 --- a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/08_custom_conflict_handling/02_adding_custom_conflict_handling_function.mdx +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/08_custom_conflict_handling/02_adding_custom_conflict_handling_function.mdx @@ -4,14 +4,13 @@ title: "Adding a Custom Conflict Handling Function" - The following are the steps to add a custom conflict handling function to the primary definition node. -**Step 1:** The publication under the primary definition node must exist before adding the function to the primary definition node. See [Adding a Publication](../../../06_mmr_operation/#add_pub_mmr) for information on creating the publication. +**Step 1:** The publication under the primary definition node must exist before adding the function to the primary definition node. See [Adding a Publication](../../02_creating_publication_mmr/#add_pub_mmr) for information on creating the publication. **Step 2:** Add the function to the primary definition node. The following example shows the addition of the function using PSQL. -``` text +```text edb=# \i /home/user/custom_conflict_dept.sql CREATE FUNCTION ``` @@ -31,32 +30,14 @@ CREATE FUNCTION ![Successfully updated conflict resolution options](/../../../images/image141.png) -
      - -
      - -Note - -
      - -If the multi-master replication system uses custom conflict handling, and you subsequently switch the role of the primary definition node to another primary node, you must re-add the functions to the new primary definition node. That is, you must repeat Step 2 on the new primary definition node. - -
      - -
      - -
      - -Note - -
      - -If you wish to delete the multi-master replication system, before removing the publication you must drop all custom conflict handling functions from the primary definition node. +!!! Note + If the multi-master replication system uses custom conflict handling, and you subsequently switch the role of the primary definition node to another primary node, you must re-add the functions to the new primary definition node. That is, you must repeat Step 2 on the new primary definition node. -
      +!!! Note + If you wish to delete the multi-master replication system, before removing the publication you must drop all custom conflict handling functions from the primary definition node. The following example shows the deletion of a custom conflict function. -``` text +```text DROP FUNCTION edb.custom_conflict_dept(_edb_replicator_pub.rrst_edb_dept,_edb_replicator_pub.rrst_edb_dept,varchar); ``` diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/08_custom_conflict_handling/03_custom_conflict_handling_examples.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/08_custom_conflict_handling/03_custom_conflict_handling_examples.mdx index 619426b860b..673204c09b1 100644 --- a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/08_custom_conflict_handling/03_custom_conflict_handling_examples.mdx +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/08_custom_conflict_handling/03_custom_conflict_handling_examples.mdx @@ -4,16 +4,15 @@ title: "Custom Conflict Handling Examples" - This section contains examples using custom conflict handling functions. **Setting Columns from the Source or Target** -The following example shows the effect of custom conflict handling using the custom conflict handling function named `custom_conflict_dept` shown in Section [Custom Conflict Handling Function](../../../06_mmr_operation/06_conflict_resolution/08_custom_conflict_handling/#custom_conflict_handling_function). This function sets the target node as the winner of `update/update` conflicts on the dept table. +The following example shows the effect of custom conflict handling using the custom conflict handling function named `custom_conflict_dept` shown in Section [Custom Conflict Handling Function](01_custom_conflict_handling_function/#custom_conflict_handling_function). This function sets the target node as the winner of `update/update` conflicts on the dept table. The following update is made on the primary definition node, `edb`: -``` text +```text edb=# UPDATE dept SET loc = 'PORTLAND' WHERE deptno = 50; UPDATE 1 edb=# SELECT * FROM dept; @@ -29,7 +28,7 @@ edb=# SELECT * FROM dept; The following update is made on a second primary node, `MMRnode`: -``` text +```text MMRnode=# UPDATE dept SET loc = 'LOS ANGELES' WHERE deptno = 50; UPDATE 1 MMRnode=# SELECT * FROM dept; @@ -49,7 +48,7 @@ After a synchronization replication, the update/update conflict is detected and In the source primary node the `loc` column of department 50 loses the value set in its UPDATE statement. The column is reset to the value from the target primary node. -``` text +```text edb=# SELECT * FROM dept; deptno | dname | loc --------+-------------+------------- @@ -63,7 +62,7 @@ edb=# SELECT * FROM dept; In the target primary node the `loc` column of department 50 retains the value set from its `UPDATE` statement. -``` text +```text MMRnode=# SELECT * FROM dept; deptno | dname | loc --------+-------------+------------- @@ -75,15 +74,15 @@ MMRnode=# SELECT * FROM dept; (5 rows) ``` -The target node wins the conflict as determined by the setting of the resolution\_code parameter to a value of 2 in the custom conflict handling function. +The target node wins the conflict as determined by the setting of the resolution_code parameter to a value of 2 in the custom conflict handling function. **Setting Columns from the Function Logic** -The following example shows the effect of custom conflict handling using the custom conflict handling function named `custom_conflict_emp` shown in Section [Custom Conflict Handling Function](../../../06_mmr_operation/06_conflict_resolution/08_custom_conflict_handling/#custom_conflict_handling_function). This function sets values coded in the function as the winner of update/update conflicts on the `emp` table. +The following example shows the effect of custom conflict handling using the custom conflict handling function named `custom_conflict_emp` shown in Section [Custom Conflict Handling Function](01_custom_conflict_handling_function/#custom_conflict_handling_function). This function sets values coded in the function as the winner of update/update conflicts on the `emp` table. The following is the row from the `emp` table prior to the update: -``` text +```text edb=# edb=# SELECT * FROM emp WHERE empno = 9001; empno | ename | job | mgr | hiredate | sal | comm | deptno -------+-------+----------+------+--------------------+---------+---------+-------- @@ -93,7 +92,7 @@ edb=# edb=# SELECT * FROM emp WHERE empno = 9001; The following update is made in the primary definition node, `edb`: -``` text +```text edb=# UPDATE emp SET ename = 'JONES', mgr = 7900, sal = 8500, comm = 5000 WHERE empno = 9001; UPDATE 1 edb=# SELECT * FROM emp WHERE empno = 9001; @@ -105,7 +104,7 @@ edb=# SELECT * FROM emp WHERE empno = 9001; The following update is made in a second primary node, `MMRnode`: -``` text +```text MMRnode=# UPDATE emp SET ename = 'ROGERS', mgr = 7788, sal = 9500, comm = 5000 WHERE empno = 9001; UPDATE 1 MMRnode=# SELECT * FROM emp WHERE empno = 9001; @@ -117,7 +116,7 @@ MMRnode=# SELECT * FROM emp WHERE empno = 9001; After the synchronization replication the primary node, `edb`, contains the following values for the conflicting row: -``` text +```text edb=# SELECT * FROM emp WHERE empno = 9001; empno | ename | job | mgr | hiredate | sal | comm | deptno -------+---------+----------+------+--------------------+---------+---------+-------- @@ -127,7 +126,7 @@ empno | ename | job | mgr | hiredate | sal | comm | dep After the synchronization replication the primary node, `MMRnode`, contains the following values for the conflicting row: -``` text +```text MMRnode=# SELECT * FROM emp WHERE empno = 9001; empno | ename | job | mgr | hiredate | sal | comm | deptno -------+---------+----------+------+--------------------+---------+---------+-------- @@ -141,21 +140,12 @@ The value of the first conflicting column is determined by the custom conflict h The following example shows how values from the source and target shadow tables can be used to set the final values in the conflicting column. -
      - -
      - -Note - -
      - -As this custom conflict handling function uses a column (`rrep_old_quantity` in this example) that is a column of the shadow table and not of the actual publication table, this particular solution cannot be used for a publication using the log-based method of synchronization replication. - -
      +!!! Note + As this custom conflict handling function uses a column (`rrep_old_quantity` in this example) that is a column of the shadow table and not of the actual publication table, this particular solution cannot be used for a publication using the log-based method of synchronization replication. For this example, the following table is used, which contains product inventory. -``` text +```text CREATE TABLE inventory ( item_id NUMERIC PRIMARY KEY, name VARCHAR(20), @@ -170,7 +160,7 @@ When products are purchased at different locations, resulting in an inventory re The following example uses primary definition node, `edb`, and a second primary node, `MMRnode`. Initially, the inventory table has the same contents on both primary nodes. -``` text +```text edb=# SELECT * FROM inventory; item_id | name | quantity ---------+----------------------+---------- @@ -182,7 +172,7 @@ edb=# SELECT * FROM inventory; After creation of the primary nodes, the following shows the resulting shadow table structures in the primary definition node: -``` text +```text edb=# \d _edb_replicator_pub.rrst_edb_inventory; Table "_edb_replicator_pub.rrst_edb_inventory" Column | Type | Modifiers @@ -204,7 +194,7 @@ Indexes: Similarly, in the second primary node the same shadow table is created. -``` text +```text MMRnode=# \d _edb_replicator_pub.rrst_edb_inventory Table "_edb_replicator_pub.rrst_edb_inventory" Column | Type | Modifiers @@ -228,7 +218,7 @@ For an update transaction, the shadow table contains the column values before th The custom conflict handling function uses both the current and old values of the quantity columns from the source and target shadow tables as shown by the following. -``` text +```text CREATE OR REPLACE FUNCTION edb.custom_conflict_inventory ( INOUT source _edb_replicator_pub.rrst_edb_inventory, IN target _edb_replicator_pub.rrst_edb_inventory, @@ -252,7 +242,7 @@ LANGUAGE plpgsql; Assume two items with `item_id` of 1 are purchased on the primary definition node: -``` text +```text edb=# UPDATE inventory SET quantity = quantity - 2 WHERE item_id = 1; UPDATE 1 edb=# SELECT * FROM inventory WHERE item_id = 1; @@ -264,7 +254,7 @@ edb=# SELECT * FROM inventory WHERE item_id = 1; Also assume one item with `item_id` of 1 is purchased from the second primary node: -``` text +```text MMRnode=# UPDATE inventory SET quantity = quantity - 1 WHERE item_id = 1; UPDATE 1 MMRnode=# SELECT * FROM inventory WHERE item_id = 1; @@ -276,7 +266,7 @@ MMRnode=# SELECT * FROM inventory WHERE item_id = 1; After the synchronization replication and invocation of the custom conflict handling function, the quantity column for `item_id` 1 is correctly set to 47 in both primary nodes: -``` text +```text edb=# SELECT * FROM inventory WHERE item_id = 1; item_id | name | quantity ---------+----------------------+---------- diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/08_custom_conflict_handling/index.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/08_custom_conflict_handling/index.mdx index 62efd18311b..6f440d4e923 100644 --- a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/08_custom_conflict_handling/index.mdx +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/08_custom_conflict_handling/index.mdx @@ -4,13 +4,12 @@ title: "Custom Conflict Handling" - For `update/update` conflicts, custom conflict handling utilizes a PL/pgSQL function to resolve the conflict. If you are using Advanced Server, a Stored Procedure Language (SPL) function can be used as well. When an update/update conflict is detected the function is called. How you set a certain parameter in the function determines the outcome of the conflict. You must provide the function and add it to the primary definition node using a utility such as PSQL or pgAdmin (Postgres Enterprise Manager Client in Advanced Server).
      -custom\_conflict\_handling\_function adding\_custom\_conflict\_handling\_function custom\_conflict\_handling\_examples +custom_conflict_handling_function adding_custom_conflict_handling_function custom_conflict_handling_examples
      diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/01_find_conflict.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/01_find_conflict.mdx index fa58a7cc84f..bc9390023be 100644 --- a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/01_find_conflict.mdx +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/01_find_conflict.mdx @@ -4,8 +4,7 @@ title: "Finding Conflicts" - -Conflicts can be found using the `Conflict History` tab as described in Section [Viewing Conflict History](../../../06_mmr_operation/#view_conflict_history). The following is an example of the Conflict History tab. Click the Refresh button to reveal all of the latest conflicts. +Conflicts can be found using the `Conflict History` tab as described in Section [Viewing Conflict History](../../07_view_conflict_history/#view_conflict_history). The following is an example of the Conflict History tab. Click the Refresh button to reveal all of the latest conflicts. ![Conflict History tab for trigger-based method](/../../../images/image143.png) @@ -17,7 +16,7 @@ Click the `View Data link` to show the details of the transactions involved in a You can also obtain this information from a SQL query rather than from the xDB Replication Console graphical user interface. The following query can be run from a primary node to display information regarding pending (unresolved) conflicts: -``` text +```text SELECT DISTINCT conflict_type, t.table_name, @@ -41,7 +40,7 @@ ORDER BY t.table_name; Example output from the query is shown by the following: -``` text +```text -[ RECORD 1 ]-------+---------------------------------------------------------------- conflict_type | II table_name | dept diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/02_conflict_resolution_prep.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/02_conflict_resolution_prep.mdx index aa4db222129..edc18e8c14d 100644 --- a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/02_conflict_resolution_prep.mdx +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/02_conflict_resolution_prep.mdx @@ -4,7 +4,6 @@ title: "Conflict Resolution Preparation" - The following describes the setup of a database user with certain properties enabling you to modify the publication table rows for the purpose of manual conflict resolution. Manual conflict resolution typically requires modification of rows in one or more publication tables to correct erroneous entries. Such changes can be done using a utility such as PSQL or pgAdmin (Postgres Enterprise Manager Client in Advanced Server). @@ -13,7 +12,7 @@ Manual publication table corrections must usually be isolated – that is, these To prevent replication of changes to a publication table from occurring, the xDB Replication Server insert, update, and delete triggers on the publication tables must be prevented from firing when you make these corrections to the publication table rows. If any of the insert, update, or delete triggers fire, an entry is added to the publication table’s shadow table. This entry results in a transaction replicated to the other primary nodes the next time synchronization replication occurs. -To prevent the triggers on the publication tables from firing, during the session in which you modify the publication table rows, the database server configuration parameter session\_replication\_role must be set to a value of `replica`. (The default setting of `session_replication_role` is `origin` in which case the triggers will fire.) +To prevent the triggers on the publication tables from firing, during the session in which you modify the publication table rows, the database server configuration parameter session_replication_role must be set to a value of `replica`. (The default setting of `session_replication_role` is `origin` in which case the triggers will fire.) The suggested method to ensure the `replica` setting is in effect is to create a database user with a default session setting of `replica` for this parameter. Whenever you connect to a database with this database user, the `replica` setting will be in effect during this session. @@ -21,7 +20,7 @@ Connect to a primary node with this database user whenever you plan to make manu In the following example database superuser `MMRmaint` is created and altered for this purpose: -``` text +```text MMRnode_a=# CREATE ROLE MMRmaint WITH LOGIN SUPERUSER PASSWORD 'password'; CREATE ROLE MMRnode_a=# ALTER ROLE MMRmaint SET session_replication_role TO replica; @@ -30,7 +29,7 @@ ALTER ROLE When connected to a database with this database user, you can confirm this setting is in effect during the session by issuing the following command: -``` text +```text MMRnode_a=# SHOW session_replication_role; session_replication_role -------------------------- diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/03_overview_correction_strategies.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/03_overview_correction_strategies.mdx index 32f0ee750e1..74227f84afe 100644 --- a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/03_overview_correction_strategies.mdx +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/03_overview_correction_strategies.mdx @@ -4,16 +4,15 @@ title: "Overview of Correction Strategies" - Before you begin manual resolution correction, it is important to determine the extent of the inconsistencies that may have occurred in the publication tables across the primary nodes of the replication system. -The Conflict History tab and the SQL query described in Section [Finding Conflicts](../../../06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/#find_conflict) can help determine the source of an initial conflict. +The Conflict History tab and the SQL query described in Section [Finding Conflicts](01_find_conflict/#find_conflict) can help determine the source of an initial conflict. However, once this conflict has occurred, your replication system may have processed and replicated additional transactions during that synchronization operation. Some of these subsequent replications may have succeeded as expected, but others may have failed or produced unexpected results as a consequence of the prior conflict. If you have a replication schedule in effect, additional synchronization operations can occur, which may create additional conflicts. -Therefore, when you have discovered that a conflict has occurred, it is strongly recommended that you stop the publication server. Use the stop option of the Linux scripts or Windows services described in Step 1 of Section [Registering a Publication Server](../../../05_smr_operation/02_creating_publication/#registering_publication_server). +Therefore, when you have discovered that a conflict has occurred, it is strongly recommended that you stop the publication server. Use the stop option of the Linux scripts or Windows services described in Step 1 of Section [Registering a Publication Server](../../../05_smr_operation/02_creating_publication/01_registering_publication_server/#registering_publication_server). In this way, you can carefully analyze the content of the publication tables in question as well as any pending transactions in the shadow tables to determine the best course of action to take without the interference of continuing updates by a running replication system. @@ -31,9 +30,9 @@ The general steps to resolving the problem following this analysis are the follo **Step 3:** In the shadow tables, update certain indicators for conflicting entries to show that these were resolved in Step 2. -**Step 4:** In the control schema, update certain indicators for the conflicting entries to show that these conflicts have been resolved. This update changes the Resolution Status of these entries to Resolved in the Conflict History tab. These entries will no longer appear in the SQL query described in Section [Finding Conflicts](../../../06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/#find_conflict). +**Step 4:** In the control schema, update certain indicators for the conflicting entries to show that these conflicts have been resolved. This update changes the Resolution Status of these entries to Resolved in the Conflict History tab. These entries will no longer appear in the SQL query described in Section [Finding Conflicts](01_find_conflict/#find_conflict). -Perform the Step 4 updates to the control schema of the controller database. The currently designated controller database can be determined from the content of the xDB Replication Configuration file (see Section [xDB Replication Configuration File](../../../02_overview/03_replication_server_components_and_architecture/#xdb_replication_conf_file)). The publication server ensures that the control schema changes made on the controller database are replicated to the control schemas of all publication databases to maintain metadata consistency across all publication databases. +Perform the Step 4 updates to the control schema of the controller database. The currently designated controller database can be determined from the content of the xDB Replication Configuration file (see Section [xDB Replication Configuration File](../../../02_overview/03_replication_server_components_and_architecture/01_physical_components/#xdb_replication_conf_file)). The publication server ensures that the control schema changes made on the controller database are replicated to the control schemas of all publication databases to maintain metadata consistency across all publication databases. **Step 5:** Resume operation of your replication system. Start the publication server and recreate the replication schedule if you were using one. @@ -53,13 +52,13 @@ For purposes of illustration, the following replication environment is used. On `MMRnode_a`, the following statement is run: -``` text +```text INSERT INTO dept VALUES (50, 'FINANCE', 'CHICAGO'); ``` On `MMRnode_b`, the following statement is run: -``` text +```text INSERT INTO dept VALUES (50, 'MARKETING', 'LOS ANGELES'); ``` @@ -67,7 +66,7 @@ A synchronization replication is then performed. The following is the content of table dept on `MMRnode_a`: -``` text +```text MMRnode_a=# SELECT * FROM dept; deptno | dname | loc --------+------------+---------- @@ -81,7 +80,7 @@ MMRnode_a=# SELECT * FROM dept; The following is the content of table dept on `MMRnode_b`: -``` text +```text MMRnode_b=# SELECT * FROM dept; deptno | dname | loc --------+------------+------------- @@ -95,7 +94,7 @@ MMRnode_b=# SELECT * FROM dept; The following is the content of table dept on `MMRnode_c`: -``` text +```text MMRnode_c=# SELECT * FROM dept; deptno | dname | loc --------+------------+---------- @@ -110,9 +109,9 @@ The Conflict History tab shows the following entry: ![Conflict History tab with a uniqueness conflict](/../../../images/image145.png) -The following is the output from the SQL query described in Section [Finding Conflicts](../../../06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/#find_conflict). +The following is the output from the SQL query described in Section [Finding Conflicts](01_find_conflict/#find_conflict). -``` text +```text -[ RECORD 1 ]-------+---------------------------------------------------------------- conflict_type | II table_name | dept diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/04_manual_publication_table_correction.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/04_manual_publication_table_correction.mdx index c55c2992c27..7f3f0be055d 100644 --- a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/04_manual_publication_table_correction.mdx +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/04_manual_publication_table_correction.mdx @@ -4,7 +4,6 @@ title: "Manual Publication Table Correction" - The first step required in all manual conflict resolutions is to ensure all publication tables are consistent across all primary nodes – that is, all corresponding tables have the same rows with the same column values. Once this state is achieved, you can then reapply transactions that may have failed to replicate successfully. @@ -14,7 +13,7 @@ In the preceding example, the inconsistencies are the following: - Primary nodes `MMRnode_a` and `MMRnode_b` each contain a row with primary key value 50, but the other column values in the row are different. - Primary node `MMRnode_c` does not have a row with primary key value 50. -Assuming that the correct state of the dept table should be the one in MMRnode\_b, the following options are available to correct the state of all primary nodes: +Assuming that the correct state of the dept table should be the one in MMRnode_b, the following options are available to correct the state of all primary nodes: - Manually correct the dept table in `MMRnode_a` and `MMRnode_c`. That is, update the row in `MMRnode_a` so it has the correct values, and insert the missing row in `MMRnode_c`. The dept table on all nodes is now consistent and up-to-date. - Manually delete the row with primary key value 50 from the table on both `MMRnode_a` and `MMRnode_b`. This brings the dept table on all primary nodes back to a prior, consistent state. Then, with the multi-master replication system running, perform the insert transaction again using the correct column values on any one of the primary nodes. @@ -30,7 +29,7 @@ The method outlined by the first bullet point is accomplished as follows. On `MMRnode_a`, correct the erroneous row: -``` text +```text MMRnode_a=# SHOW session_replication_role; session_replication_role -------------------------- @@ -64,7 +63,7 @@ MMRnode_a=# SELECT * FROM dept ORDER BY deptno; On `MMRnode_c`, insert the missing row: -``` text +```text MMRnode_c=# SHOW session_replication_role; session_replication_role -------------------------- @@ -87,7 +86,7 @@ MMRnode_c=# SELECT * FROM dept ORDER BY deptno; The dept table on `MMRnode_a` and `MMRnode_c` now match the content of the table on `MMRnode_b`: -``` text +```text MMRnode_b=# SELECT * FROM dept ORDER BY deptno; deptno | dname | loc --------+------------+------------- @@ -107,9 +106,9 @@ Note the following points regarding shadow tables: - The primary key of a shadow table is a program generated, positive integer in `column rrep_sync_id`. The `rrep_sync_id` values are unique amongst all shadow tables within a given primary node. Therefore, the `rrep_sync_id` values for conflicting transactions may or may not have the same value across primary nodes as this depends upon how many prior transactions were recorded in the shadow tables of each primary node. - A shadow table entry for a transaction involved in a conflict that has not yet been resolved contains a value of P (pending) in column `rrep_tx_conflict_status`. If a transaction is not involved in a conflict, this column is set to null. (The vast majority of shadow table entries should have null in this column.) If a transaction was involved in a conflict that was resolved automatically by the publication server, and this transaction was accepted as being correct, this column contains C (complete/accepted). If a transaction was involved in a conflict that was resolved automatically, and this transaction was deemed incorrect, this column contains D (discarded). -To find the shadow table entries involved in a conflict, use the Conflict History tab or SQL query as described in Section [Finding Conflicts](../../../06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/#finding_conflict) and shown by the following output: +To find the shadow table entries involved in a conflict, use the Conflict History tab or SQL query as described in Section [Finding Conflicts](../10_manual_conflict_resolution_log_based_method/01_finding_conflict/#finding_conflict) and shown by the following output: -``` text +```text -[ RECORD 1 ]-------+---------------------------------------------------------------- conflict_type | II table_name | dept @@ -144,7 +143,7 @@ You can then query the shadow table in the desired primary node on its `rrep_syn The following query is performed on the shadow table for the dept table in `MMRnode_a` on `rrep_sync_id` value 2 obtained from field `src_rrep_sync_id` of RECORD 1 in the preceding output. -``` text +```text MMRnode_a=# SELECT * FROM _edb_replicator_pub.rrst_edb_dept WHERE rrep_sync_id = 2; -[ RECORD 1 ]-----------+-------------------------- rrep_sync_id | 2 @@ -162,7 +161,7 @@ rrep_tx_conflict_status | P A similar query can locate the pending shadow table entry in `MMRnode_b` by querying on the key value obtained from field `src_rep_sync_id: of RECORD 2:` -``` text +```text MMRnode_b=# SELECT * FROM _edb_replicator_pub.rrst_edb_dept WHERE rrep_sync_id = 1; -[ RECORD 1 ]-----------+-------------------------- rrep_sync_id | 1 @@ -178,17 +177,8 @@ rrep_old_loc | rrep_tx_conflict_status | P ``` -
      - -
      - -Note - -
      - -To be certain no pending transactions are overlooked, you should examine the shadow tables in all primary nodes that may have been involved in the conflict and search for entries where `rrep_tx_conflict_status` is set to `P`. - -
      +!!! Note + To be certain no pending transactions are overlooked, you should examine the shadow tables in all primary nodes that may have been involved in the conflict and search for entries where `rrep_tx_conflict_status` is set to `P`. The following shows the `rrep_tx_conflict_status` column marked `P` (pending) in the Postgres Enterprise Manager Client. @@ -202,7 +192,7 @@ Make this change to the shadow tables in both `MMRnode_a` and `MMRnode_b`. Be sure to qualify the row with the correct `rrep_sync_id` value if you perform the update using a SQL statement such as in the following: -``` text +```text UPDATE _edb_replicator_pub.rrst_edb_dept SET rrep_tx_conflict_status = 'D' WHERE rrep_sync_id = 1; ``` @@ -210,36 +200,27 @@ There is no shadow table entry in `MMRnode_c`, since an insert transaction was n **Step 3:** In the control schema of the publication database currently designated as the controller database, modify the entries in the `xdb_conflicts table to indicate the conflict has been resolved. Table xdb_conflicts` is located in schema `_edb_replicator_pub`. -
      - -
      - -Note - -
      - -The entries in table `xdb_conflicts` only affect the data that appears in the Conflict History tab and the SQL query described in Section [Finding Conflicts](../../../06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/#finding_conflict). Changing entries in xdb\_conflicts has no effect on future replication operations, but provides a way to keep a record of how past conflicts were resolved. - -
      +!!! Note + The entries in table `xdb_conflicts` only affect the data that appears in the Conflict History tab and the SQL query described in Section [Finding Conflicts](../10_manual_conflict_resolution_log_based_method/01_finding_conflict/#finding_conflict). Changing entries in xdb_conflicts has no effect on future replication operations, but provides a way to keep a record of how past conflicts were resolved. Note the following points regarding the `xdb_conflicts` table: -- A row in the xdb\_conflicts table appears as an entry in the Conflict History tab. -- The primary key of the xdb\_conflicts table is comprised of columns `src_db_id, target_db_id`, `src_rrep_sync_id`, and `target_rrep_sync_id`. Column src\_db\_id contains a unique identifier for the primary node in which a transaction occurred that results in a conflict when replicated to the primary node identified by target\_db\_id. `src_rrep_sync_id` is the shadow table identifier of the transaction on the source primary node involved in the conflict while target\_rrep\_sync\_id is the shadow table identifier of the transaction on the target primary node that is involved in the conflict. Note: For uniqueness (insert/insert) conflicts, the `target_rrep_sync_id` value is always set to 0. For a given uniqueness conflict, there are two entries in the xdb\_conflicts table. The `src_rrep_sync_id` value in each of the two entries corresponds to the shadow table identifiers – one for the shadow table identifier associated with the source primary node, the other for the shadow table identifier associated with the target primary node. -- Table `xdb_pub_database` in the control schema associates the database identifiers `src_db_id` and target\_db\_id with the primary node attributes such as the database name, IP address, and port. -- Column table\_id is the identifier of the publication table on which the conflict occurred. Association of the `table_id` value with the publication table attributes such as its name, schema, and shadow table is found in each primary node in `_edb_replicator_pub.rrep_tables`. -- For uniqueness (insert/insert) conflicts only, column pk\_value contains text indicating the primary key value that resulted in the conflict. The text is formatted as column\_name=value. If the primary key is composed of two or more columns, each column and value pair is separated by the keyword AND such as column\_1=value\_1 AND column\_2=value\_2. This provides the primary key of the row in the publication table designated by table\_id that resulted in the conflict. Note: Only uniqueness (insert/insert) conflicts contain the column\_name=value text in the pk\_value column. The pk\_value column is null for all other conflict types (that is, update/update, delete/update, update/delete, and delete/delete conflicts). -- Column resolution\_status indicates the status of the conflict. Possible values are P (pending) or C (completed – the conflict has been resolved). This status appears in the Resolution Status column of the Conflict History tab. -- Column win\_db\_id can be used to record the database identifier of the primary node that contains the `winning` (accepted) transaction. This information appears in the Winning DB column of the Conflict History tab. +- A row in the xdb_conflicts table appears as an entry in the Conflict History tab. +- The primary key of the xdb_conflicts table is comprised of columns `src_db_id, target_db_id`, `src_rrep_sync_id`, and `target_rrep_sync_id`. Column src_db_id contains a unique identifier for the primary node in which a transaction occurred that results in a conflict when replicated to the primary node identified by target_db_id. `src_rrep_sync_id` is the shadow table identifier of the transaction on the source primary node involved in the conflict while target_rrep_sync_id is the shadow table identifier of the transaction on the target primary node that is involved in the conflict. Note: For uniqueness (insert/insert) conflicts, the `target_rrep_sync_id` value is always set to 0. For a given uniqueness conflict, there are two entries in the xdb_conflicts table. The `src_rrep_sync_id` value in each of the two entries corresponds to the shadow table identifiers – one for the shadow table identifier associated with the source primary node, the other for the shadow table identifier associated with the target primary node. +- Table `xdb_pub_database` in the control schema associates the database identifiers `src_db_id` and target_db_id with the primary node attributes such as the database name, IP address, and port. +- Column table_id is the identifier of the publication table on which the conflict occurred. Association of the `table_id` value with the publication table attributes such as its name, schema, and shadow table is found in each primary node in `_edb_replicator_pub.rrep_tables`. +- For uniqueness (insert/insert) conflicts only, column pk_value contains text indicating the primary key value that resulted in the conflict. The text is formatted as column_name=value. If the primary key is composed of two or more columns, each column and value pair is separated by the keyword AND such as column_1=value_1 AND column_2=value_2. This provides the primary key of the row in the publication table designated by table_id that resulted in the conflict. Note: Only uniqueness (insert/insert) conflicts contain the column_name=value text in the pk_value column. The pk_value column is null for all other conflict types (that is, update/update, delete/update, update/delete, and delete/delete conflicts). +- Column resolution_status indicates the status of the conflict. Possible values are P (pending) or C (completed – the conflict has been resolved). This status appears in the Resolution Status column of the Conflict History tab. +- Column win_db_id can be used to record the database identifier of the primary node that contains the `winning` (accepted) transaction. This information appears in the Winning DB column of the Conflict History tab. - Column `win_rrep_sync_id` can be used to record the shadow table identifier of the winning transaction. The following shows the Conflict History tab prior to updating the `xdb_conflicts` table. ![Pending uniqueness conflict](/../../../images/image145.png) -The conflict entry for synchronization from `MMRnode_a` to `MMRnode_b` can be located in xdb\_conflicts with the following query for this example: +The conflict entry for synchronization from `MMRnode_a` to `MMRnode_b` can be located in xdb_conflicts with the following query for this example: -``` text +```text MMRnode_a=# SELECT * FROM _edb_replicator_pub.xdb_conflicts MMRnode_a-# WHERE src_db_id = 1 MMRnode_a-# AND target_db_id = 4 @@ -264,9 +245,9 @@ notes | ERROR: duplicate key value violates unique constraint "dep pk_value | deptno=50 ``` -The conflict entry for synchronization from `MMRnode_b` to `MMRnode_a` can be located in xdb\_conflicts with the following query for this example: +The conflict entry for synchronization from `MMRnode_b` to `MMRnode_a` can be located in xdb_conflicts with the following query for this example: -``` text +```text MMRnode_a=# SELECT * FROM _edb_replicator_pub.xdb_conflicts MMRnode_a-# WHERE src_db_id = 4 MMRnode_a-# AND target_db_id = 1 @@ -293,7 +274,7 @@ pk_value | deptno=50 For uniqueness `(insert/insert`) conflicts only, the following query can be used to display both of the preceding entries: -``` text +```text MMRnode_a=# SELECT * FROM _edb_replicator_pub.xdb_conflicts MMRnode_a-# WHERE pk_value = 'deptno=50' MMRnode_a-# AND conflict_type = 'II' @@ -338,11 +319,11 @@ These entries appear in the Postgres Enterprise Manager Client as shown by the f ![Pending conflict in xdb_conflicts](/../../../images/image147.png) -Change the value in column resolution\_status from P (pending) to C (completed) to indicate this conflict has been resolved. The value in winning\_db\_id is changed to 4 to indicate primary node `MMRnode_b` contains the winning transaction. The value in `winning_rrep_sync_id` is changed to the value of rrep\_sync\_id for the shadow table entry of the transaction in `MMRnode_b` since this is the one deemed to be correct. +Change the value in column resolution_status from P (pending) to C (completed) to indicate this conflict has been resolved. The value in winning_db_id is changed to 4 to indicate primary node `MMRnode_b` contains the winning transaction. The value in `winning_rrep_sync_id` is changed to the value of rrep_sync_id for the shadow table entry of the transaction in `MMRnode_b` since this is the one deemed to be correct. The SQL statement to perform this update for the `MMRnode_a` to the `MMRnode_b` synchronization conflict is the following: -``` text +```text UPDATE _edb_replicator_pub.xdb_conflicts SET resolution_status = 'C', win_db_id = 4, @@ -355,7 +336,7 @@ WHERE src_db_id = 1 The SQL statement to perform this update for the `MMRnode_b` to the `MMRnode_a` synchronization conflict is the following: -``` text +```text UPDATE _edb_replicator_pub.xdb_conflicts SET resolution_status = 'C', win_db_id = 4, @@ -368,7 +349,7 @@ WHERE src_db_id = 4 For uniqueness (`insert/insert`) conflicts only, the following SQL statement can be used to update both of the preceding entries simultaneously: -``` text +```text UPDATE _edb_replicator_pub.xdb_conflicts SET resolution_status = 'C', win_db_id = 4, @@ -378,7 +359,7 @@ WHERE pk_value = 'deptno=50' AND resolution_status = 'P'; ``` -The following are the updated xdb\_conflicts entries: +The following are the updated xdb_conflicts entries: ![Resolved conflict in xdb_conflicts](/../../../images/image149.png) diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/05_correction_using_new_txn.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/05_correction_using_new_txn.mdx index ebf8f2316c5..59fee144751 100644 --- a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/05_correction_using_new_txn.mdx +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/05_correction_using_new_txn.mdx @@ -4,16 +4,15 @@ title: "Correction Using New Transactions" - Another method for bringing all the publication tables to a consistent state is by removing any changes caused by the conflicting transactions and then issuing new, corrected transactions at one primary node, which you allow the multi-master replication system to synchronize to all other primary nodes. -Referring back to the uniqueness conflict on the dept table, instead of correcting the erroneous row and inserting the row into the primary node where it is missing as described in Section [Manual Publication Table Correction](../../../06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/#manual_publication_table_correction), you can delete the conflicting rows from all primary nodes, then insert the correct row in one primary node and let the multi-master replication system synchronize the correct row to all primary nodes. +Referring back to the uniqueness conflict on the dept table, instead of correcting the erroneous row and inserting the row into the primary node where it is missing as described in Section [Manual Publication Table Correction](04_manual_publication_table_correction/#manual_publication_table_correction), you can delete the conflicting rows from all primary nodes, then insert the correct row in one primary node and let the multi-master replication system synchronize the correct row to all primary nodes. **Step 1:** Manually delete the inserted row from the publication tables in all primary nodes with `session_replication_role` set to `replica`. On `MMRnode_a`, delete the erroneous row: -``` text +```text MMRnode_a=# SHOW session_replication_role; session_replication_role -------------------------- @@ -46,7 +45,7 @@ MMRnode_a=# SELECT * FROM dept; On `MMRnode_b`, delete the row even though the transaction created the correct result: -``` text +```text MMRnode_b=# SHOW session_replication_role; session_replication_role -------------------------- @@ -79,7 +78,7 @@ deptno | dname | loc On `MMRnode_c`, no changes are required as the conflicting transaction did not insert a new row into the table on this node: -``` text +```text MMRnode_c=# SET search_path TO edb; SET MMRnode_c=# SELECT * FROM dept; @@ -96,7 +95,7 @@ MMRnode_c=# SELECT * FROM dept; For this example, the correct `INSERT` statement is executed on `MMRnode_a`: On `MMRnode_a`: -``` text +```text MMRnode_a=# SHOW session_replication_role; session_replication_role -------------------------- @@ -121,7 +120,7 @@ MMRnode_a=# SELECT * FROM dept; The same rows now appear in the publication table on all primary nodes. On `MMRnode_a`; -``` text +```text MMRnode_a=# SELECT * FROM dept; deptno | dname | loc --------+------------+------------- @@ -135,7 +134,7 @@ MMRnode_a=# SELECT * FROM dept; On `MMRnode_b`: -``` text +```text MMRnode_b=# SELECT * FROM dept; deptno | dname | loc --------+------------+------------- @@ -149,7 +148,7 @@ MMRnode_b=# SELECT * FROM dept; On `MMRnode_c`: -``` text +```text MMRnode_c=# SELECT * FROM dept; deptno | dname | loc --------+------------+------------- @@ -161,7 +160,7 @@ MMRnode_c=# SELECT * FROM dept; (5 rows) ``` -**Step 4:** Update the shadow table entries for the conflicting transactions in the primary nodes to indicate that the conflict has been resolved as in Step 2 of Section [Manual Publication Table Correction](../../../06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/#manual_publication_table_correction). +**Step 4:** Update the shadow table entries for the conflicting transactions in the primary nodes to indicate that the conflict has been resolved as in Step 2 of Section [Manual Publication Table Correction](04_manual_publication_table_correction/#manual_publication_table_correction). Change the `rrep_tx_conflict_status` column from `P` (pending) to `D` (discarded) on all primary nodes. @@ -169,17 +168,8 @@ The resulting change for the shadow table on `MMRnode_a` is as follows. ![Discarded shadow table entry](/../../../images/image151.png) -
      - -
      - -Note - -
      - -The second entry for the accepted transaction you ran in Step 2 where `rrep_tx_conflict_status` is set to null indicating there was no conflict. - -
      +!!! Note + The second entry for the accepted transaction you ran in Step 2 where `rrep_tx_conflict_status` is set to null indicating there was no conflict. The resulting change for the shadow table on `MMRnode_b` is as follows. @@ -187,6 +177,6 @@ The resulting change for the shadow table on `MMRnode_b` is as follows. There is no shadow table entry in `MMRnode_c`, since an insert transaction was not performed in that primary node by the application. -**Step 5:** In the control schema of the publication database currently designated as the controller database, modify the entries in the `xdb_conflicts` table to indicate the conflict has been resolved as in Step 3 of Section [Manual Publication Table Correction](../../../06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/#manual_publication_table_correction). +**Step 5:** In the control schema of the publication database currently designated as the controller database, modify the entries in the `xdb_conflicts` table to indicate the conflict has been resolved as in Step 3 of Section [Manual Publication Table Correction](04_manual_publication_table_correction/#manual_publication_table_correction). ![Resolved conflict in xdb_conflicts](/../../../images/image153.png) diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/06_correction_using_shadow_table_txn.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/06_correction_using_shadow_table_txn.mdx index 86aa1c095b2..70f54160dca 100644 --- a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/06_correction_using_shadow_table_txn.mdx +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/06_correction_using_shadow_table_txn.mdx @@ -4,7 +4,6 @@ title: "Correction Using Shadow Table Transactions" - The final method for bringing all publication tables to a consistent state is by removing changes caused by the conflicting transactions and then modifying the publication table’s metadata in such a way that the next synchronization results in the replication of transactions already stored in the shadow tables. > Such transactions may not have been successfully replicated to all the other primary nodes in a prior synchronization for various reasons. @@ -23,13 +22,13 @@ The example used to illustrate this method is based upon the following transacti In `MMRnode_b`, the following row is inserted: -``` text +```text INSERT INTO emp (empno,ename,job,deptno) VALUES (9001,'SMITH','ANALYST',20); ``` In `MMRnode_c`, the following row is inserted with the same primary key value 9001 in the `empno` column: -``` text +```text INSERT INTO emp (empno,ename,job,deptno) VALUES (9001,'JONES','SALESMAN',30); In MMRnode_c, this is followed by a series of updates to the newly inserted row: UPDATE emp SET mgr = 7698 WHERE empno = 9001; @@ -41,7 +40,7 @@ Synchronization replication is performed. The resulting content of the `emp` tab On `MMRnode_a` the conflicting row has not been replicated: -``` text +```text MMRnode_a=# SELECT * FROM emp; empno | ename | job | mgr | hiredate | sal | comm | deptno -------+--------+-----------+------+--------------------+---------+---------+-------- @@ -64,7 +63,7 @@ MMRnode_a=# SELECT * FROM emp; On `MMRnode_b` the conflicting row inserted on this node remains, but is updated with the transactions replicated from `MMRnode_c`: -``` text +```text MMRnode_b=# SELECT * FROM emp; empno | ename | job | mgr | hiredate | sal | comm | deptno -------+--------+-----------+------+--------------------+---------+---------+-------- @@ -88,7 +87,7 @@ MMRnode_b=# SELECT * FROM emp; On `MMRnode_c` the conflicting row inserted on this node remains along with the updates performed on this node: -``` text +```text MMRnode_c=# SELECT * FROM emp; empno | ename | job | mgr | hiredate | sal | comm | deptno -------+--------+-----------+------+--------------------+---------+---------+-------- @@ -118,7 +117,7 @@ The following are the steps to reproduce the correct row, currently on `MMRnode_ On `MMRnode_a`, this row does not exist: -``` text +```text MMRnode_a=# SELECT * FROM emp WHERE empno = 9001; empno | ename | job | mgr | hiredate | sal | comm | deptno -------+-------+-----+-----+----------+-----+------+-------- @@ -127,7 +126,7 @@ MMRnode_a=# SELECT * FROM emp WHERE empno = 9001; On `MMRnode_b`, delete the erroneous row: -``` text +```text MMRnode_a=# SHOW session_replication_role; session_replication_role -------------------------- @@ -140,7 +139,7 @@ DELETE 1 On `MMRnode_c`, the correct, accepted row is left intact: -``` text +```text MMRnode_c=# SELECT * FROM emp WHERE empno = 9001; empno | ename | job | mgr | hiredate | sal | comm | deptno -------+-------+----------+------+----------+---------+---------+-------- @@ -174,11 +173,11 @@ The resulting change for the `rrep_tx_conflict_status` column in the shadow tabl ![Shadow table transactions set to replicate](/../../../images/image157.png) -**Step 4:** In order to replicate these four shadow table entries during the next synchronization, one or more entries must be added to the control schema table `_edb_replicator_pub.rrep_MMR_txset` on `MMRnode_c` to indicate pending status for synchronization to the target primary nodes (`MMRnode_a` and `MMRnode_b`) of the four shadow table entries identified by the rrep\_sync\_id values of 1, 2, 3, and 4 noted in Step 3. +**Step 4:** In order to replicate these four shadow table entries during the next synchronization, one or more entries must be added to the control schema table `_edb_replicator_pub.rrep_MMR_txset` on `MMRnode_c` to indicate pending status for synchronization to the target primary nodes (`MMRnode_a` and `MMRnode_b`) of the four shadow table entries identified by the rrep_sync_id values of 1, 2, 3, and 4 noted in Step 3. First, you must identify the `pub_id` and target `db_id` values that are to be associated with the pending transactions. To do so, invoke the following query substituting the `rrep_sync_id` values for `sync_id` in the query: -``` text +```text SELECT pub_id, db_id AS target_db_id FROM _edb_replicator_pub.rrep_MMR_txset WHERE start_rrep_sync_id <= sync_id @@ -189,7 +188,7 @@ In this example, there are four values to be substituted for `sync_id`, which ar The results are the following: -``` text +```text MMRnode_c=# SELECT pub_id, db_id AS target_db_id MMRnode_c-# FROM _edb_replicator_pub.rrep_MMR_txset MMRnode_c-# WHERE start_rrep_sync_id <= 1 AND end_rrep_sync_id >= 1; @@ -227,31 +226,22 @@ MMRnode_c-# WHERE start_rrep_sync_id <= 4 AND end_rrep_sync_id >= 4; (2 rows) ``` -The results indicate that the previously executed synchronization that attempted to apply the shadow table transactions identified by the `rrep_sync_id` values of 1, 2, 3, and 4 were all for the publication identified by `pub_id` of 3. The target primary nodes were identified by `db_id` of 1 (for `MMRnode_a`) and db\_id of 4 (for `MMRnode_b`). +The results indicate that the previously executed synchronization that attempted to apply the shadow table transactions identified by the `rrep_sync_id` values of 1, 2, 3, and 4 were all for the publication identified by `pub_id` of 3. The target primary nodes were identified by `db_id` of 1 (for `MMRnode_a`) and db_id of 4 (for `MMRnode_b`). -Thus, at least two entries must be inserted into the control schema table `_edb_replicator_pub.rrep_MMR_txset` on `MMRnode_c`. At least one entry is required for the target `db_id` of 1 and at least one entry for the target db\_id of 4. +Thus, at least two entries must be inserted into the control schema table `_edb_replicator_pub.rrep_MMR_txset` on `MMRnode_c`. At least one entry is required for the target `db_id` of 1 and at least one entry for the target db_id of 4. Since each entry in `_edb_replicator_pub.rrep_MMR_txset` consists of a range of `rrep_sync_id` values (identified by columns `start_rrep_sync_id` and `end_rrep_sync_id`) and the desired shadow table `rrep_sync_id` values happen to be contiguous (1 thru 4), a single entry can encompass the four `rrep_sync_id` values for a single target database. Thus, in this example, a total of two entries can be added to `_edb_replicator_pub.rrep_MMR_txset` – one for each target database. -
      - -
      - -Note - -
      - -If there were multiple, non-contiguous `rrep_sync_id` values required for synchronization (for example, 1, 2, 5, and 6), then multiple entries would be required for each target database. The entries would specify `rrep_sync_id` ranges to collectively cover all of the non-contiguous values, but omitting `rrep_sync_id` values that are not to be included in the synchronization (for example, one entry for 1 through 2 and a second entry for 5 through 6). - -
      +!!! Note + If there were multiple, non-contiguous `rrep_sync_id` values required for synchronization (for example, 1, 2, 5, and 6), then multiple entries would be required for each target database. The entries would specify `rrep_sync_id` ranges to collectively cover all of the non-contiguous values, but omitting `rrep_sync_id` values that are not to be included in the synchronization (for example, one entry for 1 through 2 and a second entry for 5 through 6). **Step 5:** Insert the entries into the `_edb_replicator_pub.rrep_MMR_txset` control schema table as identified in the preceding step. The two `INSERT` statements invoked on `MMRnode_c` are the following: -``` text +```text INSERT INTO _edb_replicator_pub.rrep_MMR_txset (set_id, pub_id, db_id, status, start_rrep_sync_id, end_rrep_sync_id) values (nextval('_edb_replicator_pub.rrep_txset_seq'),3,1,'P',1,4); @@ -259,9 +249,9 @@ INSERT INTO _edb_replicator_pub.rrep_MMR_txset (set_id, pub_id, db_id, status, s values (nextval('_edb_replicator_pub.rrep_txset_seq'),3,4,'P',1,4); ``` -A query of the \_edb\_replicator\_pub.rrep\_MMR\_txset metadata table displays the following: +A query of the \_edb_replicator_pub.rrep_MMR_txset metadata table displays the following: -``` text +```text MMRnode_c=# SELECT set_id, pub_id, db_id AS target_db_id, status, MMRnode_c-# start_rrep_sync_id, end_rrep_sync_id MMRnode_c-# FROM _edb_replicator_pub.rrep_MMR_txset; @@ -274,7 +264,7 @@ MMRnode_c-# FROM _edb_replicator_pub.rrep_MMR_txset; (4 rows) ``` -There are now two new entries with pending status (P), one for target db\_id 1, the other for target `db_id` 4. Both entries cover the `rrep_sync_id` range of 1 through 4. +There are now two new entries with pending status (P), one for target db_id 1, the other for target `db_id` 4. Both entries cover the `rrep_sync_id` range of 1 through 4. The two entries with completed status (C) are from the synchronization attempt that initially produced the conflict. @@ -282,7 +272,7 @@ The two entries with completed status (C) are from the synchronization attempt t The insert and three update transactions recorded in the `rrst_edb_emp` shadow table on `MMRnode_c` are replicated to the other primary nodes. -``` text +```text On MMRnode_a: MMRnode_a=# SELECT * FROM emp WHERE empno = 9001; empno | ename | job | mgr | hiredate | sal | comm | deptno @@ -297,9 +287,9 @@ MMRnode_b=# SELECT * FROM emp WHERE empno = 9001; (1 row) ``` -These rows now match the row created by the original transactions on MMRnode\_c: +These rows now match the row created by the original transactions on MMRnode_c: -``` text +```text MMRnode_c=# SELECT * FROM emp WHERE empno = 9001; empno | ename | job | mgr | hiredate | sal | comm | deptno -------+-------+----------+------+----------+---------+---------+-------- @@ -307,11 +297,11 @@ MMRnode_c=# SELECT * FROM emp WHERE empno = 9001; (1 row) ``` -**Step 7:** In the control schema of the publication database currently designated as the controller database, modify the entries in the xdb\_conflicts table to indicate the conflict has been resolved as in Step 3 of Section [Manual Publication Table Correction](../../../06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/#manual_publication_table_correction). +**Step 7:** In the control schema of the publication database currently designated as the controller database, modify the entries in the xdb_conflicts table to indicate the conflict has been resolved as in Step 3 of Section [Manual Publication Table Correction](04_manual_publication_table_correction/#manual_publication_table_correction). For a uniqueness (insert/insert) conflict only, the following query on the `xdb_conflicts` table in the controller database can display the conflicts: -``` text +```text MMRnode_a=# SELECT * FROM _edb_replicator_pub.xdb_conflicts MMRnode_a-# WHERE pk_value = 'empno=9001' MMRnode_a-# AND conflict_type = 'II' @@ -352,9 +342,9 @@ notes | ERROR: duplicate key value violates unique constraint "emp pk_value | empno=9001 ``` -The following SQL statement changes the value in column resolution\_status from `P (pending)` to `C (completed)` to indicate this conflict has been resolved. The value in winning\_db\_id is changed to 56 to indicate primary node `MMRnode_c` contains the winning transaction. The value in `winning_rrep_sync_id` is changed to the value of `rrep_sync_id` for the shadow table entry of the INSERT transaction in `MMRnode_c` since this is the one deemed to be correct. +The following SQL statement changes the value in column resolution_status from `P (pending)` to `C (completed)` to indicate this conflict has been resolved. The value in winning_db_id is changed to 56 to indicate primary node `MMRnode_c` contains the winning transaction. The value in `winning_rrep_sync_id` is changed to the value of `rrep_sync_id` for the shadow table entry of the INSERT transaction in `MMRnode_c` since this is the one deemed to be correct. -``` text +```text UPDATE _edb_replicator_pub.xdb_conflicts SET resolution_status = 'C', win_db_id = 56, diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/index.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/index.mdx index 9f4ab39bf9a..60d7a7df94f 100644 --- a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/index.mdx +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/index.mdx @@ -4,22 +4,12 @@ title: "Manual Conflict Resolution for the Trigger-Based Method" +!!! Note + The manual conflict resolution discussion in this section applies only to multi-master replication systems configured with the trigger-based method of synchronization replication. See [Manual Conflict Resolution for the Log-Based Method](../10_manual_conflict_resolution_log_based_method/#manual_conflict_resolution_log_based_method) for information on manual conflict resolution for multi-master replication systems configured with the log-based method of synchronization replication. -
      +As discussed in Section Conflict Prevention – Uniqueness Case <conflict_prevention_uniquness> there is no built-in, automatic conflict resolution strategy for the uniqueness (`insert/insert`) conflict. If a uniqueness conflict occurs, then you must modify rows in the publication tables containing the conflict as well as modify rows in the control schema tables in the primary nodes to resolve the conflict. -
      - -Note - -
      - -The manual conflict resolution discussion in this section applies only to multi-master replication systems configured with the trigger-based method of synchronization replication. See [Manual Conflict Resolution for the Log-Based Method](../../06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/#manual_conflict_resolution_log_based_method) for information on manual conflict resolution for multi-master replication systems configured with the log-based method of synchronization replication. - -
      - -As discussed in Section Conflict Prevention – Uniqueness Case <conflict\_prevention\_uniquness> there is no built-in, automatic conflict resolution strategy for the uniqueness (`insert/insert`) conflict. If a uniqueness conflict occurs, then you must modify rows in the publication tables containing the conflict as well as modify rows in the control schema tables in the primary nodes to resolve the conflict. - -Similarly, manual correction must be used for `update/delete` and `delete/update` conflicts. In addition, if the conflict resolution option is set to Manual (see Section [Updating the Conflict Resolution Options](../../06_mmr_operation/#update_conflict_resolution_options)) and a conflict occurs, this conflict must also be resolved in a manual fashion. +Similarly, manual correction must be used for `update/delete` and `delete/update` conflicts. In addition, if the conflict resolution option is set to Manual (see Section [Updating the Conflict Resolution Options](../../08_update_conflict_resolution_options/#update_conflict_resolution_options)) and a conflict occurs, this conflict must also be resolved in a manual fashion. This section describes the updates you must make to the publication tables and the control schema tables in the primary nodes. @@ -36,6 +26,6 @@ The following sections describe these topics in detail.
      -find\_conflict conflict\_resolution\_prep overview\_correction\_strategies manual\_publication\_table\_correction correction\_using\_new\_txn correction\_using\_shadow\_table\_txn +find_conflict conflict_resolution_prep overview_correction_strategies manual_publication_table_correction correction_using_new_txn correction_using_shadow_table_txn
      diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/01_finding_conflict.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/01_finding_conflict.mdx index 846a90fc4cb..e82bb411c55 100644 --- a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/01_finding_conflict.mdx +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/01_finding_conflict.mdx @@ -4,28 +4,18 @@ title: "Finding Conflicts" - -Conflicts can be found using the `Conflict History` tab as described in Section [Viewing Conflict History](../../../06_mmr_operation/#view_conflict_history). The following is an example of the Conflict History tab. Click the `Refresh` button to reveal all of the latest conflicts. +Conflicts can be found using the `Conflict History` tab as described in Section [Viewing Conflict History](../../07_view_conflict_history/#view_conflict_history). The following is an example of the Conflict History tab. Click the `Refresh` button to reveal all of the latest conflicts. ![Conflict History tab for log-based method](/../../../images/image159.png) -
      - -
      - -Note - -
      - -The `View Data link and Conflict Details` window displayed for multi-master replication systems configured with the trigger-based method of synchronization replication are not available for multi-master replication systems configured with the log-based method of synchronization replication. - -
      +!!! Note + The `View Data link and Conflict Details` window displayed for multi-master replication systems configured with the trigger-based method of synchronization replication are not available for multi-master replication systems configured with the log-based method of synchronization replication. The `Source DB` and `Target DB` columns provide the IP address and database names of the source and target primary nodes involved in the conflict. You can also obtain this information from a SQL query rather than from the xDB Replication Console graphical user interface. The following query can be run from a primary node to display information regarding pending (unresolved) conflicts: -``` text +```text SELECT DISTINCT conflict_type, t.table_name, diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/02_conflict_resolution_for_log_based.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/02_conflict_resolution_for_log_based.mdx index fc20956e836..38d2be7ab2b 100644 --- a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/02_conflict_resolution_for_log_based.mdx +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/02_conflict_resolution_for_log_based.mdx @@ -4,28 +4,18 @@ title: "Conflict Resolution Concept for the Log-Based Method" - Manual conflict resolution typically requires modification of rows in one or more publication tables to correct erroneous entries. Such changes can be done using a utility such as `PSQL` or `pgAdmin` (Postgres Enterprise Manager Client in Advanced Server). Manual publication table corrections must usually be isolated – that is, these modifications must be limited to the publication tables you are directly changing and must not be replicated to the other primary nodes as would normally occur in the multi-master replication system. To prevent the xDB Replication Server from replicating changes to one or more publication tables during a synchronization operation, the changes to the publication tables must be made within a transaction block that includes a reference to an xDB control schema table. This reference to the xDB control schema table causes the xDB Replication Server to skip the transaction block when performing a synchronization replication. -
      - -
      - -Note - -
      - -Not every xDB control schema table prevents this replication of a transaction block. Use the `SQL UPDATE` statement as shown by the following. - -
      +!!! Note + Not every xDB control schema table prevents this replication of a transaction block. Use the `SQL UPDATE` statement as shown by the following. The `SQL UPDATE` statement shown in the following transaction block is to be included to prevent replication of other publication table changes appearing within the same transaction block: -``` text +```text BEGIN; UPDATE _edb_replicator_pub.rrep_properties SET value = current_timestamp WHERE key = 'last_mcr_timestamp'; diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/03_overview_correction_strategies_log_based.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/03_overview_correction_strategies_log_based.mdx index bf36b9d98b6..cbac81de740 100644 --- a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/03_overview_correction_strategies_log_based.mdx +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/03_overview_correction_strategies_log_based.mdx @@ -4,16 +4,15 @@ title: "Overview of Correction Strategies" - Before you begin manual resolution correction, it is important to determine the extent of the inconsistencies that may have occurred in the publication tables across the primary nodes of the replication system. -The Conflict History tab and the SQL query described in Section [Finding Conflicts](../../../06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/#find_conflict) can help determine the source of an initial conflict. +The Conflict History tab and the SQL query described in Section [Finding Conflicts](../09_manual_conflict_resolution_trigger_based_method/01_find_conflict/#find_conflict) can help determine the source of an initial conflict. However, once this conflict has occurred, your replication system may have processed and replicated additional transactions during that synchronization operation. Some of these subsequent replications may have succeeded as expected, but others may have failed or produced unexpected results as a consequence of the prior conflict. If you have a replication schedule in effect, additional synchronization operations can occur, which may create additional conflicts. -Therefore, when you have discovered that a conflict has occurred, it is strongly recommended that you stop the publication server. Use the stop option of the Linux scripts or Windows services described in Step 1 of Section [Registering a Publication Server](../../../05_smr_operation/02_creating_publication/#registering_publication_server). In this way, you can carefully analyze the content of the publication tables in question to determine the best course of action to take without the interference of continuing updates by a running replication system. +Therefore, when you have discovered that a conflict has occurred, it is strongly recommended that you stop the publication server. Use the stop option of the Linux scripts or Windows services described in Step 1 of Section [Registering a Publication Server](../../../05_smr_operation/02_creating_publication/01_registering_publication_server/#registering_publication_server). In this way, you can carefully analyze the content of the publication tables in question to determine the best course of action to take without the interference of continuing updates by a running replication system. When analyzing your tables you must determine which publication tables contain inconsistent rows across primary nodes (that is, missing rows on some primary nodes, or rows with different column values for the same primary key on different primary nodes). @@ -21,17 +20,17 @@ The general steps to resolving the problem following this analysis are the follo **Step 1:** Make the necessary manual corrections to the rows in the publication tables across all primary nodes to get them into an initial, consistent state so each publication table has the same set of identical rows across primary nodes. This may be to a state before the conflicting transactions occurred, depending upon what you determine to be the easiest course of action for fully resolving the conflict. -**Step 2:** Apply transactions (either from your application or from transaction blocks as defined in Section [Conflict Resolution Concept for the Log-Based Method](../../../06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/#conflict_resolution_for_log_based)) so that all publication tables across all primary nodes are updated consistently according to the desired, expected result. +**Step 2:** Apply transactions (either from your application or from transaction blocks as defined in Section [Conflict Resolution Concept for the Log-Based Method](02_conflict_resolution_for_log_based/#conflict_resolution_for_log_based)) so that all publication tables across all primary nodes are updated consistently according to the desired, expected result. -**Step 3:** In the control schema, update certain indicators for the conflicting entries to show that these conflicts have been resolved. This update changes the Resolution Status of these entries to Resolved in the Conflict History tab. These entries will no longer appear in the SQL query described in Section [Finding Conflicts](../../../06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/#finding_conflict). +**Step 3:** In the control schema, update certain indicators for the conflicting entries to show that these conflicts have been resolved. This update changes the Resolution Status of these entries to Resolved in the Conflict History tab. These entries will no longer appear in the SQL query described in Section [Finding Conflicts](01_finding_conflict/#finding_conflict). -Perform the Step 3 updates to the control schema of the controller database. The currently designated controller database can be determined from the content of the xDB Replication Configuration file (see Section [xDB Replication Configuration File](../../../02_overview/03_replication_server_components_and_architecture/#xdb_replication_conf_file)). The publication server ensures that the control schema changes made on the controller database are replicated to the control schemas of all publication databases to maintain metadata consistency across all publication databases. +Perform the Step 3 updates to the control schema of the controller database. The currently designated controller database can be determined from the content of the xDB Replication Configuration file (see Section [xDB Replication Configuration File](../../../02_overview/03_replication_server_components_and_architecture/01_physical_components/#xdb_replication_conf_file)). The publication server ensures that the control schema changes made on the controller database are replicated to the control schemas of all publication databases to maintain metadata consistency across all publication databases. **Step 4:** Resume operation of your replication system. Start the publication server and recreate the replication schedule if you were using one. For accomplishing steps 1 and 2, use some combination of the following methods. Which methods you use depends upon the state of your publication tables. -- Manual Publication Table Correction. Use a utility such as PSQL or pgAdmin (Postgres Enterprise Manager Client in Advanced Server) to manually correct the rows in the publication tables across all primary nodes without replicating these changes. Apply these manual corrections within the transaction block described in Section [Conflict Resolution Concept for the Log-Based Method](../../../06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/#conflict_resolution_for_log_based). +- Manual Publication Table Correction. Use a utility such as PSQL or pgAdmin (Postgres Enterprise Manager Client in Advanced Server) to manually correct the rows in the publication tables across all primary nodes without replicating these changes. Apply these manual corrections within the transaction block described in Section [Conflict Resolution Concept for the Log-Based Method](02_conflict_resolution_for_log_based/#conflict_resolution_for_log_based). - Correction Using New Transactions. Rerun your application on one primary node to create new transactions that you will allow to replicate to all other primary nodes. Use this method after you have ensured that all publication tables are in a consistent state across all primary nodes. Each of these methods is described in more detail in the following sections. @@ -44,7 +43,7 @@ For purposes of illustration, the following replication environment is used. On `MMRnode_a`, the following statement is run: -``` text +```text INSERT INTO dept VALUES (50, 'FINANCE', 'CHICAGO'); On MMRnode_b, the following statement is run: INSERT INTO dept VALUES (50, 'MARKETING', 'LOS ANGELES'); @@ -54,7 +53,7 @@ A synchronization replication is then performed. The following is the content of table dept on `MMRnode_a`: -``` text +```text MMRnode_a=# SELECT * FROM dept; deptno | dname | loc --------+------------+---------- @@ -68,7 +67,7 @@ MMRnode_a=# SELECT * FROM dept; The following is the content of table dept on `MMRnode_b`: -``` text +```text MMRnode_b=# SELECT * FROM dept; deptno | dname | loc --------+------------+------------- @@ -82,7 +81,7 @@ MMRnode_b=# SELECT * FROM dept; The following is the content of table dept on `MMRnode_c`: -``` text +```text MMRnode_c=# SELECT * FROM dept; deptno | dname | loc --------+------------+---------- @@ -97,9 +96,9 @@ The Conflict History tab shows the following entry: ![Conflict History tab with a uniqueness conflict](/../../../images/image160.png) -The following is the output from the SQL query described in Section [Finding Conflicts](../../../06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/#find_conflict). +The following is the output from the SQL query described in Section [Finding Conflicts](../09_manual_conflict_resolution_trigger_based_method/01_find_conflict/#find_conflict). -``` text +```text -[ RECORD 1 ]-------+---------------------------------------------------------------- conflict_type | II table_name | dept diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/04_manual_publication_table_correction_log_based.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/04_manual_publication_table_correction_log_based.mdx index f4481628215..b6893a7aaf4 100644 --- a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/04_manual_publication_table_correction_log_based.mdx +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/04_manual_publication_table_correction_log_based.mdx @@ -4,7 +4,6 @@ title: "Manual Publication Table Correction" - The first step required in all manual conflict resolutions is to ensure all publication tables are consistent across all primary nodes – that is, all corresponding tables have the same rows with the same column values. Once this state is achieved, you can then reapply transactions that may have failed to replicate successfully. @@ -25,11 +24,11 @@ Each of the methods outlined in the preceding bullet points are described in mor The method outlined by the first bullet point is accomplished as follows. -**Step 1:** Manually correct the rows in the publication tables with SQL statements incorporated within a transaction block as described in Section [Conflict Resolution Concept for the Log-Based Method](../../../06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/#conflict_resolution_for_log_based). +**Step 1:** Manually correct the rows in the publication tables with SQL statements incorporated within a transaction block as described in Section [Conflict Resolution Concept for the Log-Based Method](02_conflict_resolution_for_log_based/#conflict_resolution_for_log_based). On `MMRnode_a`, correct the erroneous row by running the following transaction block: -``` text +```text BEGIN; UPDATE _edb_replicator_pub.rrep_properties SET value = current_timestamp WHERE key = 'last_mcr_timestamp'; @@ -40,7 +39,7 @@ COMMIT; This is shown by the following: -``` text +```text MMRnode_a=# BEGIN; BEGIN MMRnode_a=# UPDATE _edb_replicator_pub.rrep_properties SET value = current_timestamp @@ -64,7 +63,7 @@ MMRnode_a=# SELECT * FROM edb.dept; On `MMRnode_c`, insert the missing row with the following transaction block: -``` text +```text BEGIN; UPDATE _edb_replicator_pub.rrep_properties SET value = current_timestamp WHERE key = 'last_mcr_timestamp'; @@ -74,7 +73,7 @@ COMMIT; This is shown by the following: -``` text +```text MMRnode_c=# BEGIN; BEGIN MMRnode_c=# UPDATE _edb_replicator_pub.rrep_properties SET value = current_timestamp @@ -97,37 +96,28 @@ MMRnode_c=# SELECT * FROM edb.dept; The dept table on `MMRnode_a` and `MMRnode_c` now match the content of the table on `MMRnode_b`: -**Step 2:** In the control schema of the publication database currently designated as the controller database, modify the entry in the xdb\_conflicts table to indicate the conflict has been resolved. Table `xdb_conflicts` is located in schema `_edb_replicator_pub`. - -
      - -
      - -Note - -
      - -The entries in table `xdb_conflicts` only affect the data that appears in the Conflict History tab and the SQL query described in Section [Finding Conflicts](../../../06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/#find_conflict). Changing entries in `xdb_conflicts` has no effect on future replication operations, but provides a way to keep a record of how past conflicts were resolved. +**Step 2:** In the control schema of the publication database currently designated as the controller database, modify the entry in the xdb_conflicts table to indicate the conflict has been resolved. Table `xdb_conflicts` is located in schema `_edb_replicator_pub`. -
      +!!! Note + The entries in table `xdb_conflicts` only affect the data that appears in the Conflict History tab and the SQL query described in Section [Finding Conflicts](../09_manual_conflict_resolution_trigger_based_method/01_find_conflict/#find_conflict). Changing entries in `xdb_conflicts` has no effect on future replication operations, but provides a way to keep a record of how past conflicts were resolved. Note the following points regarding the `xdb_conflicts` table: - A row in the `xdb_conflicts` table appears as an entry in the Conflict History tab. -- The primary key of the xdb\_conflicts table is coMMRised of columns `src_db_id`, `target_db_id`, `src_rrep_sync_id`, and `target_rrep_sync_id`. `Column src_db_id` contains a unique identifier for the primary node in which a transaction occurred that results in a conflict when replicated to the primary node identified by target\_db\_id. `src_rrep_sync_id` is the identifier of the transaction on the source primary node involved in the conflict while `target_rrep_sync_id` is the identifier of the transaction on the target primary node that is involved in the conflict. Note: The src\_rrep\_sync\_id and target\_rrep\_sync\_id values are used internally by xDB Replication Server and are not needed for the manual conflict resolution process. +- The primary key of the xdb_conflicts table is coMMRised of columns `src_db_id`, `target_db_id`, `src_rrep_sync_id`, and `target_rrep_sync_id`. `Column src_db_id` contains a unique identifier for the primary node in which a transaction occurred that results in a conflict when replicated to the primary node identified by target_db_id. `src_rrep_sync_id` is the identifier of the transaction on the source primary node involved in the conflict while `target_rrep_sync_id` is the identifier of the transaction on the target primary node that is involved in the conflict. Note: The src_rrep_sync_id and target_rrep_sync_id values are used internally by xDB Replication Server and are not needed for the manual conflict resolution process. - Table `xdb_pub_database` in the control schema associates the database identifiers `src_db_id` and `target_db_id` with the primary node attributes such as the database name, IP address, and port. -- Column table\_id is the identifier of the publication table on which the conflict occurred. Association of the table\_id value with the publication table attributes such as its name and schema is found in each primary node in `_edb_replicator_pub.rrep_tables`. -- Column `pk_value` contains text indicating the primary key value that resulted in the conflict. The text is formatted as `column_name=value`. If the primary key is composed of two or more columns, each column and value pair is separated by the keyword AND such as column\_1=value\_1 AND column\_2=value\_2. This provides the primary key of the row in the publication table designated by table\_id that resulted in the conflict. -- Column resolution\_status indicates the status of the conflict. Possible values are P (pending) or C (completed – the conflict has been resolved). This status appears in the Resolution Status column of the Conflict History tab. +- Column table_id is the identifier of the publication table on which the conflict occurred. Association of the table_id value with the publication table attributes such as its name and schema is found in each primary node in `_edb_replicator_pub.rrep_tables`. +- Column `pk_value` contains text indicating the primary key value that resulted in the conflict. The text is formatted as `column_name=value`. If the primary key is composed of two or more columns, each column and value pair is separated by the keyword AND such as column_1=value_1 AND column_2=value_2. This provides the primary key of the row in the publication table designated by table_id that resulted in the conflict. +- Column resolution_status indicates the status of the conflict. Possible values are P (pending) or C (completed – the conflict has been resolved). This status appears in the Resolution Status column of the Conflict History tab. - `Column win_db_id` can be used to record the database identifier of the primary node that contains the “winning” (accepted) transaction. This information appears in the Winning DB column of the Conflict History tab. The following shows the **Conflict History** tab prior to updating the `xdb_conflicts` table. ![Pending uniqueness conflict](/../../../images/image160.png) -The entry for the pending insert/insert conflict on the deptno primary key value of 50 can be located in xdb\_conflicts with the following query for this example: +The entry for the pending insert/insert conflict on the deptno primary key value of 50 can be located in xdb_conflicts with the following query for this example: -``` text +```text MMRnode_a=# SELECT * FROM _edb_replicator_pub.xdb_conflicts MMRnode_a-# WHERE pk_value = 'deptno=50' MMRnode_a-# AND conflict_type = 'II' @@ -154,11 +144,11 @@ This entry appears in the Postgres Enterprise Manager Client as shown by the fol ![Pending conflict in xdb_conflicts](/../../../images/image161.png) -Change the value in column resolution\_status from P (pending) to C (completed) to indicate this conflict has been resolved. The value in winning\_db\_id is changed to 22 to indicate primary node `MMRnode_b` contains the winning transaction. +Change the value in column resolution_status from P (pending) to C (completed) to indicate this conflict has been resolved. The value in winning_db_id is changed to 22 to indicate primary node `MMRnode_b` contains the winning transaction. The SQL statement to perform this update for the `MMRnode_a` to the `MMRnode_b` synchronization conflict is the following: -``` text +```text UPDATE _edb_replicator_pub.xdb_conflicts SET resolution_status = 'C', win_db_id = 22 @@ -167,7 +157,7 @@ WHERE pk_value = 'deptno=50' AND resolution_status = 'P'; ``` -The following is the updated xdb\_conflicts entry: +The following is the updated xdb_conflicts entry: ![Resolved conflict in xdb_conflicts](/../../../images/image162.png) diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/05_correction_using_new_txn_log_based.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/05_correction_using_new_txn_log_based.mdx index 16972424783..e9aa4e33d97 100644 --- a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/05_correction_using_new_txn_log_based.mdx +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/05_correction_using_new_txn_log_based.mdx @@ -4,16 +4,15 @@ title: "Correction Using New Transactions" - Another method for bringing all the publication tables to a consistent state is by removing any changes caused by the conflicting transactions and then issuing new, corrected transactions at one primary node, which you allow the multi-master replication system to synchronize to all other primary nodes. -Referring back to the uniqueness conflict on the dept table, instead of correcting the erroneous row and inserting the row into the primary node where it is missing as described in Section [Manual Publication Table Correction](../../../06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/#manual_publication_table_correction_log_based), you can delete the conflicting rows from all primary nodes, then insert the correct row in one primary node and let the multi-master replication system synchronize the correct row to all primary nodes. +Referring back to the uniqueness conflict on the dept table, instead of correcting the erroneous row and inserting the row into the primary node where it is missing as described in Section [Manual Publication Table Correction](04_manual_publication_table_correction_log_based/#manual_publication_table_correction_log_based), you can delete the conflicting rows from all primary nodes, then insert the correct row in one primary node and let the multi-master replication system synchronize the correct row to all primary nodes. -**Step 1:** Manually delete the inserted row from the publication tables in all primary nodes using the transaction block described in Section [Conflict Resolution Concept for the Log-Based Method](../../../06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/#conflict_resolution_for_log_based). +**Step 1:** Manually delete the inserted row from the publication tables in all primary nodes using the transaction block described in Section [Conflict Resolution Concept for the Log-Based Method](02_conflict_resolution_for_log_based/#conflict_resolution_for_log_based). On `MMRnode_a`, delete the erroneous row with the following transaction block: -``` text +```text BEGIN; UPDATE _edb_replicator_pub.rrep_properties SET value = current_timestamp WHERE key = 'last_mcr_timestamp'; @@ -41,7 +40,7 @@ MMRnode_a=# SELECT * FROM dept; On `MMRnode_b`, delete the row even though the transaction created the correct result: -``` text +```text MMRnode_b=# BEGIN; BEGIN MMRnode_b=# UPDATE _edb_replicator_pub.rrep_properties SET value = current_timestamp @@ -63,7 +62,7 @@ MMRnode_b=# SELECT * FROM dept; On `MMRnode_c`, no changes are required as the conflicting transaction did not insert a new row into the table on this node: -``` text +```text MMRnode_c=# SET search_path TO edb; SET MMRnode_c=# SELECT * FROM dept; @@ -76,13 +75,13 @@ MMRnode_c=# SELECT * FROM dept; (4 rows) ``` -**Step 2:** Rerun the correct transaction on one primary node with the multi-master replication system running. Do not run this within the transaction block described in Section [Conflict Resolution Concept for the Log-Based Method](../../../06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/#conflict_resolution_for_log_based) as the objective is to synchronize it to all primary nodes. +**Step 2:** Rerun the correct transaction on one primary node with the multi-master replication system running. Do not run this within the transaction block described in Section [Conflict Resolution Concept for the Log-Based Method](02_conflict_resolution_for_log_based/#conflict_resolution_for_log_based) as the objective is to synchronize it to all primary nodes. For this example, the correct INSERT statement is executed on `MMRnode_a`: On `MMRnode_a`: -``` text +```text MMRnode_a=# INSERT INTO dept VALUES (50, 'MARKETING', 'LOS ANGELES'); INSERT 0 1 MMRnode_a=# SELECT * FROM dept; @@ -102,7 +101,7 @@ The same rows now appear in the publication table on all primary nodes. On `MMRnode_a`; -``` text +```text MMRnode_a=# SELECT * FROM dept; deptno | dname | loc --------+------------+------------- @@ -116,7 +115,7 @@ MMRnode_a=# SELECT * FROM dept; On `MMRnode_b`; -``` text +```text MMRnode_b=# SELECT * FROM dept; deptno | dname | loc --------+------------+------------- @@ -128,9 +127,9 @@ MMRnode_b=# SELECT * FROM dept; (5 rows) ``` -On MMRnode\_c; +On MMRnode_c; -``` text +```text MMRnode_c=# SELECT * FROM dept; deptno | dname | loc --------+------------+------------- @@ -142,6 +141,6 @@ MMRnode_c=# SELECT * FROM dept; (5 rows) ``` -**Step 4:** In the control schema of the publication database currently designated as the controller database, modify the entry in the `xdb_conflicts` table to indicate the conflict has been resolved as in Step 2 of Section [Conflict Resolution Concept for the Log-Based Method](../../../06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/#conflict_resolution_for_log_based). +**Step 4:** In the control schema of the publication database currently designated as the controller database, modify the entry in the `xdb_conflicts` table to indicate the conflict has been resolved as in Step 2 of Section [Conflict Resolution Concept for the Log-Based Method](02_conflict_resolution_for_log_based/#conflict_resolution_for_log_based). ![Resolved conflict in xdb_conflicts](/../../../images/image164.png) diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/index.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/index.mdx index 7b10951c49e..65e20adbb1a 100644 --- a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/index.mdx +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/10_manual_conflict_resolution_log_based_method/index.mdx @@ -4,22 +4,12 @@ title: "Manual Conflict Resolution for the Log-Based Method" +!!! Note + The manual conflict resolution discussion in this section applies only to multi-master replication systems configured with the log-based method of synchronization replication. See [Manual Conflict Resolution for the Trigger-Based Method](../09_manual_conflict_resolution_trigger_based_method/#manual_conflict_resolution_trigger_based_method) for information on manual conflict resolution for multi-master replication systems configured with the trigger-based method of synchronization replication. -
      +As discussed in Section Conflict Prevention – Uniqueness Case <conflict_prevention_uniquness> there is no built-in, automatic conflict resolution strategy for the uniqueness (`insert/insert`) conflict. If a uniqueness conflict occurs, then you must modify rows in the publication tables containing the conflict as well as modify rows in the control schema tables in the primary nodes to resolve the conflict. -
      - -Note - -
      - -The manual conflict resolution discussion in this section applies only to multi-master replication systems configured with the log-based method of synchronization replication. See [Manual Conflict Resolution for the Trigger-Based Method](../../06_mmr_operation/06_conflict_resolution/09_manual_conflict_resolution_trigger_based_method/#manual_conflict_resolution_trigger_based_method) for information on manual conflict resolution for multi-master replication systems configured with the trigger-based method of synchronization replication. - -
      - -As discussed in Section Conflict Prevention – Uniqueness Case <conflict\_prevention\_uniquness> there is no built-in, automatic conflict resolution strategy for the uniqueness (`insert/insert`) conflict. If a uniqueness conflict occurs, then you must modify rows in the publication tables containing the conflict as well as modify rows in the control schema tables in the primary nodes to resolve the conflict. - -Similarly, manual correction must be used for update/delete and delete/update conflicts. In addition, if the conflict resolution option is set to Manual (see [Updating the Conflict Resolution Options](../../06_mmr_operation/#update_conflict_resolution_options)) and a conflict occurs, this conflict must also be resolved in a manual fashion. +Similarly, manual correction must be used for update/delete and delete/update conflicts. In addition, if the conflict resolution option is set to Manual (see [Updating the Conflict Resolution Options](../../08_update_conflict_resolution_options/#update_conflict_resolution_options)) and a conflict occurs, this conflict must also be resolved in a manual fashion. This section describes the updates you must make to the publication tables and the control schema tables in the primary nodes. @@ -35,6 +25,6 @@ The following sections describe these topics in detail.
      -finding\_conflict conflict\_resolution\_for\_log\_based overview\_correction\_strategies\_log\_based manual\_publication\_table\_correction\_log\_based correction\_using\_new\_txn\_log\_based +finding_conflict conflict_resolution_for_log_based overview_correction_strategies_log_based manual_publication_table_correction_log_based correction_using_new_txn_log_based
      diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/index.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/index.mdx index ee02dd65211..6f0eab20afa 100644 --- a/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/index.mdx +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/06_conflict_resolution/index.mdx @@ -4,13 +4,12 @@ title: "Conflict Resolution" - There are certain situations where synchronization replication may result in data conflicts arising from the row changes that took place on different primary nodes. Conflict resolution deals with the topic of the types of conflicts that might occur, the strategies for dealing with conflicts, and the options available for automatically resolving such conflicts.
      -configuration\_para\_and table\_setting conflict\_types conflict\_detection conflict\_resolution\_strategies conflict\_prevention\_uniquness conflict\_prevention\_mmr\_ready auto\_conflict\_resolution\_eg custom\_conflict\_handling manual\_conflict\_resolution\_trigger\_based\_method manual\_conflict\_resolution\_log\_based\_method +configuration_para_and table_setting conflict_types conflict_detection conflict_resolution_strategies conflict_prevention_uniquness conflict_prevention_mmr_ready auto_conflict_resolution_eg custom_conflict_handling manual_conflict_resolution_trigger_based_method manual_conflict_resolution_log_based_method
      diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/07_view_conflict_history.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/07_view_conflict_history.mdx index 749d57c80be..04dd1a96fce 100644 --- a/product_docs/docs/eprs/6.2/06_mmr_operation/07_view_conflict_history.mdx +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/07_view_conflict_history.mdx @@ -4,38 +4,19 @@ title: "Viewing Conflict History" - Conflict history shows the following types of events that occurred during synchronization replication: - Uniqueness conflicts where two or more primary nodes attempted to insert a row with the same primary key value or unique column value. - `Update/update` conflicts where two or more primary nodes attempted to update the same column of the same row - `Update/delete` and `delete/update` conflicts where one primary node attempted to update a row that was deleted by another primary node. -See Section [Conflict Resolution](../06_mmr_operation/06_conflict_resolution/#conflict_resolution) for more information on conflict resolution. - -
      - -
      - -Note - -
      - -The conflict history can be viewed from the Publication node under any primary node in the multi-primary replication system. The history shows conflicts on all publication tables of all primary nodes that occurred during synchronization, and hence, the history appears the same regardless of the primary node under which it is viewed. - -
      - -
      +See Section [Conflict Resolution](06_conflict_resolution/#conflict_resolution) for more information on conflict resolution. -
      +!!! Note + The conflict history can be viewed from the Publication node under any primary node in the multi-primary replication system. The history shows conflicts on all publication tables of all primary nodes that occurred during synchronization, and hence, the history appears the same regardless of the primary node under which it is viewed. -Note - -
      - -For uniqueness (`insert/insert`) conflicts the number of entries appearing under the Conflict History tab differs when the trigger-based method of synchronization replication is used as compared to the log-based method. If the trigger-based method is used, a single insert/insert conflict appears as two entries in the conflict history. Each entry differs in that the source and target database fields for the two conflicting primary nodes are interchanged. If the same conflict occurs when the log-based method is used, only one entry appears in the conflict history. - -
      +!!! Note + For uniqueness (`insert/insert`) conflicts the number of entries appearing under the Conflict History tab differs when the trigger-based method of synchronization replication is used as compared to the log-based method. If the trigger-based method is used, a single insert/insert conflict appears as two entries in the conflict history. Each entry differs in that the source and target database fields for the two conflicting primary nodes are interchanged. If the same conflict occurs when the log-based method is used, only one entry appears in the conflict history. The following steps describe how to view the conflict history. @@ -53,16 +34,7 @@ The following steps describe how to view the conflict history. **Step 4:** Click the `View Data` link to show the details of a particular conflict. -
      - -
      - -Note - -
      - -The `View Data` link and `Conflict Details` window are available only for multi-primary replication systems configured with the trigger-based method of synchronization replication. There is no `View Data` link or `Conflict Details` window for multi-primary replication systems configured with the log-based method of synchronization replication. - -
      +!!! Note + The `View Data` link and `Conflict Details` window are available only for multi-primary replication systems configured with the trigger-based method of synchronization replication. There is no `View Data` link or `Conflict Details` window for multi-primary replication systems configured with the log-based method of synchronization replication. ![Conflict Details window](/../images/image168.png) diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/08_update_conflict_resolution_options.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/08_update_conflict_resolution_options.mdx index 4ff12b1fe16..962eac2911f 100644 --- a/product_docs/docs/eprs/6.2/06_mmr_operation/08_update_conflict_resolution_options.mdx +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/08_update_conflict_resolution_options.mdx @@ -4,10 +4,9 @@ title: "Updating the Conflict Resolution Options" +A current conflict resolution option on a publication table can be changed. See Section [Conflict Resolution](06_conflict_resolution/#conflict_resolution) for information on conflict resolution. -A current conflict resolution option on a publication table can be changed. See Section [Conflict Resolution](../06_mmr_operation/06_conflict_resolution/#conflict_resolution) for information on conflict resolution. - -**Step 1:** Make sure the publication server whose node is the parent of the publication you wish to change is running and has been registered in the xDB Replication Console you are using. See Section [Registering a Publication Server](../05_smr_operation/02_creating_publication/#registering_publication_server) for directions on starting and registering a publication server. +**Step 1:** Make sure the publication server whose node is the parent of the publication you wish to change is running and has been registered in the xDB Replication Console you are using. See Section [Registering a Publication Server](../05_smr_operation/02_creating_publication/01_registering_publication_server/#registering_publication_server) for directions on starting and registering a publication server. **Step 2:** Select the Publication node under the Publication Database node representing the primary definition node. diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/09_enable_disable_table_filters.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/09_enable_disable_table_filters.mdx index 8ccd6de77b6..dca9d41a268 100644 --- a/product_docs/docs/eprs/6.2/06_mmr_operation/09_enable_disable_table_filters.mdx +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/09_enable_disable_table_filters.mdx @@ -4,24 +4,14 @@ title: "Enabling/Disabling Table Filters on a Primary node" +Table filters must first be defined in a set of available table filters in the publication before they can be enabled on a primary node. See Section [Adding a Publication](02_creating_publication_mmr/#add_pub_mmr) for information on defining table filters in a multi-master replication system. -Table filters must first be defined in a set of available table filters in the publication before they can be enabled on a primary node. See Section [Adding a Publication](../06_mmr_operation/#add_pub_mmr) for information on defining table filters in a multi-master replication system. - -
      - -
      - -Note - -
      - -See Section [Table Settings and Restrictions for Table Filters](../02_overview/02_replication_concepts_and_definitions/#table_settings_and_restrictions_for_table_filters) for table setup requirements for a log-based replication system as well as general restrictions on the use of table filters. - -
      +!!! Note + See Section [Table Settings and Restrictions for Table Filters](../02_overview/02_replication_concepts_and_definitions/13_table_filters/#table_settings_and_restrictions_for_table_filters) for table setup requirements for a log-based replication system as well as general restrictions on the use of table filters. The following are the steps for enabling or disabling table filters on an existing primary node. -**Step 1:** Make sure the publication server whose node is the parent of the primary nodes of the replication system is running and has been registered in the xDB Replication Console you are using. See Section [Registering a Publication Server](../05_smr_operation/02_creating_publication/#registering_publication_server) for directions on starting and registering a publication server. +**Step 1:** Make sure the publication server whose node is the parent of the primary nodes of the replication system is running and has been registered in the xDB Replication Console you are using. See Section [Registering a Publication Server](../05_smr_operation/02_creating_publication/01_registering_publication_server/#registering_publication_server) for directions on starting and registering a publication server. **Step 2:** Select the Publication Database node corresponding to the primary node on which you wish to enable or disable individual filter rules. @@ -31,17 +21,8 @@ The following are the steps for enabling or disabling table filters on an existi ![Opening the Filter Rules tab on a primary node](/../images/image174.png) -
      - -
      - -Note - -
      - -If you wish to enable or disable filter rules on the current primary definition node, you must first switch the role of the primary definition node to another primary node in order to expose the Update Filter Rule option in the primary node context menu. See Section [Switching the Primary definition node](../06_mmr_operation/#switching_pdn) for directions on switching the primary definition node. - -
      +!!! Note + If you wish to enable or disable filter rules on the current primary definition node, you must first switch the role of the primary definition node to another primary node in order to expose the Update Filter Rule option in the primary node context menu. See Section [Switching the Primary definition node](10_switching_pdn/#switching_pdn) for directions on switching the primary definition node. The primary node you choose as the new primary definition node should contain a superset of, or at least an equivalent set of data as the current primary definition node. The reason for this is to ensure that the former primary definition node contains the complete set of data satisfying the filtering criteria after you take a snapshot from the new primary definition node to the former primary definition node on which you just enabled the table filters. @@ -63,18 +44,9 @@ If you clicked the `Cancel` button in the preceding step, the Filter Rules tab r **Step 7:** It is strongly recommended that a snapshot replication be performed to the primary node that contains tables on which the filtering criteria has changed. -A snapshot ensures that the content of the primary node tables is consistent with the updated filtering criteria. See Section [Performing Snapshot Replication](../06_mmr_operation/#perform_snapshot_replication_mmr) for information on performing a snapshot replication. - -
      - -
      - -Note - -
      - -The primary definition node, which provides the source of the table content for a snapshot, should contain a superset of all the data contained in the other primary nodes of the multi-master replication system. This ensures that the target of the snapshot receives all of the data that satisfies the updated filtering criteria. +A snapshot ensures that the content of the primary node tables is consistent with the updated filtering criteria. See Section [Performing Snapshot Replication](05_on_demand_replication_mmr/#perform_snapshot_replication_mmr) for information on performing a snapshot replication. -
      +!!! Note + The primary definition node, which provides the source of the table content for a snapshot, should contain a superset of all the data contained in the other primary nodes of the multi-master replication system. This ensures that the target of the snapshot receives all of the data that satisfies the updated filtering criteria. On the contrary, if the primary definition node contains only a subset of all the data contained in the other primary nodes, then a snapshot to another primary node may not result in the complete set of data that is required for that target primary node. diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/10_switching_pdn.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/10_switching_pdn.mdx index 556a61c568e..98d50295a26 100644 --- a/product_docs/docs/eprs/6.2/06_mmr_operation/10_switching_pdn.mdx +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/10_switching_pdn.mdx @@ -4,10 +4,9 @@ title: "Switching the Primary definition node" - After the multi-master replication system is created, you can switch the role of the primary definition node with another primary node. -**Step 1:** Make sure the publication server whose node is the parent of the primary nodes of the replication system is running and has been registered in the xDB Replication Console you are using. See Section [Registering a Publication Server](../05_smr_operation/02_creating_publication/#registering_publication_server) for directions on starting and registering a publication server. +**Step 1:** Make sure the publication server whose node is the parent of the primary nodes of the replication system is running and has been registered in the xDB Replication Console you are using. See Section [Registering a Publication Server](../05_smr_operation/02_creating_publication/01_registering_publication_server/#registering_publication_server) for directions on starting and registering a publication server. **Step 2:** Select the Publication Database node corresponding to the primary node that you wish to set as the primary definition node. @@ -27,28 +26,10 @@ After the multi-master replication system is created, you can switch the role of **Step 6:** The value `Yes` in the PDN field of the Property window indicates this database is the primary definition node. -
      - -
      - -Note - -
      - -The new primary definition node is moved to the top of the replication tree in the xDB Replication Console. - -
      +!!! Note + The new primary definition node is moved to the top of the replication tree in the xDB Replication Console. ![Master definition node (PDN) indicated by ‘Yes’ in the Property window](/../images/image182.png) -
      - -
      - -Note - -
      - -You should now perform a synchronization replication to ensure that the new primary definition node is synchronized with the other primary nodes. See [Performing Synchronization Replication](../06_mmr_operation/#perform_synchronization_replication_mmr) for directions on performing a synchronization replication. - -
      +!!! Note + You should now perform a synchronization replication to ensure that the new primary definition node is synchronized with the other primary nodes. See [Performing Synchronization Replication](05_on_demand_replication_mmr/#perform_synchronization_replication_mmr) for directions on performing a synchronization replication. diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/11_ensuring_ha.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/11_ensuring_ha.mdx index abd1c410c7d..3ad7e7edfcf 100644 --- a/product_docs/docs/eprs/6.2/06_mmr_operation/11_ensuring_ha.mdx +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/11_ensuring_ha.mdx @@ -4,7 +4,6 @@ title: "Ensuring High Availability" - In a multi-master replication system, the primary nodes participating in replication can reside on separate physical hosts. If any primary node goes offline, the primary nodes on the other hosts continue to synchronize transactions amongst themselves thereby ensuring consistency of the publication tables on the remaining active primary nodes. When an offline primary node is brought back online, pending transactions involving that primary node are synchronized with the other primary nodes of the replication system. No transaction data is lost between the primary nodes. Thus, an inherent characteristic of multi-master replication systems is that each primary node serves as a backup for the other nodes, and any such node can provide consistent publication data to applications. @@ -24,23 +23,14 @@ At any given point in time during operation of the replication system, one of th The controller database can be identified in either of the following ways: - In the xDB Replication Console, when a primary node is selected, the Controller database field in the Property window is set to `Yes` if this primary node is the current controller database. -- In the xDB Replication Configuration file, the authentication and connection parameters are set to the controller database. See Section [xDB Replication Configuration File](../02_overview/03_replication_server_components_and_architecture/#xdb_replication_conf_file) for information on the xDB Replication Configuration file. +- In the xDB Replication Configuration file, the authentication and connection parameters are set to the controller database. See Section [xDB Replication Configuration File](../02_overview/03_replication_server_components_and_architecture/01_physical_components/#xdb_replication_conf_file) for information on the xDB Replication Configuration file. When a replication system is in use, the xDB Replication Server, and particularly, the publication server component, accesses the currently designated controller database for any configuration information. Any changes that you make to the replication system configuration using the xDB Replication Console or the xDB Replication Server CLI are first updated in the control schema of the controller database, and then replicated by the xDB Replication Server to the other publication databases to keep such information consistent. -
      - -
      - -Note - -
      - -Replication history may take a longer period of time to replicate from the controller database to the other publication databases, therefore it is possible that some replication history may be lost if access to the controller database fails, and a switchover is made to another publication database to act as the controller database. See Section [Viewing Replication History](../07_common_operations/#view_replication_history) for information on replication history. - -
      +!!! Note + Replication history may take a longer period of time to replicate from the controller database to the other publication databases, therefore it is possible that some replication history may be lost if access to the controller database fails, and a switchover is made to another publication database to act as the controller database. See Section [Viewing Replication History](../07_common_operations/04_view_replication_history/#view_replication_history) for information on replication history. Therefore it is important that the controller database be accessible whenever the replication system is use. @@ -54,9 +44,9 @@ If the publication server is currently running with its connection to the contro Thus, there is no apparent disruption in the operation of the xDB Replication Server. -The controller database authentication and connection information is modified accordingly in the xDB Replication Configuration file (see Section [xDB Replication Configuration File](../02_overview/03_replication_server_components_and_architecture/#xdb_replication_conf_file)). Thus, any subsequent startups of the publication and subscription servers use this newly designated controller database. +The controller database authentication and connection information is modified accordingly in the xDB Replication Configuration file (see Section [xDB Replication Configuration File](../02_overview/03_replication_server_components_and_architecture/01_physical_components/#xdb_replication_conf_file)). Thus, any subsequent startups of the publication and subscription servers use this newly designated controller database. -The controller database can be subsequently changed to use another publication database as described in sections [Switching an Active Controller Database](../06_mmr_operation/#switching_active_controller_db) and [Restarting with an Alternate Controller Database](../06_mmr_operation/#restart_with_alternate_controller_db). +The controller database can be subsequently changed to use another publication database as described in sections [Switching an Active Controller Database](#switching_active_controller_db) and [Restarting with an Alternate Controller Database](#restart_with_alternate_controller_db). @@ -64,11 +54,11 @@ The controller database can be subsequently changed to use another publication d If at some point, the database server hosting the controller database must be taken offline for maintenance or some other reasons you can switch the role of the controller database to another publication database. -If the publication server is currently running, this switch can be made using the xDB Replication Console (see Section [Switching the Controller Database](../07_common_operations/#switching_controller_db)) or the xDB Replication Server CLI (see Section Setting the Controller (setascontroller) <set\_controller>). +If the publication server is currently running, this switch can be made using the xDB Replication Console (see Section [Switching the Controller Database](../07_common_operations/07_switching_controller_db/#switching_controller_db)) or the xDB Replication Server CLI (see Section Setting the Controller (setascontroller) <set_controller>). After the switch has occurred, you can take the former controller database offline. Any pending transactions involving the former controller database will be applied after it is brought back online. -If the publication server is not running, you can still change the controller database so that the publication server connects to a newly designated controller database when the publication server is started. See Section [Restarting with an Alternate Controller Database](../06_mmr_operation/#restart_with_alternate_controller_db) for information on this method. +If the publication server is not running, you can still change the controller database so that the publication server connects to a newly designated controller database when the publication server is started. See Section [Restarting with an Alternate Controller Database](#restart_with_alternate_controller_db) for information on this method. @@ -79,6 +69,6 @@ If for some reason the currently designated controller database cannot be access - The xDB Replication Console is unresponsive or the xDB Replication Server CLI commands fail unpredictably. - The publication server is not running and it cannot be successfully started. -If it is determined that the controller database is inaccessible, then you can switch the controller database role to another publication database by editing the xDB Replication Configuration file so it contains the connection information of another primary node in the replication system. See Section [xDB Replication Configuration File](../02_overview/03_replication_server_components_and_architecture/#xdb_replication_conf_file) for information on the xDB Replication Configuration file. +If it is determined that the controller database is inaccessible, then you can switch the controller database role to another publication database by editing the xDB Replication Configuration file so it contains the connection information of another primary node in the replication system. See Section [xDB Replication Configuration File](../02_overview/03_replication_server_components_and_architecture/01_physical_components/#xdb_replication_conf_file) for information on the xDB Replication Configuration file. -After the xDB Replication Configuration file has been modified, restart the publication server along with the subscription server if you are using that as well. See Section [Registering a Publication Server](../05_smr_operation/02_creating_publication/#registering_publication_server) for instructions on starting the publication server. See Section [Registering a Subscription Server](../05_smr_operation/03_creating_subscription/#registering_subscription_server) for instructions on starting the subscription server. +After the xDB Replication Configuration file has been modified, restart the publication server along with the subscription server if you are using that as well. See Section [Registering a Publication Server](../05_smr_operation/02_creating_publication/01_registering_publication_server/#registering_publication_server) for instructions on starting the publication server. See Section [Registering a Subscription Server](../05_smr_operation/03_creating_subscription/01_registering_subscription_server/#registering_subscription_server) for instructions on starting the subscription server. diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/12_optimizing_performance_mmr.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/12_optimizing_performance_mmr.mdx index fa5bef90adc..232ec6d55c1 100644 --- a/product_docs/docs/eprs/6.2/06_mmr_operation/12_optimizing_performance_mmr.mdx +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/12_optimizing_performance_mmr.mdx @@ -4,14 +4,13 @@ title: "Optimizing Performance" - Various publication server configuration options are available to optimize the performance of multi-master replication systems. -Almost all publication server performance related configuration options for single-master replication systems are equally applicable to multi-master replication systems (except when they are database produce specific, such as for Oracle). See [Optimizing Performance](../05_smr_operation/08_optimizing_performance/#optimizing_performance) for a discussion of these options. +Almost all publication server performance related configuration options for single-master replication systems are equally applicable to multi-master replication systems (except when they are database produce specific, such as for Oracle). See [Optimizing Performance](#optimizing-performance) for a discussion of these options. The publication server configuration options are set in the publication server configuration file. See Section [Publication and Subscription Server Configuration Options](../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/#publications_and_subscriptions_server_conf_options) for a detailed explanation of how to set the configuration options in this file. -In addition, for configuration options specifically applicable to publication databases configured with the log-based method of synchronization replication, see Section [Log-Based Method of Synchronization Options](../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/#log_based_sync_options). +In addition, for configuration options specifically applicable to publication databases configured with the log-based method of synchronization replication, see Section [Log-Based Method of Synchronization Options](../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/15_log_based_sync_options/#log_based_sync_options). The following are some additional configuration options applicable to multi-master replication systems only. diff --git a/product_docs/docs/eprs/6.2/06_mmr_operation/index.mdx b/product_docs/docs/eprs/6.2/06_mmr_operation/index.mdx index 2b8d9d7764d..63f619e9de1 100644 --- a/product_docs/docs/eprs/6.2/06_mmr_operation/index.mdx +++ b/product_docs/docs/eprs/6.2/06_mmr_operation/index.mdx @@ -4,13 +4,12 @@ title: "Multi-Master Replication Operation" - This chapter describes how to configure and run xDB Replication Server for multi-master replication systems. -For configuration and management of your replication system, the xDB Replication Console graphical user interface is used to illustrate the steps and examples in this chapter. The same steps can be performed from the operating system command line using the xDB Replication Server Command Line Interface (CLI). The commands of the xDB Replication Server CLI utility are described in Chapter [xDB Replication Server Command Line Interface](08_xdb_cli/#xdb_cli). +For configuration and management of your replication system, the xDB Replication Console graphical user interface is used to illustrate the steps and examples in this chapter. The same steps can be performed from the operating system command line using the xDB Replication Server Command Line Interface (CLI). The commands of the xDB Replication Server CLI utility are described in Chapter [xDB Replication Server Command Line Interface](../08_xdb_cli/#xdb_cli).
      -pre\_steps creating\_publication\_mmr creating\_primary\_nodes control\_schema\_created\_in\_primary\_nodes on\_demand\_replication\_mmr conflict\_resolution view\_conflict\_history update\_conflict\_resolution\_options enable\_disable\_table\_filters switching\_pdn ensuring\_ha optimizing\_performance\_mmr +pre_steps creating_publication_mmr creating_primary_nodes control_schema_created_in_primary_nodes on_demand_replication_mmr conflict_resolution view_conflict_history update_conflict_resolution_options enable_disable_table_filters switching_pdn ensuring_ha optimizing_performance_mmr
      diff --git a/product_docs/docs/eprs/6.2/07_common_operations/01_select_tables_wildcard_selector.mdx b/product_docs/docs/eprs/6.2/07_common_operations/01_select_tables_wildcard_selector.mdx index 325a2646399..9a6bc05ca83 100644 --- a/product_docs/docs/eprs/6.2/07_common_operations/01_select_tables_wildcard_selector.mdx +++ b/product_docs/docs/eprs/6.2/07_common_operations/01_select_tables_wildcard_selector.mdx @@ -4,10 +4,9 @@ title: "Selecting Tables with the Wildcard Selector" +When selecting tables for creating a publication for a single-master replication system (see [Adding a Publication](../05_smr_operation/02_creating_publication/03_adding_publication/#adding_publication)) or a multi-master replication system (see [Adding a Publication](../06_mmr_operation/02_creating_publication_mmr/#add_pub_mmr)), there may be cases where the number of available tables for selection is so large that simply choosing them from a checklist becomes a difficult and time-consuming process. -When selecting tables for creating a publication for a single-master replication system (see [Adding a Publication](../05_smr_operation/02_creating_publication/#adding_publication)) or a multi-master replication system (see [Adding a Publication](../06_mmr_operation/#add_pub_mmr)), there may be cases where the number of available tables for selection is so large that simply choosing them from a checklist becomes a difficult and time-consuming process. - -This difficulty can also be encountered when adding tables to an existing publication (see [Adding Tables to a Publication](../07_common_operations/06_managing_publication/#add_tables_to_pub)) or deleting tables from an existing publication (see [Removing Tables from a Publication](../07_common_operations/06_managing_publication/#remove_tables_from_pub)). +This difficulty can also be encountered when adding tables to an existing publication (see [Adding Tables to a Publication](06_managing_publication/03_updating_pub/#add_tables_to_pub)) or deleting tables from an existing publication (see [Removing Tables from a Publication](06_managing_publication/03_updating_pub/#remove_tables_from_pub)). In such cases, the wildcard selector provides the capability to choose a set of tables by using pattern matching similar to the technique used by the SQL statement `LIKE` clause. @@ -17,7 +16,7 @@ In such cases, the wildcard selector provides the capability to choose a set of `Pattern matching` as performed by the wildcard selector is the process in which the eligible tables for an operation are returned in a filtered list if their schema and table name combination match a character string called a pattern. Matching a pattern means that the schema and table name combined in a string formatted as `schema_name.table_name` matches the pattern, character by character, according to the rules designated for the characters appearing in the pattern. -If the schema\_name.table\_name string matches the pattern, then the schema and table are displayed in the filtered list for that pattern, which is the `Available Tables` field of the `Wildcard Selector` dialog box. You can then selectively choose the tables from the filtered list to be added to a local list, which contains the potential, candidate tables for the operation for which you are using the wildcard selector. +If the schema_name.table_name string matches the pattern, then the schema and table are displayed in the filtered list for that pattern, which is the `Available Tables` field of the `Wildcard Selector` dialog box. You can then selectively choose the tables from the filtered list to be added to a local list, which contains the potential, candidate tables for the operation for which you are using the wildcard selector. Similarly, you can remove tables from the local list that had been previously selected if you decide that you do not want these particular tables applied for the operation. @@ -46,7 +45,7 @@ The following section describes the basic steps for using the wildcard selector. This section describes the basic process of using the wildcard selector. The following terms are used in the Wildcard Selector dialog box and the description of the wildcard selector feature: -- `Calling Dialog Box`. This is the dialog box of the operation from which you invoke the Wildcard Selector dialog box. The final set of tables from the wildcard selector is applied to the operation managed by the calling dialog box. Possible calling dialog boxes are the Create Publication dialog box (see [Adding a Publication](../05_smr_operation/02_creating_publication/#adding_publication) for a single-master replication system or [Adding a Publication](../06_mmr_operation/#add_pub_mmr) for a multi-master replication system), the `Add Tables` dialog box (see [Adding Tables to a Publication](../07_common_operations/06_managing_publication/#add_tables_to_pub)), and the `Remove Tables` dialog box (see Section [Removing Tables from a Publication](../07_common_operations/06_managing_publication/#remove_tables_from_pub)). +- `Calling Dialog Box`. This is the dialog box of the operation from which you invoke the Wildcard Selector dialog box. The final set of tables from the wildcard selector is applied to the operation managed by the calling dialog box. Possible calling dialog boxes are the Create Publication dialog box (see [Adding a Publication](../05_smr_operation/02_creating_publication/03_adding_publication/#adding_publication) for a single-master replication system or [Adding a Publication](../06_mmr_operation/02_creating_publication_mmr/#add_pub_mmr) for a multi-master replication system), the `Add Tables` dialog box (see [Adding Tables to a Publication](06_managing_publication/03_updating_pub/#add_tables_to_pub)), and the `Remove Tables` dialog box (see Section [Removing Tables from a Publication](06_managing_publication/03_updating_pub/#remove_tables_from_pub)). - `Table List`. This is the list of currently selected tables displayed in the calling dialog box. Each selected table has a check mark in its check box. - `Local List`. This is a temporary, internal copy of the table list managed by the wildcard selector. The wildcard selector allows you to add tables to the local list and to remove tables from the local list. When you click the Done button of the Wildcard Selector dialog box, the local list becomes the table list. In other words, the local list tables appear as the selected tables of the calling dialog box. - `Unselected Tables`. These are the tables eligible for, but have not been selected for the operation with which you are using the wildcard selector. When you click the Filter List button, the unselected tables that match the filter pattern are listed in the Available Tables field of the Wildcard Selector dialog box. To list all unselected tables, use the percent sign (`%`) for the filter pattern. @@ -84,17 +83,8 @@ The following example shows that the selected tables have been removed from the ![Selected tables added to the local list](/../images/image188.png) -
      - -
      - -Note - -
      - -You can click the `Cancel` button at any time to terminate the wildcard selector without applying the local list changes to the table list of the calling dialog box. - -
      +!!! Note + You can click the `Cancel` button at any time to terminate the wildcard selector without applying the local list changes to the table list of the calling dialog box. **Step 6:** As many times as desired, repeat steps 3 through 5 using the filter patterns needed to add all of your desired tables to the local list. diff --git a/product_docs/docs/eprs/6.2/07_common_operations/02_creating_schedule.mdx b/product_docs/docs/eprs/6.2/07_common_operations/02_creating_schedule.mdx index e8244263583..f1cd998db45 100644 --- a/product_docs/docs/eprs/6.2/07_common_operations/02_creating_schedule.mdx +++ b/product_docs/docs/eprs/6.2/07_common_operations/02_creating_schedule.mdx @@ -4,24 +4,14 @@ title: "Creating a Schedule" - A schedule establishes recurring points in time when replication is to occur. -
      - -
      - -Note - -
      - -(For MMR only): Be sure an initial snapshot replication has been performed from the primary definition node to every other primary node in the multi-master replication system. If a newly added primary node did not undergo an initial snapshot, any subsequent synchronization replication initiated by a schedule may fail to apply the transactions to that primary node. The initial snapshot could be taken when the primary node is first added (see [Creating Additional Primary nodes](../06_mmr_operation/#creating_primary_nodes)) or by performing an on demand snapshot (see [Performing Snapshot Replication](../06_mmr_operation/#perform_snapshot_replication_mmr)). - -
      +!!! Note + (For MMR only): Be sure an initial snapshot replication has been performed from the primary definition node to every other primary node in the multi-master replication system. If a newly added primary node did not undergo an initial snapshot, any subsequent synchronization replication initiated by a schedule may fail to apply the transactions to that primary node. The initial snapshot could be taken when the primary node is first added (see [Creating Additional Primary nodes](../06_mmr_operation/03_creating_primary_nodes/#creating_primary_nodes)) or by performing an on demand snapshot (see [Performing Snapshot Replication](../06_mmr_operation/05_on_demand_replication_mmr/#perform_snapshot_replication_mmr)). In a single-master replication system, once a schedule is created the subscription server initiates replications according to the schedule until either the schedule is changed or removed. In a multi-master replication system, the publication server handles this process. -See [Managing a Schedule](../07_common_operations/#managing_schedule) for changing or removing a schedule. +See [Managing a Schedule](03_managing_schedule/#managing_schedule) for changing or removing a schedule. When a scheduled replication is to take place, all components of the replication system must be running: @@ -65,29 +55,11 @@ For snapshot replications, skipped, scheduled replications present no problem si **Step 3:** In the `Scheduled Task Wizard` dialog box, select the radio button for either synchronization replication or snapshot replication. -
      - -
      - -Note - -
      - -If the publication associated with this subscription is a snapshot-only publication, then only Snapshot may be chosen. - -
      - -
      - -
      - -Note - -
      - -In a multi-master replication system, only Synchronize may be chosen. +!!! Note + If the publication associated with this subscription is a snapshot-only publication, then only Snapshot may be chosen. -
      +!!! Note + In a multi-master replication system, only Synchronize may be chosen. ![Scheduled Task Wizard dialog box](/../images/image203.png) @@ -97,7 +69,7 @@ In a multi-master replication system, only Synchronize may be chosen. - `Daily`. Schedules replication to run once a day at the time you choose. Select this option if the target tables need to be refreshed daily. - `Weekly`. Schedules replication to run once a day at the time you choose, but only on the specific days of the week you choose. Select this option if you need more flexibility than a daily schedule, and the target tables do not have to be refreshed every day. - `Monthly`. Schedules replication to run one day per month on the day of the month and time you choose, but only on the specific months you choose. Select this option if updates to the source tables are not very frequent, and the target tables can be out-of-date by a month or more. The Monthly option allows you to schedule replication for as frequently as once a month or infrequently as once a year. -- `Cron` Expression. Provides additional flexibility for specifying a schedule beyond the four preceding radio button choices. See appendix [Writing a Cron Expression](../10_appendix/04_miscellaneous_xdb_processing_topics/#writing_cron_exp) for directions on writing a cron expression. +- `Cron` Expression. Provides additional flexibility for specifying a schedule beyond the four preceding radio button choices. See appendix [Writing a Cron Expression](../10_appendix/04_miscellaneous_xdb_processing_topics/03_writing_cron_exp/#writing_cron_exp) for directions on writing a cron expression. The following example shows the selection of a weekly schedule. diff --git a/product_docs/docs/eprs/6.2/07_common_operations/03_managing_schedule.mdx b/product_docs/docs/eprs/6.2/07_common_operations/03_managing_schedule.mdx index 9c7a81b873e..e76107894c2 100644 --- a/product_docs/docs/eprs/6.2/07_common_operations/03_managing_schedule.mdx +++ b/product_docs/docs/eprs/6.2/07_common_operations/03_managing_schedule.mdx @@ -4,7 +4,6 @@ title: "Managing a Schedule" - Once a schedule has been created, xDB Replication Server performs replications according to the schedule until the schedule is updated or removed. The updating or removal of a schedule has no effect on a replication that has already been started. If a replication is in progress when the schedule is updated or removed, the in progress replication continues until completion. @@ -13,9 +12,9 @@ The updating or removal of a schedule has no effect on a replication that has al The following steps illustrate how to change an existing schedule. -**Step 1 (For SMR only):** Make sure the subscription server whose node is the parent of the subscription you wish to change is running and has been registered in the xDB Replication Console you are using. See [Registering a Subscription Server](../05_smr_operation/03_creating_subscription/#registering_subscription_server) for directions on starting and registering a subscription server. +**Step 1 (For SMR only):** Make sure the subscription server whose node is the parent of the subscription you wish to change is running and has been registered in the xDB Replication Console you are using. See [Registering a Subscription Server](../05_smr_operation/03_creating_subscription/01_registering_subscription_server/#registering_subscription_server) for directions on starting and registering a subscription server. -**Step 1 (For MMR only):** Make sure the publication server whose node is the parent of the controller database you wish to change is running and has been registered in the xDB Replication Console you are using. See [Registering a Publication Server](../05_smr_operation/02_creating_publication/#registering_publication_server) for directions on starting and registering a publication server. +**Step 1 (For MMR only):** Make sure the publication server whose node is the parent of the controller database you wish to change is running and has been registered in the xDB Replication Console you are using. See [Registering a Publication Server](../05_smr_operation/02_creating_publication/01_registering_publication_server/#registering_publication_server) for directions on starting and registering a publication server. **Step 2 (For SMR only):** Select the Subscription node of the subscription for which you wish to update the schedule. @@ -42,7 +41,7 @@ The following steps illustrate how to change an existing schedule. ![Configure Scheduler confirmation](/../images/image210.png) -**Step 5:** In the Scheduled Task Wizard dialog box, create the new schedule. See Step 3 of Section [Creating a Schedule](../07_common_operations/#creating_schedule) for details on how to create a new schedule. +**Step 5:** In the Scheduled Task Wizard dialog box, create the new schedule. See Step 3 of Section [Creating a Schedule](02_creating_schedule/#creating_schedule) for details on how to create a new schedule. ![Scheduled Task Wizard dialog box](/../images/image211.png) @@ -52,9 +51,9 @@ The following steps illustrate how to change an existing schedule. If you no longer wish replication to take place automatically, you must remove the schedule. You can always re-add a schedule or perform on demand replication. -**Step 1 (For SMR only):** Make sure the subscription server whose node is the parent of the subscription you wish to change is running and has been registered in the xDB Replication Console you are using. See Section [Registering a Subscription Server](../05_smr_operation/03_creating_subscription/#registering_subscription_server) for directions on starting and registering a subscription server. +**Step 1 (For SMR only):** Make sure the subscription server whose node is the parent of the subscription you wish to change is running and has been registered in the xDB Replication Console you are using. See Section [Registering a Subscription Server](../05_smr_operation/03_creating_subscription/01_registering_subscription_server/#registering_subscription_server) for directions on starting and registering a subscription server. -**Step 1 (For MMR only):** Make sure the publication server whose node is the parent of the controller database you wish to change is running and has been registered in the xDB Replication Console you are using. See Section [Registering a Publication Server](../05_smr_operation/02_creating_publication/#registering_publication_server) for directions on starting and registering a publication server. +**Step 1 (For MMR only):** Make sure the publication server whose node is the parent of the controller database you wish to change is running and has been registered in the xDB Replication Console you are using. See Section [Registering a Publication Server](../05_smr_operation/02_creating_publication/01_registering_publication_server/#registering_publication_server) for directions on starting and registering a publication server. **Step 2 (For SMR only):** Select the Subscription node of the subscription for which you wish to remove the schedule. diff --git a/product_docs/docs/eprs/6.2/07_common_operations/04_view_replication_history.mdx b/product_docs/docs/eprs/6.2/07_common_operations/04_view_replication_history.mdx index 511af1e9ecf..5e7870d2b9d 100644 --- a/product_docs/docs/eprs/6.2/07_common_operations/04_view_replication_history.mdx +++ b/product_docs/docs/eprs/6.2/07_common_operations/04_view_replication_history.mdx @@ -4,32 +4,13 @@ title: "Viewing Replication History" +A summary of replications performed on each subscription or primary node can be viewed in the xDB Replication Console. A detailed replication history showing each insert, update, and deletion made against each target table can be viewed as well. See Section [Synchronization Replication with the Trigger-Based Method](../02_overview/02_replication_concepts_and_definitions/09_sync_replication_trigger_based/#sync_replication_trigger_based) for a discussion on how changes are applied to target tables for the target-based method of synchronization replication. See [Synchronization Replication with the Log-Based Method](../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#sync_replication_log_based) for information on the log-based method of synchronization replication. -A summary of replications performed on each subscription or primary node can be viewed in the xDB Replication Console. A detailed replication history showing each insert, update, and deletion made against each target table can be viewed as well. See Section [Synchronization Replication with the Trigger-Based Method](../02_overview/02_replication_concepts_and_definitions/#sync_replication_trigger_based) for a discussion on how changes are applied to target tables for the target-based method of synchronization replication. See [Synchronization Replication with the Log-Based Method](../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#sync_replication_log_based) for information on the log-based method of synchronization replication. +!!! Note + (For SMR Only): The replication history can be viewed from the Publication node as well as from the Subscription node. The history shown for a Publication node is actually the exact same set of inserts, updates, and deletions made on the subscription tables by the publication server during synchronization. The history shown for a Publication node does not show the actual SQL statements processed on the publication tables that originated from user applications. -
      - -
      - -Note - -
      - -(For SMR Only): The replication history can be viewed from the Publication node as well as from the Subscription node. The history shown for a Publication node is actually the exact same set of inserts, updates, and deletions made on the subscription tables by the publication server during synchronization. The history shown for a Publication node does not show the actual SQL statements processed on the publication tables that originated from user applications. - -
      - -
      - -
      - -Note - -
      - -(For MMR only): The replication history can be viewed from the Publication node under any primary node in the multi-master replication system. The history shown includes inserts, updates, and deletions made on all publication tables of all primary nodes by the publication server during synchronization, and hence, the history appears the same regardless of the primary node under which the history is viewed. - -
      +!!! Note + (For MMR only): The replication history can be viewed from the Publication node under any primary node in the multi-master replication system. The history shown includes inserts, updates, and deletions made on all publication tables of all primary nodes by the publication server during synchronization, and hence, the history appears the same regardless of the primary node under which the history is viewed. ## All Replication History @@ -53,17 +34,8 @@ The following steps describe how to view the replication history of the events i ![Selecting a publication on which to view replication history](/../images/image217.png) -
      - -
      - -Note - -
      - -Every snapshot replication and each synchronization replication with at least one update produces a history record that is maintained in replication history tables in the control schema. Over time the size of the replication history tables will grow. Replication history records can be periodically deleted. See Section [Cleaning Up Replication History](../07_common_operations/#clean_up_replication_history) for information on cleaning up replication history. - -
      +!!! Note + Every snapshot replication and each synchronization replication with at least one update produces a history record that is maintained in replication history tables in the control schema. Over time the size of the replication history tables will grow. Replication history records can be periodically deleted. See Section [Cleaning Up Replication History](05_managing_history/#clean_up_replication_history) for information on cleaning up replication history. ## Hiding Synchronizations With Zero Transaction Counts @@ -79,21 +51,12 @@ While viewing the `Replication History` tab, you can hide the records with zero **Step 2:** The next time the `Replication History` tab refreshes, only the replications with non-zero transaction counts appear in the `Replication History`. -
      - -
      - -Note - -
      - -Zero transaction count replication records are maintained in the publication server memory. By default, they are not permanently stored on disk. Therefore when the publication server is shut down, the in-memory zero transaction count replication records are no longer available. - -
      +!!! Note + Zero transaction count replication records are maintained in the publication server memory. By default, they are not permanently stored on disk. Therefore when the publication server is shut down, the in-memory zero transaction count replication records are no longer available. When the publication server starts running again, zero transaction count replication records will appear on the `Replication History` tab as zero transaction count replications occur. -If you wish to permanently store zero transaction count replication records to disk, set the publication server configuration option `persistZeroTxRepEvent` to true. See Section [Replacing Null Characters](../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/#replacing_null_characters) for further information. +If you wish to permanently store zero transaction count replication records to disk, set the publication server configuration option `persistZeroTxRepEvent` to true. See Section [Replacing Null Characters](../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/02_replacing_null_characters/#replacing_null_characters) for further information. @@ -111,21 +74,12 @@ Step 2: Click the `Replication History` tab to show a history of replications fo **Step 3:** Click the `View Data` link to show a list of each change made to the table during the synchronization replication. The `Synchronize History` window shows two update operations followed by one insert operation against the `emp` target table that correspond to the following set of SQL statements executed on the `emp` source table: -``` text +```text UPDATE emp SET hiredate = TO_DATE('07-JUN-15'), mgr = 7698 WHERE empno IN (9001, 9002); INSERT INTO emp (empno, ename, job, mgr, deptno) VALUES (9003, 'JOHNSON', 'SALESMAN', 7698, 30); ``` ![Synchronize History window](/../images/image222.png) -
      - -
      - -Note - -
      - -Since all insert, update, and delete operations on all source tables are recorded in shadow tables, the size of the shadow tables may grow considerably over time for volatile source tables. The rows shown in the Synchronize History window are obtained from these shadow tables. Rows in the shadow tables can be periodically deleted. See [Cleaning Up Shadow Table History](../08_xdb_cli/03_xdb_cli_commands/#clean_shadow_table_history) for information on cleaning up the shadow tables. - -
      +!!! Note + Since all insert, update, and delete operations on all source tables are recorded in shadow tables, the size of the shadow tables may grow considerably over time for volatile source tables. The rows shown in the Synchronize History window are obtained from these shadow tables. Rows in the shadow tables can be periodically deleted. See [Cleaning Up Shadow Table History](../08_xdb_cli/03_xdb_cli_commands/49_clean_shadow_table_history/#clean_shadow_table_history) for information on cleaning up the shadow tables. diff --git a/product_docs/docs/eprs/6.2/07_common_operations/05_managing_history.mdx b/product_docs/docs/eprs/6.2/07_common_operations/05_managing_history.mdx index 3e419c4f93e..a888e57cdbc 100644 --- a/product_docs/docs/eprs/6.2/07_common_operations/05_managing_history.mdx +++ b/product_docs/docs/eprs/6.2/07_common_operations/05_managing_history.mdx @@ -4,7 +4,6 @@ title: "Managing History" - xDB Replication Server maintains three types of history: - Shadow Table History. Records of each change (insert, update, or delete) that was applied to each target table during synchronization replications using the trigger-based method. There is no shadow table history for synchronization replications using the log-based method. @@ -13,9 +12,9 @@ xDB Replication Server maintains three types of history: The size of the control schema tables that store these history records grows over time, and thus there are a number of methods referred to as cleanup to delete such history records. -Shadow table history cleanup information is described in sections [Scheduling Shadow Table History Cleanup](../07_common_operations/#schedule_shadow_table_history_cleanup) and [Cleaning Up Shadow Table History](../08_xdb_cli/03_xdb_cli_commands/#clean_shadow_table_history). For replication history cleanup, see [Cleaning Up Replication History](../08_xdb_cli/03_xdb_cli_commands/#clean_replication_history). +Shadow table history cleanup information is described in sections [Scheduling Shadow Table History Cleanup](#schedule_shadow_table_history_cleanup) and [Cleaning Up Shadow Table History](../08_xdb_cli/03_xdb_cli_commands/49_clean_shadow_table_history/#clean_shadow_table_history). For replication history cleanup, see [Cleaning Up Replication History](../08_xdb_cli/03_xdb_cli_commands/50_clean_replication_history/#clean_replication_history). -For event history cleanup, see [Cleaning Up Event History](../07_common_operations/#clean_event_history). +For event history cleanup, see [Cleaning Up Event History](#clean_event_history). @@ -25,31 +24,13 @@ A preference can be set for each publication database definition to determine if Replication history is not deleted by scheduling shadow table history cleanup. Whenever a new publication database definition is created, there is a scheduled default setting of every Sunday at 12:00 AM midnight for shadow table history cleanup. -
      - -
      - -Note - -
      - -A configuration option is available to force shadow table history cleanup after every synchronization replication. See [Forcing Immediate Shadow Table Cleanup](../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/#forcing_shadow_table_cleanup) for information on this option. - -
      - -
      +!!! Note + A configuration option is available to force shadow table history cleanup after every synchronization replication. See [Forcing Immediate Shadow Table Cleanup](../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/09_forcing_shadow_table_cleanup/#forcing_shadow_table_cleanup) for information on this option. -
      +!!! Note + The cleanup of certain processed rows in the shadow tables may be delayed beyond the next scheduled cleanup, but will eventually be removed in subsequent cleanup events. -Note - -
      - -The cleanup of certain processed rows in the shadow tables may be delayed beyond the next scheduled cleanup, but will eventually be removed in subsequent cleanup events. - -
      - -**For Oracle only:** For scheduling of shadow table history cleanup on an Oracle publication database, the Oracle DBMS\_JOB package on the Oracle database server is used. The time you specify in the schedule for cleanup is passed and stored in `DBMS_JOB` without time zone translation. +**For Oracle only:** For scheduling of shadow table history cleanup on an Oracle publication database, the Oracle DBMS_JOB package on the Oracle database server is used. The time you specify in the schedule for cleanup is passed and stored in `DBMS_JOB` without time zone translation. For example, assume the publication server is running on a host in New York and the Oracle publication database is on a server in California, which has a 3-hour time difference. If you set shadow table history cleanup to run at 12:00 AM midnight according to the New York based publication server, the cleanup job on the California based Oracle database will start at 12:00 AM midnight Pacific Time (in California), which would be 3:00 AM Eastern Time (in New York). @@ -65,21 +46,12 @@ By contrast, assume the publication server is running on a host in New York alon **For Postgres only:** The publication server must be running in order for the cleanup job to run on a Postgres publication database. -
      - -
      - -Note - -
      - -An alternative to using the Quartz scheduler when Postgres is the publication database, is to use pgAgent job scheduling instead. See [Using pgAgent Job Scheduling](../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/#using_pgagent_job_scheduling) for information on how to use pgAgent job scheduling and the advantages, thereof. - -
      +!!! Note + An alternative to using the Quartz scheduler when Postgres is the publication database, is to use pgAgent job scheduling instead. See [Using pgAgent Job Scheduling](../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/08_using_pgagent_job_scheduling/#using_pgagent_job_scheduling) for information on how to use pgAgent job scheduling and the advantages, thereof. The following steps show how to alter the default setting. -**Step 1:** Make sure the publication server whose node is the parent of the publication database definition whose cleanup scheduling preference you want to set is running and has been registered in the xDB Replication Console you are using. See [Registering a Publication Server](../05_smr_operation/02_creating_publication/#registering_publication_server) for directions on starting and registering a publication server. +**Step 1:** Make sure the publication server whose node is the parent of the publication database definition whose cleanup scheduling preference you want to set is running and has been registered in the xDB Replication Console you are using. See [Registering a Publication Server](../05_smr_operation/02_creating_publication/01_registering_publication_server/#registering_publication_server) for directions on starting and registering a publication server. **Step 2:** Select the Publication Database node for which you want to set the cleanup scheduling preference. @@ -98,19 +70,10 @@ The following steps show how to alter the default setting. - Every number of minutes/hours. Schedules shadow table history cleanup to run continuously at an interval in either minutes or hours that you specify. Select this option if there are huge volumes of updates to the publication tables during the course of the day, every day. - Every Day at hour of day. Schedules shadow table history cleanup to run once a day on the hour you choose. Select this option if updates to the publication tables are frequent enough to require more than once a week cleanup, but not needed more than once a day. - Every selected day of week at hour of day. Schedules shadow table history cleanup to run once a week on the day and at the hour you choose. Select this option if updates to the publication tables are infrequent and you do not want to run cleanup manually. -- Cron Expression. Provides additional flexibility for specifying a schedule beyond the three preceding radio button choices. See appendix [Writing a Cron Expression](../10_appendix/04_miscellaneous_xdb_processing_topics/#writing_cron_exp) for directions on writing a cron expression. - -
      - -
      - -Note - -
      +- Cron Expression. Provides additional flexibility for specifying a schedule beyond the three preceding radio button choices. See appendix [Writing a Cron Expression](../10_appendix/04_miscellaneous_xdb_processing_topics/03_writing_cron_exp/#writing_cron_exp) for directions on writing a cron expression. -A configuration option is available to force shadow table history cleanup after every synchronization replication. See [Forcing Immediate Shadow Table Cleanup](../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/#forcing_shadow_table_cleanup) for information on this option. - -
      +!!! Note + A configuration option is available to force shadow table history cleanup after every synchronization replication. See [Forcing Immediate Shadow Table Cleanup](../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/09_forcing_shadow_table_cleanup/#forcing_shadow_table_cleanup) for information on this option. ![Cleanup Job dialog box](/../images/image226.png) @@ -130,25 +93,16 @@ When shadow table history is cleaned up, the rows in the following xDB Replicati **For Oracle only:** When Oracle is the publication database, these tables are located in the publication database in the schema of the publication database user. -For SQL Server only: When SQL Server is the publication database, these tables are located in the publication database in the schema you chose during Step 5 of Section [SQL Server Publication Database](../05_smr_operation/01_prerequisites/#sql_server_pub_db). - -**For Postgres only:** When Postgres is the publication database, these tables are located in the publication database in schema `_edb_replicator_pub`. Shadow table history cleanup can be scheduled to run periodically (see [Scheduling Shadow Table History Cleanup](../07_common_operations/#schedule_shadow_table_history_cleanup)) or it can be run on demand. - -
      - -
      - -Note - -
      +For SQL Server only: When SQL Server is the publication database, these tables are located in the publication database in the schema you chose during Step 5 of Section [SQL Server Publication Database](../05_smr_operation/01_prerequisites/04_preparing_pub_database/#sql_server_pub_db). -The cleanup of certain processed rows in the shadow tables may not occur during an on demand cleanup or may be delayed beyond the next scheduled cleanup, but will eventually be removed in subsequent cleanup events. +**For Postgres only:** When Postgres is the publication database, these tables are located in the publication database in schema `_edb_replicator_pub`. Shadow table history cleanup can be scheduled to run periodically (see [Scheduling Shadow Table History Cleanup](#schedule_shadow_table_history_cleanup)) or it can be run on demand. -
      +!!! Note + The cleanup of certain processed rows in the shadow tables may not occur during an on demand cleanup or may be delayed beyond the next scheduled cleanup, but will eventually be removed in subsequent cleanup events. The following are the steps to run shadow table history cleanup on demand for a chosen publication. -**Step 1:** Make sure the publication server whose node is the parent of the publication whose shadow table history you wish to clean up is running and has been registered in the xDB Replication Console you are using. See [Registering a Publication Server](../05_smr_operation/02_creating_publication/#registering_publication_server) for directions on starting and registering a publication server. +**Step 1:** Make sure the publication server whose node is the parent of the publication whose shadow table history you wish to clean up is running and has been registered in the xDB Replication Console you are using. See [Registering a Publication Server](../05_smr_operation/02_creating_publication/01_registering_publication_server/#registering_publication_server) for directions on starting and registering a publication server. **Step 2:** Select the Publication node of the publication for which you want to clean up the shadow table history. @@ -181,7 +135,7 @@ Cleaning up replication history deletes rows from the following tables in the co The following are the steps to run replication history cleanup for a chosen publication. -**Step 1:** Make sure the publication server whose node is the parent of the publication whose replication history you wish to cleanup is running and has been registered in the xDB Replication Console you are using. See [Registering a Publication Server](../05_smr_operation/02_creating_publication/#registering_publication_server) for directions on starting and registering a publication server. +**Step 1:** Make sure the publication server whose node is the parent of the publication whose replication history you wish to cleanup is running and has been registered in the xDB Replication Console you are using. See [Registering a Publication Server](../05_smr_operation/02_creating_publication/01_registering_publication_server/#registering_publication_server) for directions on starting and registering a publication server. **Step 2:** Select the Publication node of the publication for which you want to clean up replication history. @@ -207,7 +161,7 @@ After replication history cleanup, if you click the `Replication History` tab, n ## Cleaning Up Event History -Unlike shadow table history (Section [Cleaning Up Shadow Table History](../08_xdb_cli/03_xdb_cli_commands/#clean_shadow_table_history)) and replication history (Section [Cleaning Up Replication History](../07_common_operations/#clean_up_replication_history)), event history is neither viewable nor removable using the xDB Replication Console. +Unlike shadow table history (Section [Cleaning Up Shadow Table History](../08_xdb_cli/03_xdb_cli_commands/49_clean_shadow_table_history/#clean_shadow_table_history)) and replication history (Section [Cleaning Up Replication History](#clean_up_replication_history)), event history is neither viewable nor removable using the xDB Replication Console. Event history is a recording of various updates to the control schema tables that occur during xDB Replication Server processing. Hence, the event history content grows significantly over time. @@ -216,7 +170,7 @@ The tables containing event history, and thus the tables to be cleaned up are th - `xdb_events` - `xdb_events_status` -In addition, the replication history tables are cleaned up as well. These tables can also be manually cleaned up as described in Section [Cleaning Up Replication History](../07_common_operations/#clean_up_replication_history). +In addition, the replication history tables are cleaned up as well. These tables can also be manually cleaned up as described in Section [Cleaning Up Replication History](#clean_up_replication_history). - `xdb_pub_replog` - `xdb_pub_table_replog` @@ -231,4 +185,4 @@ Publication server configuration option `historyCleanupDaysThreshold` provides t In order to cleanup all completed event and replication history regardless of its age, set `historyCleanupDaysThreshold` to a value of 0, then restart the publication server. The cleanup occurs during the next scheduled 12 AM cleanup process. -See [Setting Event History Cleanup Threshold](../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/#setting_event_history_cleanup) for the `historyCleanupDaysThreshold` option. +See [Setting Event History Cleanup Threshold](../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/10_setting_event_history_cleanup/#setting_event_history_cleanup) for the `historyCleanupDaysThreshold` option. diff --git a/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/01_updating_publication_server.mdx b/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/01_updating_publication_server.mdx index 29c4a96f76e..1224fa8626d 100644 --- a/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/01_updating_publication_server.mdx +++ b/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/01_updating_publication_server.mdx @@ -4,17 +4,16 @@ title: "Updating a Publication Server" - There are two aspects of metadata related to the publication server that may need to be updated depending upon the change in the host environment: - If the network location (IP address or port number), admin user name, or password of the publication server changes, and if you have saved this information in the server login file, you need to update the server login file with the new information. - If the network location (IP address or port number) of a subscription server changes, then for each publication server managing a publication associated with a subscription of the changed subscription server, you must update the publication server’s metadata with the subscription server’s new network location. This type of update applies only to single-master replication systems. -The first type of update is discussed in the following section. The second type of update is discussed in Section [Subscription Server Network Location](../../07_common_operations/06_managing_publication/#sub_server_network_loc). +The first type of update is discussed in the following section. The second type of update is discussed in Section [Subscription Server Network Location](#sub_server_network_loc). ## Publication Server Login File -When you register a publication server in the xDB Replication Console, you may choose to save the publication server’s network location, admin user name, and encrypted password in a server login file on the computer on which you are running the xDB Replication Console. See [Saving Server Login Information](../../#saving_server_login_info) for information on saving the login information. +When you register a publication server in the xDB Replication Console, you may choose to save the publication server’s network location, admin user name, and encrypted password in a server login file on the computer on which you are running the xDB Replication Console. See [Saving Server Login Information](../../04_intro_xdb_console/#saving_server_login_info) for information on saving the login information. The steps described in this section show you how to update the publication server’s login information in the server login file. @@ -30,7 +29,7 @@ You can perform the following actions on the server login file: The following steps change only the content of the server login file residing on the host under the current xDB Replication Console user’s home directory. These changes do not alter any characteristic of the actual publication server daemon (on Linux) or service (on Windows). These changes affect only how a publication server is viewed through the xDB Replication Console on this host by this user. -**Step 1:** The publication server whose login information you want to save, change, or delete in the server login file must be running before you can make any changes to the file. See Step 1 of Section [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server) for directions on starting the publication server. +**Step 1:** The publication server whose login information you want to save, change, or delete in the server login file must be running before you can make any changes to the file. See Step 1 of Section [Registering a Publication Server](../../05_smr_operation/02_creating_publication/01_registering_publication_server/#registering_publication_server) for directions on starting the publication server. **Step 2:** Click the secondary mouse button on the Publication Server node and choose Update. The `Update Publication Server` dialog box appears. @@ -52,17 +51,8 @@ If an error message appears after clicking the Update button, the server login f ## Subscription Server Network Location -
      - -
      - -Note - -
      - -This section applies only to single-master replication systems. - -
      +!!! Note + This section applies only to single-master replication systems. Part of the metadata stored for each publication server is the network location of subscription servers that manage subscriptions associated with the publication server’s publications. @@ -74,21 +64,12 @@ If the network location of a subscription server changes after subscriptions hav The following are the steps to update the subscription server network location within a publication server’s metadata. -**Step 1:** The publication server whose metadata you want to change must be running. See Step 1 of Section [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server) for directions on starting the publication server. +**Step 1:** The publication server whose metadata you want to change must be running. See Step 1 of Section [Registering a Publication Server](../../05_smr_operation/02_creating_publication/01_registering_publication_server/#registering_publication_server) for directions on starting the publication server. **Step 2:** Click the secondary mouse button on the Publication Server node and choose Update Subscription Servers. The `Update Subscription Servers` dialog box appears. -
      - -
      - -Note - -
      - -If the error message box reappears, click the `OK` button and repeat Step 2. - -
      +!!! Note + If the error message box reappears, click the `OK` button and repeat Step 2. ![Update Subscription Servers dialog box](/../../images/image240.png) diff --git a/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/02_updating_pub_database.mdx b/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/02_updating_pub_database.mdx index faa07775564..cb2bea31ec5 100644 --- a/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/02_updating_pub_database.mdx +++ b/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/02_updating_pub_database.mdx @@ -4,22 +4,12 @@ title: "Updating a Publication Database" - -When you create a publication database definition, you save the publication database server’s network location (IP address and port number), the database identifier, a database login user name, and the user’s password in the control schema accessed by the publication server. This login information is used whenever a session needs to be established with the publication database. See [Adding a Publication Database](../../05_smr_operation/02_creating_publication/#adding_pub_database) for information on creating a publication database definition for a single-master replication system. See sections [Adding the Primary definition node](../../06_mmr_operation/#adding_pdn) and [Creating Additional Primary nodes](../../06_mmr_operation/#creating_primary_nodes) for a multi-master replication system. +When you create a publication database definition, you save the publication database server’s network location (IP address and port number), the database identifier, a database login user name, and the user’s password in the control schema accessed by the publication server. This login information is used whenever a session needs to be established with the publication database. See [Adding a Publication Database](../../05_smr_operation/02_creating_publication/02_adding_pub_database/#adding_pub_database) for information on creating a publication database definition for a single-master replication system. See sections [Adding the Primary definition node](../../06_mmr_operation/02_creating_publication_mmr/#adding_pdn) and [Creating Additional Primary nodes](../../06_mmr_operation/03_creating_primary_nodes/#creating_primary_nodes) for a multi-master replication system. The steps described in this section show you how to update the publication database login information stored in the control schema should any of these attributes of the actual, physical database change. -
      - -
      - -Note - -
      - -Depending upon the database type (Oracle, SQL Server, or Postgres), certain attributes must not be changed. You must not change any attribute that alters access to the schema where the control schema objects were created when you originally added this publication database definition. See [Control Schema Objects Created for a Publication](../../05_smr_operation/02_creating_publication/#control_schema_objects_created_for_publication) for the location of the control schema objects. - -
      +!!! Note + Depending upon the database type (Oracle, SQL Server, or Postgres), certain attributes must not be changed. You must not change any attribute that alters access to the schema where the control schema objects were created when you originally added this publication database definition. See [Control Schema Objects Created for a Publication](../../05_smr_operation/02_creating_publication/04_control_schema_objects_created_for_publication/#control_schema_objects_created_for_publication) for the location of the control schema objects. Attributes you must not change include the following: @@ -35,7 +25,7 @@ Attributes you may change include the following: **Step 1:** Make sure the database server that you ultimately wish to save as the publication database definition is running and accepting client connections. -**Step 2:** Make sure the publication server whose node is the parent of the publication database definition you wish to change is running and has been registered in the xDB Replication Console you are using. See [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server) for directions on starting and registering a publication server. +**Step 2:** Make sure the publication server whose node is the parent of the publication database definition you wish to change is running and has been registered in the xDB Replication Console you are using. See [Registering a Publication Server](../../05_smr_operation/02_creating_publication/01_registering_publication_server/#registering_publication_server) for directions on starting and registering a publication server. **Step 3:** Select the Publication Database node corresponding to the publication database definition that you wish to update. @@ -43,7 +33,7 @@ Attributes you may change include the following: **Step 4:** From the `Publication` menu, choose `Publication Database`, and then choose `Update Database`. Alternatively, click the secondary mouse button on the Publication Database node and choose Update Database. The `Update Database Source` dialog box appears. -**Step 5:** Enter the desired changes. See Step 3 of [Adding a Publication Database](../../05_smr_operation/02_creating_publication/#adding_pub_database) for the precise meanings of the fields for a single-master replication system. See sections [Adding the Primary definition node](../../06_mmr_operation/#adding_pdn) and [Creating Additional Primary nodes](../../06_mmr_operation/#creating_primary_nodes) for a multi-master replication system. +**Step 5:** Enter the desired changes. See Step 3 of [Adding a Publication Database](../../05_smr_operation/02_creating_publication/02_adding_pub_database/#adding_pub_database) for the precise meanings of the fields for a single-master replication system. See sections [Adding the Primary definition node](../../06_mmr_operation/02_creating_publication_mmr/#adding_pdn) and [Creating Additional Primary nodes](../../06_mmr_operation/03_creating_primary_nodes/#creating_primary_nodes) for a multi-master replication system. ![Update Database Source dialog box for a single-master replication system](/../../images/image243.png) @@ -53,7 +43,7 @@ If an error message appears investigate the cause of the error, correct the prob ![Successful publication database test](/../../images/image244.png) -**Step 7:** Restart the publication server. See [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server) for directions on restarting the publication server. +**Step 7:** Restart the publication server. See [Registering a Publication Server](../../05_smr_operation/02_creating_publication/01_registering_publication_server/#registering_publication_server) for directions on restarting the publication server. **Step 8:** Click the `Refresh` icon in the xDB Replication Console tool bar to show the updated Publication Database node and any of its publications. diff --git a/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/03_updating_pub.mdx b/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/03_updating_pub.mdx index dc6f7b52479..da87b83fcd2 100644 --- a/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/03_updating_pub.mdx +++ b/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/03_updating_pub.mdx @@ -4,7 +4,6 @@ title: "Updating a Publication" - Existing publications can be updated in the following ways: - Tables can be added to the publication @@ -19,7 +18,7 @@ For a single-master replication system, you can add tables to a publication, eve The following are the steps to add tables to an existing publication. -**Step 1:** Make sure the publication server whose node is the parent of the publication you wish to change is running and has been registered in the xDB Replication Console you are using. See [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server) for directions on starting and registering a publication server. +**Step 1:** Make sure the publication server whose node is the parent of the publication you wish to change is running and has been registered in the xDB Replication Console you are using. See [Registering a Publication Server](../../05_smr_operation/02_creating_publication/01_registering_publication_server/#registering_publication_server) for directions on starting and registering a publication server. **Step 2 (For SMR only):** Select the Publication node of the publication to which you wish to add tables. @@ -39,7 +38,7 @@ The following are the steps to add tables to an existing publication. - Add. Check the boxes next to the table names from the Available Tables list that are to be added to the publication. If the publication is a snapshot-only publication, then views would appear in the Available Tables list as well. The Available Tables list contains only tables and views that are not already members of other publications under the same Publication Database node. Alternatively or in addition, click the `Use Wildcard Selection` button to use wildcard pattern matching for selecting tables to be added to the publication. - Select All. Check this box if you want to include all tables and views in the Available Tables list in the publication. -- Use Wildcard Selection. Click this button to use the wildcard selector to choose tables for the publication. See [Selecting Tables with the Wildcard Selector](../../07_common_operations/#select_tables_wildcard_selector) for information on the wildcard selector. +- Use Wildcard Selection. Click this button to use the wildcard selector to choose tables for the publication. See [Selecting Tables with the Wildcard Selector](../01_select_tables_wildcard_selector/#select_tables_wildcard_selector) for information on the wildcard selector. ![Add Tables dialog box](/../../images/image248.png) @@ -47,9 +46,9 @@ If you wish to omit certain rows of the publication tables or views from being r **Step 5 (Optional):** If you want to filter the rows of the publication tables or views, click the Table Filters tab. Define filter rules by entering a unique, descriptive filter name and an appropriate `SQL WHERE` clause in the Filter dialog box to select the rows you want to replicate. -For a single-master replication system, see [Adding a Publication](../../05_smr_operation/02_creating_publication/#adding_publication) for information on defining table filters on a publication table. +For a single-master replication system, see [Adding a Publication](../../05_smr_operation/02_creating_publication/03_adding_publication/#adding_publication) for information on defining table filters on a publication table. -For a multi-master replication system, see [Adding a Publication](../../06_mmr_operation/#add_pub_mmr). +For a multi-master replication system, see [Adding a Publication](../../06_mmr_operation/02_creating_publication_mmr/#add_pub_mmr). **Step 6 (For SMR only):** Click the `Add Tables` button. If Publication Updated Successfully appears, click the `OK` button, otherwise investigate the error and make the necessary corrections. @@ -67,13 +66,13 @@ If you wish to proceed, click the `Yes` button. If Publication Updated Successfu ![Publication and subscription with added table](/../../images/image251.png) -**Step 8 (For MMR only):** If you want to modify or see the default conflict resolution options assigned to the newly added table, follow the directions in Section [Updating the Conflict Resolution Options](../../06_mmr_operation/#update_conflict_resolution_options). +**Step 8 (For MMR only):** If you want to modify or see the default conflict resolution options assigned to the newly added table, follow the directions in Section [Updating the Conflict Resolution Options](../../06_mmr_operation/08_update_conflict_resolution_options/#update_conflict_resolution_options). **Step 9 (Optional):** If you defined table filters on the newly added table, and you wish to use these filters on any subscriptions or primary nodes, you must enable the filters on the table within the desired subscriptions or primary nodes. -For a single-master replication system, see Enabling/Disabling Table Filters on a Subscription <enable\_filters\_on\_subscription> for directions on enabling table filters on a subscription. +For a single-master replication system, see Enabling/Disabling Table Filters on a Subscription <enable_filters_on_subscription> for directions on enabling table filters on a subscription. -For a multi-master replication system, see Enabling/Disabling Table Filters on a Primary node <enable\_disable\_table\_filters> for directions on enabling table filters on a primary node. +For a multi-master replication system, see Enabling/Disabling Table Filters on a Primary node <enable_disable_table_filters> for directions on enabling table filters on a primary node. @@ -92,7 +91,7 @@ If all three tables are in the publication, then you can remove the following co - Remove the `jobhist` table only. - Remove both the `jobhist` table and the `emp` table. -**Step 1:** Make sure the publication server whose node is the parent of the publication you wish to change is running and has been registered in the xDB Replication Console you are using. See [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server) for directions on starting and registering a publication server. +**Step 1:** Make sure the publication server whose node is the parent of the publication you wish to change is running and has been registered in the xDB Replication Console you are using. See [Registering a Publication Server](../../05_smr_operation/02_creating_publication/01_registering_publication_server/#registering_publication_server) for directions on starting and registering a publication server. **Step 2 (For SMR only):** Select the Publication node of the publication from which you wish to remove tables. @@ -113,7 +112,7 @@ If all three tables are in the publication, then you can remove the following co ![Remove Tables dialog box](/../../images/image255.png) - Remove. Check the boxes next to the table names from the Available Tables list that are to be removed from the publication. If the publication is a snapshot-only publication, then views would appear in the Available Tables list as well. Alternatively or in addition, click the `Use Wildcard Selection` button to use wildcard pattern matching for selecting tables to be removed from the publication. -- Use Wildcard Selection. Click this button to use the wildcard selector to choose tables to remove from the publication. See [Selecting Tables with the Wildcard Selector](../../07_common_operations/#select_tables_wildcard_selector) for information on the wildcard selector. +- Use Wildcard Selection. Click this button to use the wildcard selector to choose tables to remove from the publication. See [Selecting Tables with the Wildcard Selector](../01_select_tables_wildcard_selector/#select_tables_wildcard_selector) for information on the wildcard selector. **Step 5:** Click the `Remove` button, then click the `Yes` button of the confirmation box. diff --git a/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/04_updating_table_filters_in_pub.mdx b/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/04_updating_table_filters_in_pub.mdx index 1b824843087..31b4d85b4b7 100644 --- a/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/04_updating_table_filters_in_pub.mdx +++ b/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/04_updating_table_filters_in_pub.mdx @@ -4,24 +4,14 @@ title: "Updating the Set of Available Table Filters in a Publication" - Once a set of available table filters has been defined in the publication of a single-master replication system or a multi-master replication system, the set can subsequently be updated by adding new filter rules, removing existing filter rules, or modifying existing filter rules. -
      - -
      - -Note - -
      - -See [Table Settings and Restrictions for Table Filters](../../02_overview/02_replication_concepts_and_definitions/#table_settings_and_restrictions_for_table_filters) for table setup requirements for a log-based replication system as well as general restrictions on the use of table filters. - -
      +!!! Note + See [Table Settings and Restrictions for Table Filters](../../02_overview/02_replication_concepts_and_definitions/13_table_filters/#table_settings_and_restrictions_for_table_filters) for table setup requirements for a log-based replication system as well as general restrictions on the use of table filters. -See [Adding a Publication](../../05_smr_operation/02_creating_publication/#adding_publication) for information on using table filters in a single-master replication system and Section [Adding a Publication](../../06_mmr_operation/#add_pub_mmr) for a multi-master replication system. Updating the set of available table filters in a publication has the following implications: +See [Adding a Publication](../../05_smr_operation/02_creating_publication/03_adding_publication/#adding_publication) for information on using table filters in a single-master replication system and Section [Adding a Publication](../../06_mmr_operation/02_creating_publication_mmr/#add_pub_mmr) for a multi-master replication system. Updating the set of available table filters in a publication has the following implications: -- After you have added new filter rules to a publication, you must then enable these newly added filter rules on the subscriptions or primary nodes on which you want these filter rules to have an effect. See Enabling/Disabling Table Filters on a Subscription <enable\_filters\_on\_subscription> for directions on enabling filter rules on a subscription. See Section Enabling/Disabling Table Filters on a Primary node <enable\_disable\_table\_filters> for enabling filter rules on a primary node. +- After you have added new filter rules to a publication, you must then enable these newly added filter rules on the subscriptions or primary nodes on which you want these filter rules to have an effect. See Enabling/Disabling Table Filters on a Subscription <enable_filters_on_subscription> for directions on enabling filter rules on a subscription. See Section Enabling/Disabling Table Filters on a Primary node <enable_disable_table_filters> for enabling filter rules on a primary node. - After you have removed existing filter rules from a publication, the removed filter rules are automatically deleted from any associated subscription or primary node on which they had been enabled. That is, you do not need to modify the subscriptions or primary nodes to disable the filter rules once they have been removed from the publication. - After you have modified existing filter rules (that is, changed the filter name or filter clause), the modifications are automatically applied to any subscriptions or primary nodes on which the filter rules had been enabled. That is, you do not need to make any changes in the associated subscriptions or primary nodes. @@ -29,7 +19,7 @@ After your updates to the set of available table filters in the publication have The following are the steps to update the set of available filter rules in a publication. -**Step 1:** Make sure the publication server whose node is the parent of the publication you wish to change is running and has been registered in the xDB Replication Console you are using. See [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server) for directions on starting and registering a publication server. +**Step 1:** Make sure the publication server whose node is the parent of the publication you wish to change is running and has been registered in the xDB Replication Console you are using. See [Registering a Publication Server](../../05_smr_operation/02_creating_publication/01_registering_publication_server/#registering_publication_server) for directions on starting and registering a publication server. **Step 2 (For SMR only):** Select the Publication node of the publication in which you wish to update the set of available table filters. @@ -48,7 +38,7 @@ The following are the steps to update the set of available filter rules in a pub ![- Set of all available filter rules](/../../images/image261.png) -To add a new filter rule, from the Table/View drop-down list select the table or view for which you wish to add a filter and click the Add Filter button. Fill in the information in the dialog box that appears. (See [Adding a Publication](../../05_smr_operation/02_creating_publication/#adding_publication) for more details on adding individual filter rules in a single-master replication system. See [Adding a Publication](../../06_mmr_operation/#add_pub_mmr) for a multi-master replication system.) +To add a new filter rule, from the Table/View drop-down list select the table or view for which you wish to add a filter and click the Add Filter button. Fill in the information in the dialog box that appears. (See [Adding a Publication](../../05_smr_operation/02_creating_publication/03_adding_publication/#adding_publication) for more details on adding individual filter rules in a single-master replication system. See [Adding a Publication](../../06_mmr_operation/02_creating_publication_mmr/#add_pub_mmr) for a multi-master replication system.) To remove a filter rule, click the primary mouse button on the filter rule you wish to remove so the entry is highlighted and click the Remove Filter button. You may also modify the filter name or filter clause of a filter rule listed in the Table Filters tab by double-clicking on the cell of the filter name or filter clause you wish to change. When the cursor appears in the cell, enter the text for the desired change. @@ -60,4 +50,4 @@ Click the **Ok** button in the confirmation box to proceed with the update to th ![Change filter rule confirmation](/../../images/image262.png) -**Step 6:** You may selectively enable any new filter rules to the corresponding tables of the associated subscriptions or primary nodes. See Enabling/Disabling Table Filters on a Subscription <enable\_filters\_on\_subscription> for information on enabling table filters on a subscription. See Enabling/Disabling Table Filters on a Primary node <enable\_disable\_table\_filters> for enabling table filters on a primary node. +**Step 6:** You may selectively enable any new filter rules to the corresponding tables of the associated subscriptions or primary nodes. See Enabling/Disabling Table Filters on a Subscription <enable_filters_on_subscription> for information on enabling table filters on a subscription. See Enabling/Disabling Table Filters on a Primary node <enable_disable_table_filters> for enabling table filters on a primary node. diff --git a/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/05_validating_publication.mdx b/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/05_validating_publication.mdx index 31e3a2e8b73..23d4479a401 100644 --- a/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/05_validating_publication.mdx +++ b/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/05_validating_publication.mdx @@ -4,7 +4,6 @@ title: "Validating a Publication" - Once a publication is created, do not directly change the definitions of the tables belonging to the publication. Doing so may cause a failure during the replication process. Examples of table definitions that must not be altered include: - Adding or removing columns to a table @@ -21,39 +20,21 @@ Similarly, in a multi-master replication system, table definition changes are no In addition, for synchronization replication with the trigger-based method, triggers are generated on the publication tables that use certain attributes of these tables. If the table definition is changed, the trigger may no longer function properly. -
      - -
      - -Note - -
      - -Do not change the triggers generated by xDB Replication Server. If it becomes necessary to regenerate the triggers, you must remove the associated publication and then recreate the publication. - -
      - -
      +!!! Note + Do not change the triggers generated by xDB Replication Server. If it becomes necessary to regenerate the triggers, you must remove the associated publication and then recreate the publication. -
      - -Note - -
      - -Certain table definition changes can be made and propagated by xDB Replication Server by using the DDL change replication feature. See Section [Replicating DDL Changes](../../07_common_operations/08_replicating_ddl_changes/#replicating_ddl_changes) for information on the DDL change replication feature. - -
      +!!! Note + Certain table definition changes can be made and propagated by xDB Replication Server by using the DDL change replication feature. See Section [Replicating DDL Changes](../08_replicating_ddl_changes/#replicating_ddl_changes) for information on the DDL change replication feature. If you do not use the DDL change replication feature, then the following general steps must be taken if table definition changes are made. In a single-master replication system, if changes were made to the definitions of one or more publication tables, the resolution to the problem must be handled on a case by case basis as it depends upon the type of changes that were made. In the worst case scenario, the subscription and publication must be removed and recreated as follows: -- Remove the subscription that is associated with the publication. See [Removing a Subscription](../../05_smr_operation/05_managing_subscription/#removing_subscription) for directions to remove a subscription. +- Remove the subscription that is associated with the publication. See [Removing a Subscription](../../05_smr_operation/05_managing_subscription/05_removing_subscription/#removing_subscription) for directions to remove a subscription. - Remove the subscription tables from the subscription database. This is done with `SQL DROP TABLE` statements in the database system. -- Remove the publication. See [Removing a Publication](../../07_common_operations/06_managing_publication/#removing_pub) for directions to remove a publication. -- Re-add the publication. See [Adding a Publication](../../05_smr_operation/02_creating_publication/#adding_publication) for directions to add a publication. -- Re-add the subscription. See [Adding a Subscription](../../05_smr_operation/03_creating_subscription/#adding_subscription) for directions to add a subscription. +- Remove the publication. See [Removing a Publication](06_removing_pub/#removing_pub) for directions to remove a publication. +- Re-add the publication. See [Adding a Publication](../../05_smr_operation/02_creating_publication/03_adding_publication/#adding_publication) for directions to add a publication. +- Re-add the subscription. See [Adding a Subscription](../../05_smr_operation/03_creating_subscription/03_adding_subscription/#adding_subscription) for directions to add a subscription. In a multi-master replication system, if changes were made to the definitions of one or more publication tables on one or more primary nodes, the resolution to the problem involves: @@ -62,43 +43,34 @@ In a multi-master replication system, if changes were made to the definitions of The general steps are the following: -- Remove the publication database definitions of all primary nodes except for the primary definition node. See [Removing a Publication Database](../../07_common_operations/06_managing_publication/#removing_pub_database) for directions to remove a publication database definition. -- Remove the publication. See [Removing a Publication](../../07_common_operations/06_managing_publication/#removing_pub) for directions to remove a publication. -- Remove the publication database definition of the primary definition node. See [Removing a Publication Database](../../07_common_operations/06_managing_publication/#removing_pub_database) for directions to remove a publication database definition. +- Remove the publication database definitions of all primary nodes except for the primary definition node. See [Removing a Publication Database](07_removing_pub_database/#removing_pub_database) for directions to remove a publication database definition. +- Remove the publication. See [Removing a Publication](06_removing_pub/#removing_pub) for directions to remove a publication. +- Remove the publication database definition of the primary definition node. See [Removing a Publication Database](07_removing_pub_database/#removing_pub_database) for directions to remove a publication database definition. - At this point all of the triggers, shadow tables, and metadata have been removed from the primary nodes. - With respect to the publication table definitions, you can either: 1) update the table definitions on all primary nodes so that they are identical, or 2) assume the table definitions on the primary definition node are up-to-date, and delete the out-of-date table definitions on all other primary nodes. - Re-add the publication database definition for the primary definition node. -See [Adding the Primary definition node](../../06_mmr_operation/#adding_pdn) for directions to add the primary definition node. +See [Adding the Primary definition node](../../06_mmr_operation/02_creating_publication_mmr/#adding_pdn) for directions to add the primary definition node. -- Re-add the publication. See [Adding a Publication](../../06_mmr_operation/#add_pub_mmr) for directions to add a publication. -- Re-add additional primary nodes. See [Creating Additional Primary nodes](../../06_mmr_operation/#creating_primary_nodes) for directions to add an additional primary node. When creating a primary node, uncheck the `Replicate Publication Schema` check box if you have already created the table definitions on all primary nodes. Check the `Replicate Publication Schema` check box if you want to propagate the table definitions from the primary definition node to all other primary nodes. A snapshot reloads the primary node tables from the primary definition node. +- Re-add the publication. See [Adding a Publication](../../06_mmr_operation/02_creating_publication_mmr/#add_pub_mmr) for directions to add a publication. +- Re-add additional primary nodes. See [Creating Additional Primary nodes](../../06_mmr_operation/03_creating_primary_nodes/#creating_primary_nodes) for directions to add an additional primary node. When creating a primary node, uncheck the `Replicate Publication Schema` check box if you have already created the table definitions on all primary nodes. Check the `Replicate Publication Schema` check box if you want to propagate the table definitions from the primary definition node to all other primary nodes. A snapshot reloads the primary node tables from the primary definition node. ## Validating a Single Publication xDB Replication Server provides a way to verify that certain characteristics of publication tables have not been altered since the publication was created. Note: This validation feature is only available for publications using the trigger-based method of synchronization replication. This validation feature is not available for publications using the log-based method of synchronization replication. -The validation operation described here and in Section [Validating All Publications](../../07_common_operations/06_managing_publication/#validate_all_pub) can check for the following types of table modifications: +The validation operation described here and in Section [Validating All Publications](#validate_all_pub) can check for the following types of table modifications: - Addition of columns to a table - Removal of columns from a table - Renaming of columns -
      - -
      - -Note - -
      - -In a multi-master replication system, publication tables in only the primary definition node are validated. The validation operation does not check if table definitions have changed in other primary nodes. - -
      +!!! Note + In a multi-master replication system, publication tables in only the primary definition node are validated. The validation operation does not check if table definitions have changed in other primary nodes. The following steps show how to validate a single publication: -**Step 1:** Make sure the publication server whose node is the parent of the publication you wish to validate is running and has been registered in the xDB Replication Console you are using. See [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server) for directions on starting and registering a publication server. +**Step 1:** Make sure the publication server whose node is the parent of the publication you wish to validate is running and has been registered in the xDB Replication Console you are using. See [Registering a Publication Server](../../05_smr_operation/02_creating_publication/01_registering_publication_server/#registering_publication_server) for directions on starting and registering a publication server. **Step 2 (For SMR only):** Select the Publication node of the publication you want to validate. @@ -108,7 +80,7 @@ The following steps show how to validate a single publication: ![Validating a selected publication](/../../images/image263.png) -**Step 4:** If All Schema of Published Tables in Publication 'publication\_name' Are Up-To-Date appears, click the `OK` button. If an error appears, determine which tables were changed and what changes were made to the table definitions. These issues need to be resolved on a case by case basis as discussed earlier in this section. +**Step 4:** If All Schema of Published Tables in Publication 'publication_name' Are Up-To-Date appears, click the `OK` button. If an error appears, determine which tables were changed and what changes were made to the table definitions. These issues need to be resolved on a case by case basis as discussed earlier in this section. ![Successful validation of all tables in the selected publication](/../../images/image264.png) @@ -118,31 +90,13 @@ The following steps show how to validate a single publication: All publications under a single Publication Database node can be validated in one operation. -
      - -
      - -Note - -
      - -This validation feature is only available for publications using the trigger-based method of synchronization replication. This validation feature is not available for publications using the log-based method of synchronization replication. - -
      - -
      - -
      - -Note - -
      - -In a multi-master replication system, publication tables in only the primary definition node are validated. The validation operation does not check if table definitions have changed in other primary nodes. +!!! Note + This validation feature is only available for publications using the trigger-based method of synchronization replication. This validation feature is not available for publications using the log-based method of synchronization replication. -
      +!!! Note + In a multi-master replication system, publication tables in only the primary definition node are validated. The validation operation does not check if table definitions have changed in other primary nodes. -**Step 1:** Make sure the publication server whose node is the parent of the publications you wish to validate is running and has been registered in the xDB Replication Console you are using. See [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server) for directions on starting and registering a publication server. +**Step 1:** Make sure the publication server whose node is the parent of the publications you wish to validate is running and has been registered in the xDB Replication Console you are using. See [Registering a Publication Server](../../05_smr_operation/02_creating_publication/01_registering_publication_server/#registering_publication_server) for directions on starting and registering a publication server. **Step 2 (For SMR only):** Select the Publication Database node under which you want to validate all publications. diff --git a/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/06_removing_pub.mdx b/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/06_removing_pub.mdx index 60b9f22b7a7..1c273b4406c 100644 --- a/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/06_removing_pub.mdx +++ b/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/06_removing_pub.mdx @@ -4,16 +4,15 @@ title: "Removing a Publication" +In a single-master replication system, a publication can be removed before its associated subscriptions are removed. See [Removing a Subscription](../../05_smr_operation/05_managing_subscription/05_removing_subscription/#removing_subscription) for directions to remove a subscription. -In a single-master replication system, a publication can be removed before its associated subscriptions are removed. See [Removing a Subscription](../../05_smr_operation/05_managing_subscription/#removing_subscription) for directions to remove a subscription. - -In a multi-master replication system, the publication is removed from under the Publication Database node representing the primary definition node. Before a publication can be removed, all non-PDN nodes must be removed. See [Removing a Publication Database](../../07_common_operations/06_managing_publication/#removing_pub_database) for directions to remove a publication database definition of a primary node. +In a multi-master replication system, the publication is removed from under the Publication Database node representing the primary definition node. Before a publication can be removed, all non-PDN nodes must be removed. See [Removing a Publication Database](07_removing_pub_database/#removing_pub_database) for directions to remove a publication database definition of a primary node. Removing a publication does not delete the publication tables in the publication database. It removes the identity and association of these tables to xDB Replication Server so the tables remain in the database until the DBA deletes them with the `DROP TABLE SQL` statement. The publication database user name is also left intact along with some of the xDB Replication Server metadata database objects. Shadow tables and triggers associated with the publication tables that were created by the publication server are deleted when the publication is removed. The remaining metadata database objects are deleted when the publication database definition is removed. -**Step 1:** Make sure the publication server whose node is the parent of the publication you wish to remove is running and has been registered in the xDB Replication Console you are using. See [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server) for directions on starting and registering a publication server. +**Step 1:** Make sure the publication server whose node is the parent of the publication you wish to remove is running and has been registered in the xDB Replication Console you are using. See [Registering a Publication Server](../../05_smr_operation/02_creating_publication/01_registering_publication_server/#registering_publication_server) for directions on starting and registering a publication server. **Step 2 (For SMR only):** Select the Publication node of the publication that you wish to remove. diff --git a/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/07_removing_pub_database.mdx b/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/07_removing_pub_database.mdx index b6146aac3c5..207dcdbb59c 100644 --- a/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/07_removing_pub_database.mdx +++ b/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/07_removing_pub_database.mdx @@ -4,14 +4,13 @@ title: "Removing a Publication Database" - Deleting a publication database definition from xDB Replication Server is equivalent to removing its Publication Database node. -If the Publication Database node to be removed is currently designated as the controller database, and there are additional publication databases in other single-master or multi-master replication systems, then you must first switch the controller database role to another publication database. See [Switching the Controller Database](../../07_common_operations/#switching_controller_db) for information on switching the controller database. +If the Publication Database node to be removed is currently designated as the controller database, and there are additional publication databases in other single-master or multi-master replication systems, then you must first switch the controller database role to another publication database. See [Switching the Controller Database](../07_switching_controller_db/#switching_controller_db) for information on switching the controller database. If the Publication Database node to be removed is the only remaining publication database (that is, there are no other single-master or multi-master replication systems), then this database can remain as the controller database since there is no other publication database available to be designated as the controller database. However, any existing subscription database definition must be removed before removing the last Publication Database node. -In a single-master replication system, before a Publication Database node can be removed, all publications under that Publication Database node must be removed. See [Removing a Publication](../../07_common_operations/06_managing_publication/#removing_pub) for directions on removing a publication. +In a single-master replication system, before a Publication Database node can be removed, all publications under that Publication Database node must be removed. See [Removing a Publication](06_removing_pub/#removing_pub) for directions on removing a publication. In a multi-master replication system, removing a Publication Database node representing a primary node (other than the primary definition node), eliminates that node’s future participation in the replication system. Synchronization replications no longer involve tables in the removed primary node. @@ -22,7 +21,7 @@ Removing the Publication Database node representing the primary definition node - If the multi-master replication system is the only xDB replication system (that is, there are no single-master replication systems), then switch the controller database to the primary definition node if the designated controller database is not currently the same database as the primary definition node. - If there are one or more single-master replication systems in addition to the multi-master replication system, switch the controller database to a Postgres publication database of a single-master replication system. If none of the single-master publication databases is of type Postgres, and there are more than one Oracle or SQL Server publication databases, then you must create a Postgres publication database for a single-master replication system just for the purpose of designating it as the controller database. - All Publication Database nodes representing non-PDN nodes must be removed. Repeat the process described in this section for each such primary node. -- The publication under the Publication Database node representing the primary definition node must be removed. See [Removing a Publication](../../07_common_operations/06_managing_publication/#removing_pub) for directions on removing a publication. +- The publication under the Publication Database node representing the primary definition node must be removed. See [Removing a Publication](06_removing_pub/#removing_pub) for directions on removing a publication. - Remove the Publication Database node representing the primary definition node using the process described in this section. Removing a Publication Database node does not delete the physical database from the database server. It removes the identity and association of the database to xDB Replication Server so no further replications can originate from tables in the database unless there are other publication database definitions in xDB Replication Server with the same host and database identifier. The physical database can only be removed using the database management system’s database removal procedures. @@ -37,7 +36,7 @@ All xDB Replication Server metadata database objects created for that publicatio The following are the steps to remove the Publication Database node and equivalently, the publication database definition: -**Step 1:** Make sure the publication server whose node is the parent of the publication database definition you wish to remove is running and has been registered in the xDB Replication Console you are using. See [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server) for directions on starting and registering a publication server. +**Step 1:** Make sure the publication server whose node is the parent of the publication database definition you wish to remove is running and has been registered in the xDB Replication Console you are using. See [Registering a Publication Server](../../05_smr_operation/02_creating_publication/01_registering_publication_server/#registering_publication_server) for directions on starting and registering a publication server. **Step 2:** Select the Publication Database node that you wish to remove. diff --git a/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/index.mdx b/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/index.mdx index a3ceb3ae2b6..1ec235c9073 100644 --- a/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/index.mdx +++ b/product_docs/docs/eprs/6.2/07_common_operations/06_managing_publication/index.mdx @@ -4,7 +4,6 @@ title: "Managing a Publication" - After a publication has been created, certain aspects of the underlying replication system environment might be subsequently altered for any number of reasons. Attributes that might change include the network location of the publication database server, the network location of the host running the publication server, database or operating system user names and passwords, and so forth. The aforementioned information is saved in the replication system metadata when a publication is created. Changes to these attributes result in inaccurate replication system metadata, which in turn may result in errors during subsequent replication attempts or replication system administration. @@ -13,6 +12,6 @@ This section describes how to update the metadata stored for the publication ser
      -updating\_publication\_server updating\_pub\_database updating\_pub updating\_table\_filters\_in\_pub validating\_publication removing\_pub removing\_pub\_database +updating_publication_server updating_pub_database updating_pub updating_table_filters_in_pub validating_publication removing_pub removing_pub_database
      diff --git a/product_docs/docs/eprs/6.2/07_common_operations/07_switching_controller_db.mdx b/product_docs/docs/eprs/6.2/07_common_operations/07_switching_controller_db.mdx index 1032ae9583b..4d8adc61e34 100644 --- a/product_docs/docs/eprs/6.2/07_common_operations/07_switching_controller_db.mdx +++ b/product_docs/docs/eprs/6.2/07_common_operations/07_switching_controller_db.mdx @@ -4,8 +4,7 @@ title: "Switching the Controller Database" - -The controller database is designated in the xDB Replication Configuration file and determines the publication database to which the publication server and subscription server initially connect upon startup. See [Controller Database](../02_overview/03_replication_server_components_and_architecture/#controller_database) for information on the controller database. See [xDB Replication Configuration File](../02_overview/03_replication_server_components_and_architecture/#xdb_replication_conf_file) for information on the xDB Replication Configuration file. +The controller database is designated in the xDB Replication Configuration file and determines the publication database to which the publication server and subscription server initially connect upon startup. See [Controller Database](../02_overview/03_replication_server_components_and_architecture/01_physical_components/#controller_database) for information on the controller database. See [xDB Replication Configuration File](../02_overview/03_replication_server_components_and_architecture/01_physical_components/#xdb_replication_conf_file) for information on the xDB Replication Configuration file. The current controller database cannot be removed from a replication system unless it is the last publication database remaining subordinate to the publication server. (That is, there are no other publication databases managed by the publication server.) @@ -13,17 +12,8 @@ If there are more than one publication databases, and you wish to remove the pub The publication database used as the controller can be the primary database of any single-master replication system or any primary node of a multi-master replication system. Any database type (Oracle, SQL Server, or Postgres) is acceptable as the controller database. -
      - -
      - -Note - -
      - -If the controller database is an Oracle or a SQL Server publication database, then a second Oracle or SQL Server publication database cannot be added to create a second single-master replication system. In order for xDB Replication Server to run more than one single-master replication systems consisting of Oracle or SQL Server publication databases, a Postgres publication database must be designated as the controller database. - -
      +!!! Note + If the controller database is an Oracle or a SQL Server publication database, then a second Oracle or SQL Server publication database cannot be added to create a second single-master replication system. In order for xDB Replication Server to run more than one single-master replication systems consisting of Oracle or SQL Server publication databases, a Postgres publication database must be designated as the controller database. Once you have multiple Oracle or SQL Server publication databases set up in single-master replication systems with a Postgres controller database, do not switch the controller database to an Oracle or SQL Server publication database. @@ -31,7 +21,7 @@ Upon switching the controller database, the publication server updates the xDB R The following are the steps to set another publication database as the controller database. -**Step 1:** Make sure the publication server whose node is the parent of the publication databases is running and has been registered in the xDB Replication Console you are using. See [Registering a Publication Server](../05_smr_operation/02_creating_publication/#registering_publication_server) for directions on starting and registering a publication server. +**Step 1:** Make sure the publication server whose node is the parent of the publication databases is running and has been registered in the xDB Replication Console you are using. See [Registering a Publication Server](../05_smr_operation/02_creating_publication/01_registering_publication_server/#registering_publication_server) for directions on starting and registering a publication server. **Step 2:** Select the Publication Database node corresponding to the publication database that you wish to set as the controller database. @@ -55,7 +45,7 @@ Step 6: The value Yes in the Controller database The following shows the xDB Replication Configuration file after the controller database has been switched to the primary node database `MMRnode_b`. -``` text +```text #xDB Replication Server Configuration Properties #Thu Oct 15 14:42:35 GMT-05:00 2015 port=5444 diff --git a/product_docs/docs/eprs/6.2/07_common_operations/08_replicating_ddl_changes/01_ddl_change_replication.mdx b/product_docs/docs/eprs/6.2/07_common_operations/08_replicating_ddl_changes/01_ddl_change_replication.mdx index 2bbe0c2bea2..213e22f55ce 100644 --- a/product_docs/docs/eprs/6.2/07_common_operations/08_replicating_ddl_changes/01_ddl_change_replication.mdx +++ b/product_docs/docs/eprs/6.2/07_common_operations/08_replicating_ddl_changes/01_ddl_change_replication.mdx @@ -4,24 +4,14 @@ title: "DDL Change Replication Process" - The DDL statement is executed in a controlled manner such that the target table is exclusively locked (by the default setting of configuration option `ddlChangeTableLock)` during the course of the operation. This is done to avoid loss of any transactions while the replication triggers and shadow table are modified by the DDL change replication process. Only one target table is locked at a time while DDL change replication takes place on that table, its triggers, and shadow table. If there is a backlog of pending transactions, it is recommended to perform an explicit synchronization replication before performing DDL change replication to avoid prolonging the DDL change replication process for a longer period of time. DDL change replication should be performed when the OLTP rate is very low (near zero). -
      - -
      - -Note - -
      - -Exclusive acquisition of each target table during the DDL change replication process can be turned off by setting `ddlChangeTableLock` to false. However, this should be done only when there are no write transactions taking place against the target table, otherwise transactions may not be recorded by the replication system. See [DDL Change Replication Table Locking](../../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/#ddl_change_replication_table_locking) for additional information on the `ddlChangeTableLock` configuration option. - -
      +!!! Note + Exclusive acquisition of each target table during the DDL change replication process can be turned off by setting `ddlChangeTableLock` to false. However, this should be done only when there are no write transactions taking place against the target table, otherwise transactions may not be recorded by the replication system. See [DDL Change Replication Table Locking](../../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/11_ddl_change_replication_table_locking/#ddl_change_replication_table_locking) for additional information on the `ddlChangeTableLock` configuration option. The following is the series of steps that occur during the DDL change replication process. diff --git a/product_docs/docs/eprs/6.2/07_common_operations/08_replicating_ddl_changes/02_ddl_change_replication_using_xdb_console.mdx b/product_docs/docs/eprs/6.2/07_common_operations/08_replicating_ddl_changes/02_ddl_change_replication_using_xdb_console.mdx index 9593e22342d..7b0b250426e 100644 --- a/product_docs/docs/eprs/6.2/07_common_operations/08_replicating_ddl_changes/02_ddl_change_replication_using_xdb_console.mdx +++ b/product_docs/docs/eprs/6.2/07_common_operations/08_replicating_ddl_changes/02_ddl_change_replication_using_xdb_console.mdx @@ -4,14 +4,13 @@ title: "DDL Change Replication Using the xDB Replication Console" - DDL change replication can be applied using the xDB Replication Console as follows. **Step 1:** If you plan to use a file to supply the ALTER TABLE statements to a publication table, prepare the text file. Make sure this text file is accessible by the operating system account with which you will open the xDB Replication Console. Alternatively, you can copy and paste, or directly type in the `ALTER TABLE` statements into the Alter Publication Table dialog box without having to save the statements in a file. -**Step 2:** Make sure the publication server whose node is the parent of the publication containing the table you wish to change is running and has been registered in the xDB Replication Console you are using. See [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server) for directions on starting and registering a publication server. +**Step 2:** Make sure the publication server whose node is the parent of the publication containing the table you wish to change is running and has been registered in the xDB Replication Console you are using. See [Registering a Publication Server](../../05_smr_operation/02_creating_publication/01_registering_publication_server/#registering_publication_server) for directions on starting and registering a publication server. **Step 3:** Under the publication database of a single-master replication system, or under the primary definition node of a multi-master replication system, open the Alter Publication Table dialog box by clicking the secondary mouse button on the Table node of the table to be modified and choose Alter Table. @@ -35,4 +34,4 @@ If DDL replication was not successful, the problem must be investigated and reso - For the trigger-based method, were the replication triggers on the target table modified to account for the `ALTER TABLE` statements? - For the trigger-based method, was the shadow table `RRST_schema_table` located in the `_edb_replicator_pub` schema in each database of the replication system modified to account for the `ALTER TABLE` statements? -If it is apparent that the replication system is not in a consistent state regarding the table definitions, see the beginning of Section [Validating a Publication](../../07_common_operations/06_managing_publication/#validating_publication) for guidance on how to deal with such issues. +If it is apparent that the replication system is not in a consistent state regarding the table definitions, see the beginning of Section [Validating a Publication](../06_managing_publication/05_validating_publication/#validating_publication) for guidance on how to deal with such issues. diff --git a/product_docs/docs/eprs/6.2/07_common_operations/08_replicating_ddl_changes/index.mdx b/product_docs/docs/eprs/6.2/07_common_operations/08_replicating_ddl_changes/index.mdx index efc15ab5334..935c0f3d374 100644 --- a/product_docs/docs/eprs/6.2/07_common_operations/08_replicating_ddl_changes/index.mdx +++ b/product_docs/docs/eprs/6.2/07_common_operations/08_replicating_ddl_changes/index.mdx @@ -4,7 +4,6 @@ title: "Replicating DDL Changes" - Once a replication system has been created and is in operation, there may be occasions where it is necessary to make changes to the publication table definitions. These data definition language (DDL) changes may include the following: - Adding new columns to a table @@ -13,17 +12,8 @@ Once a replication system has been created and is in operation, there may be occ - Modifying a column constraint - Removing columns -
      - -
      - -Note - -
      - -See [Validating a Publication](../07_common_operations/06_managing_publication/#validating_publication) for information on dealing with other types of table definition changes. - -
      +!!! Note + See [Validating a Publication](../06_managing_publication/05_validating_publication/#validating_publication) for information on dealing with other types of table definition changes. Table definition changes are generally implemented using the `SQL ALTER TABLE` statement, which is issued in an SQL command line utility program such as PSQL. @@ -37,7 +27,7 @@ The DDL change replication feature is supported for Oracle and SQL Server subscr The syntax of the `ALTER TABLE` statement accepted by the DDL change replication features is as follows: -``` text +```text ALTER TABLE schema.table_name action ``` @@ -45,13 +35,13 @@ where `action` can be any of the following: Rename an existing column: -``` text +```text RENAME [ COLUMN ] column_name TO new_column_name ``` Add a column to the table: -``` text +```text ADD [ COLUMN ] column_name data_type [ DEFAULT dflt_expr ] [ column_constraint_1 [ column_constraint_2 ] ...] @@ -59,13 +49,13 @@ ADD [ COLUMN ] column_name data_type Drop a column from the table: -``` text +```text DROP [ COLUMN ] column_name [ RESTRICT ] ``` Change the data type of a column: -``` text +```text ALTER [ COLUMN ] column_name [ SET DATA ] TYPE data_type [ COLLATE "collation" ] [ USING data_type_expr ] @@ -73,75 +63,39 @@ ALTER [ COLUMN ] column_name [ SET DATA ] TYPE data_type Set the DEFAULT value of a column: -``` text +```text ALTER [ COLUMN ] column_name SET DEFAULT dflt_expr ``` -
      - -
      - -Note - -
      - -The SET DEFAULT clause is not supported when Oracle or SQL Server is the subscription database. - -
      +!!! Note + The SET DEFAULT clause is not supported when Oracle or SQL Server is the subscription database. Drop the DEFAULT value of a column: -``` text +```text ALTER [ COLUMN ] column_name DROP DEFAULT ``` -
      - -
      - -Note - -
      - -The DROP DEFAULT clause is not supported when Oracle or SQL Server is the subscription database. - -
      +!!! Note + The DROP DEFAULT clause is not supported when Oracle or SQL Server is the subscription database. Set the column to reject null values: -``` text +```text ALTER [ COLUMN ] column_name SET NOT NULL ``` -
      - -
      - -Note - -
      - -The SET NOT NULL clause is not supported when SQL Server is the subscription database. - -
      +!!! Note + The SET NOT NULL clause is not supported when SQL Server is the subscription database. Allow the column to accept null values: -``` text +```text ALTER [ COLUMN ] column_name DROP NOT NULL ``` -
      - -
      - -Note - -
      - -The DROP NOT NULL clause is not supported when SQL Server is the subscription database. - -
      +!!! Note + The DROP NOT NULL clause is not supported when SQL Server is the subscription database. The following restrictions apply to the manner in which the `ALTER TABLE` statements are specified whether it is in a text file or entered directly into the dialog box: @@ -154,7 +108,7 @@ The following restrictions apply to the manner in which the `ALTER TABLE` statem `schema` -> The name of the schema containing table\_name. This value is case-sensitive. +> The name of the schema containing table_name. This value is case-sensitive. `table_name` @@ -188,7 +142,7 @@ A column constraint such as a UNIQUE or CHECK constraint. For additional informa `collation` -> Collation assigned to the column. If omitted, the column data type’s default collation is used. Examples of collation are default, C, POSIX, en\_US, en\_GB, or de\_DE. +> Collation assigned to the column. If omitted, the column data type’s default collation is used. Examples of collation are default, C, POSIX, en_US, en_GB, or de_DE. `data_type_expr` @@ -200,7 +154,7 @@ The following are examples of `ALTER TABLE` statements that can be used by the D The following set of ALTER TABLE statements, either specified by a text file or entered directly into the dialog box, adds columns to the `edb.emp` table. -``` text +```text ALTER TABLE edb.emp ADD COLUMN gender CHAR(1) CHECK(gender IN ('M','F')); ALTER TABLE edb.emp ADD COLUMN gradelevel VARCHAR2(4); ALTER TABLE edb.emp ADD COLUMN title VARCHAR2(10); @@ -208,7 +162,7 @@ ALTER TABLE edb.emp ADD COLUMN title VARCHAR2(10); The following ALTER TABLE statement changes the data type length of the title column and sets its values with the USING `data_type_expr clause`. -``` text +```text ALTER TABLE edb.emp ALTER COLUMN title SET DATA TYPE VARCHAR(25) USING CASE job @@ -222,7 +176,7 @@ ALTER TABLE edb.emp The following query shows the values assigned to the title column after the DDL change replication feature applies the preceding ALTER TABLE statement to the `edb.emp` table. This change to the title column and assignment of values occurs in all the subscription databases of a single-master replication system or in all the primary nodes of a multi-master replication system. -``` text +```text edb=# SELECT empno, ename, job, title FROM emp; empno | ename | job | title -------+--------+-----------+-------------------------- @@ -245,18 +199,18 @@ edb=# SELECT empno, ename, job, title FROM emp; The following set of ALTER TABLE statements drops the columns that were added in the first example. -``` text +```text ALTER TABLE edb.emp DROP COLUMN gender; ALTER TABLE edb.emp DROP COLUMN gradelevel; ALTER TABLE edb.emp DROP COLUMN title; ``` -The DDL change replication feature can be invoked from either the xDB Replication Console (see [DDL Change Replication Using the xDB Replication Console](../07_common_operations/08_replicating_ddl_changes/#ddl_change_replication_using_xdb_console)) or the xDB Replication Server CLI (see Replicating DDL Changes (replicateddl) <replicating\_ddl\_changes\_cli>). +The DDL change replication feature can be invoked from either the xDB Replication Console (see [DDL Change Replication Using the xDB Replication Console](02_ddl_change_replication_using_xdb_console/#ddl_change_replication_using_xdb_console)) or the xDB Replication Server CLI (see Replicating DDL Changes (replicateddl) <replicating_ddl_changes_cli>). The next section describes the process that occurs during DDL change replication.
      -ddl\_change\_replication ddl\_change\_replication\_using\_xdb\_console +ddl_change_replication ddl_change_replication_using_xdb_console
      diff --git a/product_docs/docs/eprs/6.2/07_common_operations/09_offline_snapshot.mdx b/product_docs/docs/eprs/6.2/07_common_operations/09_offline_snapshot.mdx index 647feb9455c..d7ddcb08167 100644 --- a/product_docs/docs/eprs/6.2/07_common_operations/09_offline_snapshot.mdx +++ b/product_docs/docs/eprs/6.2/07_common_operations/09_offline_snapshot.mdx @@ -4,7 +4,6 @@ title: "Loading Tables From an External Data Source (Offline Snapshot)" - There may be circumstances when you want to initially load your target tables (subscription tables of a single-master replication system, or non-PDN nodes of a multi-master replication system) using a method other than the snapshot replication functionality of xDB Replication Server. This is referred to as using an offline snapshot. For example, you might initially load the tables by running the Migration Toolkit from the command line or by using a backup from an external data source. When you load the target tables using an offline snapshot, special preparations must be taken to account for the following deviations from the default target table creation and loading process: @@ -34,33 +33,15 @@ If you then perform synchronization replication, the publication server attempts If one of the updates had been an insertion of a new row, and this new row is already in the target table loaded from the offline snapshot, a duplicate key error results when the publication server attempts to apply the batch containing the `INSERT` statement for this row. The duplicate key error forces the rollback of the entire batch. This causes the exclusion of updates in the batch that may not yet have been carried over to the target tables. The source tables and target tables are now inconsistent since there were updates to the source tables that have not been applied to the target tables. -
      - -
      - -Note - -
      - -The effects of applying `UPDATE` and `DELETE` statements in the batch to a target table that already has been changed by these updates does not cause the same problem as repeated application of INSERT statements. The UPDATE statement would just change the row to the same values a second time. When a DELETE statement affects no rows, this is not considered an error by the database server, and therefore, no rollback of the batch occurs. - -
      +!!! Note + The effects of applying `UPDATE` and `DELETE` statements in the batch to a target table that already has been changed by these updates does not cause the same problem as repeated application of INSERT statements. The UPDATE statement would just change the row to the same values a second time. When a DELETE statement affects no rows, this is not considered an error by the database server, and therefore, no rollback of the batch occurs. The solution to the potential rollback of a batch is to apply the shadow table updates in non-batch mode. That is, each SQL statement is individually committed. In that way, if an insertion of a row fails due to a duplicate key error, that statement alone is rolled back. The error does not affect the other shadow table updates that must be applied since all updates are enclosed within their own, individual transactions. The `batchInitialSync` configuration option controls whether the first synchronization replication occurs in batch or non-batch mode. If you are using an offline snapshot in an active replication system where updates are occurring to the source tables and transactions are thus accumulating in the shadow tables for the trigger-based method, it is advisable to set `batchInitialSync` to false to perform the first synchronization replication in non-batch mode. -
      - -
      - -Note - -
      - -An offline snapshot cannot be used to add a subscription or a primary node to an active replication system that uses the log-based method. For the log-based method, offline snapshots can only be used to initially configure the system, and not to update it with additional nodes after the publication database or primary node is actively receiving transactions. - -
      +!!! Note + An offline snapshot cannot be used to add a subscription or a primary node to an active replication system that uses the log-based method. For the log-based method, offline snapshots can only be used to initially configure the system, and not to update it with additional nodes after the publication database or primary node is actively receiving transactions. If you are using offline snapshots to initially create the entire replication system that has yet to be activated, and the content of the offline snapshots are all assumed to be consistent for the source and target tables, then `batchInitialSync` can be left with its default setting of true since it is assumed that the first synchronization replication will not apply any duplicate updates. @@ -68,17 +49,8 @@ If you are using offline snapshots to initially create the entire replication sy The following are the configuration options that you need to modify when using an offline snapshot. -
      - -
      - -Note - -
      - -These options apply to the publication server only. - -
      +!!! Note + These options apply to the publication server only. `offlineSnapshot` @@ -90,13 +62,13 @@ These options apply to the publication server only. > > When set to true, the `offlineSnapshot` option prevents the usual creation of the subscription schema and table definitions when the subscription is defined in a single-master replication system since it is assumed that you are creating the subscription table definitions and loading them from an external source other than the publication. > -> When adding the primary node in a multi-master replication system, leave the Replicate Publication Schema and Perform Initial Snapshot boxes unchecked (see [Creating Additional Primary nodes](../06_mmr_operation/#creating_primary_nodes)). +> When adding the primary node in a multi-master replication system, leave the Replicate Publication Schema and Perform Initial Snapshot boxes unchecked (see [Creating Additional Primary nodes](../06_mmr_operation/03_creating_primary_nodes/#creating_primary_nodes)). > -> When `offlineSnapshot` is set to true, this has the direct effect within the control schema by setting column has\_initial\_snapshot to a value of O indicating an offline snapshot is used for the target subscription or primary node represented by the row. Column has\_initial\_snapshot is set in table `xdb_publication_subscriptions` for a single-master replication system and in table `xdb_MMR_pub_group` for a multi-master replication system. +> When `offlineSnapshot` is set to true, this has the direct effect within the control schema by setting column has_initial_snapshot to a value of O indicating an offline snapshot is used for the target subscription or primary node represented by the row. Column has_initial_snapshot is set in table `xdb_publication_subscriptions` for a single-master replication system and in table `xdb_MMR_pub_group` for a multi-master replication system. -The setting of has\_initial\_snapshot influences the behavior of the `batchInitialSync` option as explained in the following section. +The setting of has_initial_snapshot influences the behavior of the `batchInitialSync` option as explained in the following section. -After the first replication completes to the target subscription or primary node, has\_initial\_snapshot is changed to Y by xDB Replication Server. +After the first replication completes to the target subscription or primary node, has_initial_snapshot is changed to Y by xDB Replication Server. `batchInitialSync` @@ -104,7 +76,7 @@ After the first replication completes to the target subscription or primary node > > Set the `batchInitialSync` option to false to perform synchronization replication in non-batch mode. > -> The offlineSnapshot configuration option must have first been set to true prior to creating the subscription or adding the additional primary node. A non-batch mode synchronization occurs only if batchInitialSync is false and the has\_initial\_snapshot column in the control schema is set to a value of O as described for the offlineSnapshot option. +> The offlineSnapshot configuration option must have first been set to true prior to creating the subscription or adding the additional primary node. A non-batch mode synchronization occurs only if batchInitialSync is false and the has_initial_snapshot column in the control schema is set to a value of O as described for the offlineSnapshot option. `batchInitialSync={true | false}` @@ -114,38 +86,29 @@ The default value is true. ## Single-Master Replication Offline Snapshot -An offline snapshot can be used to initially load the subscription tables of a single-master replication system. For a publication that is intended to have multiple subscriptions, it is possible to create some of the subscriptions using the default xDB Replication Server snapshot replication process as described in Section [Performing Snapshot Replication](../05_smr_operation/04_on_demand_replication/#perform_replication), while other subscriptions can be created from an offline snapshot. +An offline snapshot can be used to initially load the subscription tables of a single-master replication system. For a publication that is intended to have multiple subscriptions, it is possible to create some of the subscriptions using the default xDB Replication Server snapshot replication process as described in Section [Performing Snapshot Replication](../05_smr_operation/04_on_demand_replication/01_perform_replication/#perform_replication), while other subscriptions can be created from an offline snapshot. The following steps describe how to create a subscription from an offline snapshot. **Step 1:** Register the publication server, add the publication database definition, and create the publication as described in Section [Creating a Publication](../05_smr_operation/02_creating_publication/#creating_publication). -**Step 2:** Register the subscription server and add the subscription database definition as described in sections [Registering a Subscription Server](../05_smr_operation/03_creating_subscription/#registering_subscription_server) and [Adding a Subscription Database](../05_smr_operation/03_creating_subscription/#adding_subscription_database), respectively. +**Step 2:** Register the subscription server and add the subscription database definition as described in sections [Registering a Subscription Server](../05_smr_operation/03_creating_subscription/01_registering_subscription_server/#registering_subscription_server) and [Adding a Subscription Database](../05_smr_operation/03_creating_subscription/02_adding_subscription_database/#adding_subscription_database), respectively. -
      - -
      - -Note - -
      - -Steps 3 and 4 must be performed before creating the subscription. Steps 3 through 9 can be repeated each time you wish to create an additional subscription from an offline snapshot. - -
      +!!! Note + Steps 3 and 4 must be performed before creating the subscription. Steps 3 through 9 can be repeated each time you wish to create an additional subscription from an offline snapshot. **Step 3:** Modify the publication server configuration file if these options are not already set as described by the following: - Change the `offlineSnapshot` option to true. When the publication server is restarted, `offlineSnapshot` set to `true` has the effect that: 1) creating a subscription does not create the schema and subscription table definitions in the subscription database as is done with the default setting, and 2) creating a subscription sets a column in the control schema indicating an offline snapshot is used to load this subscription. -- Set the `batchInitialSync` option to the appropriate setting for your particular situation as discussed at the end of Section [Non-Batch Mode Synchronization](../07_common_operations/#non_batch_mode_sync). +- Set the `batchInitialSync` option to the appropriate setting for your particular situation as discussed at the end of Section [Non-Batch Mode Synchronization](#non_batch_mode_sync). -**Step 4:** Restart the publication server if the publication server configuration file was modified in Step 3. See Section [Registering a Publication Server](../05_smr_operation/02_creating_publication/#registering_publication_server) for directions on restarting a publication server. +**Step 4:** Restart the publication server if the publication server configuration file was modified in Step 3. See Section [Registering a Publication Server](../05_smr_operation/02_creating_publication/01_registering_publication_server/#registering_publication_server) for directions on restarting a publication server. -**Step 5:** In the subscription database, create the schema, the subscription table definitions, and load the subscription tables from your offline data source. The subscription database user name used in Section [Adding a Subscription Database](##adding_subscription_database) must have full privileges over the database objects created in this step. Also review the beginning of Section [Adding a Subscription Database](##adding_subscription_database) regarding the rules as to how xDB Replication Server creates the subscription definitions from the publication for each database type as you must follow these same conventions when you create the target definitions manually. +**Step 5:** In the subscription database, create the schema, the subscription table definitions, and load the subscription tables from your offline data source. The subscription database user name used in Section [Adding a Subscription Database](../05_smr_operation/03_creating_subscription/02_adding_subscription_database/#adding_subscription_database) must have full privileges over the database objects created in this step. Also review the beginning of Section [Adding a Subscription Database](../05_smr_operation/03_creating_subscription/02_adding_subscription_database/#adding_subscription_database) regarding the rules as to how xDB Replication Server creates the subscription definitions from the publication for each database type as you must follow these same conventions when you create the target definitions manually. -**Step 6:** Add the subscription as described in Section [Adding a Subscription](../05_smr_operation/03_creating_subscription/#adding_subscription). +**Step 6:** Add the subscription as described in Section [Adding a Subscription](../05_smr_operation/03_creating_subscription/03_adding_subscription/#adding_subscription). -**Step 7:** Perform an on demand synchronization replication. See [Performing Synchronization Replication](../05_smr_operation/04_on_demand_replication/#perform_sync_replication) for directions on performing an on demand synchronization replication. +**Step 7:** Perform an on demand synchronization replication. See [Performing Synchronization Replication](../05_smr_operation/04_on_demand_replication/02_perform_sync_replication/#perform_sync_replication) for directions on performing an on demand synchronization replication. **Step 8:** If you are not planning to load any other subscriptions using an offline snapshot at this time, change the `offlineSnapshot` option back to false and the `batchInitialSync` option to true in the publication server configuration file. @@ -153,53 +116,35 @@ Steps 3 and 4 must be performed before creating the subscription. Steps 3 throug ## Multi-Master Replication Offline Snapshot -An offline snapshot can be used to initially load the primary nodes of a multi-master replication system. It is possible to load some of the primary nodes using the xDB Replication Server snapshot replication functionality when defining the primary node as described in Section [Creating Additional Primary nodes](../06_mmr_operation/#creating_primary_nodes) or by using an on demand snapshot as described in Section [Performing Snapshot Replication](../06_mmr_operation/#perform_snapshot_replication_mmr), while other primary nodes can be loaded from an offline snapshot. - -
      - -
      - -Note +An offline snapshot can be used to initially load the primary nodes of a multi-master replication system. It is possible to load some of the primary nodes using the xDB Replication Server snapshot replication functionality when defining the primary node as described in Section [Creating Additional Primary nodes](../06_mmr_operation/03_creating_primary_nodes/#creating_primary_nodes) or by using an on demand snapshot as described in Section [Performing Snapshot Replication](../06_mmr_operation/05_on_demand_replication_mmr/#perform_snapshot_replication_mmr), while other primary nodes can be loaded from an offline snapshot. -
      - -Offline snapshots are not supported for a multi-master replication system that is actively in use. Any changes on an active primary node will be lost during the offline snapshot process of dumping or restoring the data of another node. - -
      +!!! Note + Offline snapshots are not supported for a multi-master replication system that is actively in use. Any changes on an active primary node will be lost during the offline snapshot process of dumping or restoring the data of another node. The following steps describe how to create a primary node from an offline snapshot. -**Step 1:** Register the publication server, add the primary definition node, and create the publication as described in Section [Creating a Publication](../06_mmr_operation/#creating_publication_mmr). - -
      - -
      - -Note - -
      - -The following steps must be performed before adding a primary node that is to be loaded by an offline snapshot. Steps 2 through 10 can be repeated each time you wish to create an additional primary node from an offline snapshot. +**Step 1:** Register the publication server, add the primary definition node, and create the publication as described in Section [Creating a Publication](../06_mmr_operation/02_creating_publication_mmr/#creating_publication_mmr). -
      +!!! Note + The following steps must be performed before adding a primary node that is to be loaded by an offline snapshot. Steps 2 through 10 can be repeated each time you wish to create an additional primary node from an offline snapshot. -**Step 2:** Be sure there is no schedule defined on the replication system, otherwise remove the schedule for the duration of the following steps. See [Removing a Schedule](../07_common_operations/#remove_schedule) for directions on removing a schedule. +**Step 2:** Be sure there is no schedule defined on the replication system, otherwise remove the schedule for the duration of the following steps. See [Removing a Schedule](03_managing_schedule/#remove_schedule) for directions on removing a schedule. **Step 3:** Modify the publication server configuration file if these options are not already set as described by the following: - Change the `offlineSnapshot` option to true. When the publication server is restarted, `offlineSnapshot` set to true has the effect that adding a primary node sets a column in the control schema indicating an offline snapshot is used to load this primary node. -- Set the `batchInitialSync` option to the appropriate setting for your particular situation as discussed at the end of Section [Non-Batch Mode Synchronization](../07_common_operations/#non_batch_mode_sync). +- Set the `batchInitialSync` option to the appropriate setting for your particular situation as discussed at the end of Section [Non-Batch Mode Synchronization](#non_batch_mode_sync). -**Step 4:** Restart the publication server if the publication server configuration file was modified in Step 3. See Section [Registering a Publication Server](../05_smr_operation/02_creating_publication/#registering_publication_server) for directions on restarting a publication server. +**Step 4:** Restart the publication server if the publication server configuration file was modified in Step 3. See Section [Registering a Publication Server](../05_smr_operation/02_creating_publication/01_registering_publication_server/#registering_publication_server) for directions on restarting a publication server. **Step 5:** In the database to be used as the new primary node, create the schema, the table definitions, and load the tables from your offline data source. -**Step 6:** Add the primary node as described in Section [Creating Additional Primary nodes](../06_mmr_operation/#creating_primary_nodes) with options Replicate Publication Schema and Perform Initial Snapshot unchecked. +**Step 6:** Add the primary node as described in Section [Creating Additional Primary nodes](../06_mmr_operation/03_creating_primary_nodes/#creating_primary_nodes) with options Replicate Publication Schema and Perform Initial Snapshot unchecked. -**Step 7:** Perform an initial on demand synchronization. See Section [Performing Synchronization Replication](../06_mmr_operation/#perform_synchronization_replication_mmr) for directions on performing an on demand synchronization. +**Step 7:** Perform an initial on demand synchronization. See Section [Performing Synchronization Replication](../06_mmr_operation/05_on_demand_replication_mmr/#perform_synchronization_replication_mmr) for directions on performing an on demand synchronization. **Step 8:** If you are not planning to load any other primary nodes using an offline snapshot at this time, change the `offlineSnapshot` option back to false and the `batchInitialSync` option to true in the publication server configuration file. **Step 9:** Restart the publication server if you modified the publication server configuration file in Step 8. -**Step 10:** Re-add the schedule if one had been removed in Step 2. See Section [Creating a Schedule](../07_common_operations/#creating_schedule) for directions on creating a schedule. +**Step 10:** Re-add the schedule if one had been removed in Step 2. See Section [Creating a Schedule](02_creating_schedule/#creating_schedule) for directions on creating a schedule. diff --git a/product_docs/docs/eprs/6.2/07_common_operations/10_replicating_postgres_partitioned_tables.mdx b/product_docs/docs/eprs/6.2/07_common_operations/10_replicating_postgres_partitioned_tables.mdx index 88a050e12f9..751fbeb5213 100644 --- a/product_docs/docs/eprs/6.2/07_common_operations/10_replicating_postgres_partitioned_tables.mdx +++ b/product_docs/docs/eprs/6.2/07_common_operations/10_replicating_postgres_partitioned_tables.mdx @@ -4,7 +4,6 @@ title: "Replicating Postgres Partitioned Tables" - Both PostgreSQL and Advanced Server support partitioned tables, which can be replicated with xDB Replication Server in either a single-master or multi-master replication system. The following are the various partitioning techniques: @@ -36,12 +35,12 @@ Note the following general restrictions when the publication contains a partitio All three partitioning techniques are illustrated on the `emp` table used as an example throughout this document. The partitioned table is then used in a publication of a multi-master replication system in the following sections: -- For creating a publication in Postgres 9.x, see [Creating a Postgres 9.x Partitioned Table Publication](../07_common_operations/#create_pg9_x_partition_table_pub). -- For creating a publication in Postgres 10 or later, see Section [Creating a Postgres Version 10 or Later Partitioned Table Publication](../07_common_operations/#create_pgv10_or_later_partition_table_pub). +- For creating a publication in Postgres 9.x, see [Creating a Postgres 9.x Partitioned Table Publication](#create_pg9_x_partition_table_pub). +- For creating a publication in Postgres 10 or later, see Section [Creating a Postgres Version 10 or Later Partitioned Table Publication](#create_pgv10_or_later_partition_table_pub). The following creates the partitioned table in Advanced Server using partitioning compatible with Oracle databases: -``` text +```text CREATE TABLE emp ( empno NUMERIC(4) PRIMARY KEY, ename VARCHAR(10), @@ -78,19 +77,10 @@ INSERT INTO emp VALUES (7934,'MILLER','CLERK',7782,'23-JAN-82',1300,NULL,10); The following creates the partitioned table in PostgreSQL or Advanced Server 10 or later using declarative partitioning: -
      - -
      - -Note - -
      - -When creating a declarative partitioned table that is to be replicated using xDB Replication Server, the PRIMARY KEY constraint must be included in the CREATE TABLE statements of the individual partitions, not in the CREATE TABLE statement of the parent table to be partitioned. - -
      +!!! Note + When creating a declarative partitioned table that is to be replicated using xDB Replication Server, the PRIMARY KEY constraint must be included in the CREATE TABLE statements of the individual partitions, not in the CREATE TABLE statement of the parent table to be partitioned. -``` text +```text CREATE TABLE emp ( empno NUMERIC(4), ename VARCHAR(10), @@ -134,7 +124,7 @@ INSERT INTO emp VALUES (7934,'MILLER','CLERK',7782,'23-JAN-82',1300,NULL,10); The following creates the partitioned table in PostgreSQL or Advanced Server using table inheritance: -``` text +```text -- -- Create the parent table -- @@ -212,7 +202,7 @@ The following illustrates the types of SQL queries that can be made on the paren Querying the parent table, emp, with the asterisk appended to the table name in the SELECT statement, shows the rows in the parent and child tables. This is the default behavior if the asterisk is omitted. ``` -``` text +```text edb=# SELECT * FROM emp*; empno | ename | job | mgr | hiredate | sal | comm | deptno -------+--------+-----------+------+--------------------+---------+---------+-------- @@ -235,7 +225,7 @@ edb=# SELECT * FROM emp*; The following queries show how the rows are physically divided amongst the child tables. The use of the `ONLY` keyword results in rows only in the specified table of the `SELECT` statement, and not from any of its children. -``` text +```text edb=# SELECT * FROM ONLY emp; empno | ename | job | mgr | hiredate | sal | comm | deptno -------+-------+-----+-----+----------+-----+------+-------- @@ -276,7 +266,7 @@ edb=# SELECT * FROM ONLY emp_dept_30; The following section shows creation of the publication when using Postgres 9.6 or an earlier version. This also applies if the partitioned table is created with table inheritance. -Section [Creating a Postgres Version 10 or Later Partitioned Table Publication](../07_common_operations/#create_pgv10_or_later_partition_table_pub) shows creation of the publication when using partitioning compatible with Oracle databases or declarative partitioning on a Postgres 10 or later database server. +Section [Creating a Postgres Version 10 or Later Partitioned Table Publication](#create_pgv10_or_later_partition_table_pub) shows creation of the publication when using partitioning compatible with Oracle databases or declarative partitioning on a Postgres 10 or later database server. @@ -284,7 +274,7 @@ Section [Creating a Postgres Version 10 or Later Partitioned Table Publication]( The following describes creating the publication on a Postgres database server of version 9.6 or earlier. -Follow the directions in Section [Creating a Publication](../06_mmr_operation/../05_smr_operation/02_creating_publication/#creating_publication_mmr) to create a primary definition node along with a publication containing the partitioned table. (For a single-master replication system, create the publication database along with the publication according to the directions in Section [Creating a Publication](../05_smr_operation/02_creating_publication/#creating_publication).) +Follow the directions in Section [Creating a Publication](../06_mmr_operation/02_creating_publication_mmr/#creating_publication_mmr) to create a primary definition node along with a publication containing the partitioned table. (For a single-master replication system, create the publication database along with the publication according to the directions in Section [Creating a Publication](../05_smr_operation/02_creating_publication/#creating_publication).) When creating the publication you must select the parent table along with the child tables. @@ -294,7 +284,7 @@ The following shows the resulting replication tree for the partitioned table in ![Publication containing a Postgres 9.x partitioned table](/../images/image285.png) -Create additional primary nodes as described in Section [Creating Additional Primary nodes](../06_mmr_operation/#creating_primary_nodes). (For a single-master replication system, create the subscription database and subscription according to the directions in Section [Creating a Subscription](../05_smr_operation/03_creating_subscription/#creating_subscription).) +Create additional primary nodes as described in Section [Creating Additional Primary nodes](../06_mmr_operation/03_creating_primary_nodes/#creating_primary_nodes). (For a single-master replication system, create the subscription database and subscription according to the directions in Section [Creating a Subscription](../05_smr_operation/03_creating_subscription/#creating_subscription).) The following shows the resulting multi-master replication system after you have added an additional primary node. @@ -308,25 +298,16 @@ The partitioned table can now be kept synchronized on the primary nodes of the m The following describes creating the publication using either partitioning compatible with Oracle databases or Postgres declarative partitioning on a Postgres 10 or later database server. -
      - -
      - -Note - -
      - -If you are using table inheritance, you must still use the process described in Section [Creating a Postgres 9.x Partitioned Table Publication](../07_common_operations/#create_pg9_x_partition_table_pub) even when creating the publication on a Postgres 10 or later database server. - -
      +!!! Note + If you are using table inheritance, you must still use the process described in Section [Creating a Postgres 9.x Partitioned Table Publication](#create_pg9_x_partition_table_pub) even when creating the publication on a Postgres 10 or later database server. The following restrictions apply when the publication contains a table with partitioning compatible with Oracle databases or declarative partitioning: - The log-based method of synchronization replication must be selected for the publication database. The trigger-based method cannot be used. - In a single-master replication system, the subscription databases must be Postgres version 10 or later. Oracle and SQL Server cannot be used as a subscription database. -- In a multi-master replication system, all primary nodes must be Postgres version 10 or later with the same compatibility mode as the primary definition node (that is, either compatible with native PostgreSQL or compatible with Oracle databases). For more information on the multi-master replication system compatibility modes, see [Permitted MMR Database Server Configurations](../10_appendix/02_upgrading_to_xdb6_2/#permitted_mmr_db_server_conf). +- In a multi-master replication system, all primary nodes must be Postgres version 10 or later with the same compatibility mode as the primary definition node (that is, either compatible with native PostgreSQL or compatible with Oracle databases). For more information on the multi-master replication system compatibility modes, see [Permitted MMR Database Server Configurations](../10_appendix/02_upgrading_to_xdb6_2/01_permitted_conf_and_permutations/#permitted_mmr_db_server_conf). -Follow the directions in Section [Creating a Publication](../06_mmr_operation/../05_smr_operation/02_creating_publication/#creating_publication_mmr) to create a primary definition node along with a publication containing the partitioned table. (For a single-master replication system, create the publication database along with the publication according to the directions in Section [Creating a Publication](../05_smr_operation/02_creating_publication/#creating_publication).) +Follow the directions in Section [Creating a Publication](../06_mmr_operation/02_creating_publication_mmr/#creating_publication_mmr) to create a primary definition node along with a publication containing the partitioned table. (For a single-master replication system, create the publication database along with the publication according to the directions in Section [Creating a Publication](../05_smr_operation/02_creating_publication/#creating_publication).) When creating the publication, only the parent table appears and is selected. @@ -336,7 +317,7 @@ The following shows the resulting replication tree for the partitioned table in ![Publication containing a Postgres 10 or later partitioned table](/../images/image288.png) -Create additional primary nodes as described in Section [Creating Additional Primary nodes](../06_mmr_operation/#creating_primary_nodes). (For a single-master replication system, create the subscription database and subscription according to the directions in Section [Creating a Subscription](../05_smr_operation/03_creating_subscription/#creating_subscription).) +Create additional primary nodes as described in Section [Creating Additional Primary nodes](../06_mmr_operation/03_creating_primary_nodes/#creating_primary_nodes). (For a single-master replication system, create the subscription database and subscription according to the directions in Section [Creating a Subscription](../05_smr_operation/03_creating_subscription/#creating_subscription).) The following shows the resulting multi-master replication system after you have added an additional primary node. diff --git a/product_docs/docs/eprs/6.2/07_common_operations/11_using_ssl_connections.mdx b/product_docs/docs/eprs/6.2/07_common_operations/11_using_ssl_connections.mdx index 199fcb8d4ec..b2f7d1b785d 100644 --- a/product_docs/docs/eprs/6.2/07_common_operations/11_using_ssl_connections.mdx +++ b/product_docs/docs/eprs/6.2/07_common_operations/11_using_ssl_connections.mdx @@ -4,7 +4,6 @@ title: "Using Secure Sockets Layer (SSL) Connections" - Publication server and subscription server connections to Postgres publication databases, Postgres subscription databases, and Postgres primary nodes can be accomplished using secure sockets layer (SSL) connectivity. xDB Replication Server does not support SSL connections to Oracle and SQL Server databases used within any xDB replication system. @@ -20,29 +19,11 @@ For a multi-master replication system, the following connections can be made to - Publication server connection to the primary definition node and the non-PDN nodes. - Migration Toolkit connection to the primary definition node and the non-PDN nodes. -
      - -
      - -Note - -
      - -SSL connections are not used from the xDB Replication Console or the xDB Replication Server Command Line Interface. The xDB user interfaces communicate with the publication server and subscription server, which in turn connect to the publication/subscription databases or primary nodes. - -
      - -
      +!!! Note + SSL connections are not used from the xDB Replication Console or the xDB Replication Server Command Line Interface. The xDB user interfaces communicate with the publication server and subscription server, which in turn connect to the publication/subscription databases or primary nodes. -
      - -Note - -
      - -The Migration Toolkit connection using SSL occurs within the context of the publication server and subscription server SSL connections. Therefore, there are no separate steps that you need to perform for the Migration Toolkit SSL connection. - -
      +!!! Note + The Migration Toolkit connection using SSL occurs within the context of the publication server and subscription server SSL connections. Therefore, there are no separate steps that you need to perform for the Migration Toolkit SSL connection. Using SSL requires various prerequisite configuration steps performed on the database servers involved with the SSL connections as well as on the Java truststore and keystore on the hosts running the publication server and subscription server. @@ -62,9 +43,9 @@ for information on setting up SSL connectivity to Postgres database servers. The following sections provide additional information for the configuration steps of using SSL with the xDB Replication Server. -- Configuring SSL on a Postgres database server (Section [Configuring SSL on a Postgres Database Server](../07_common_operations/#configure_ssl_on_pg_db_server)) -- Configuring SSL on a JDBC client for the publication and subscription servers (Section [Configuring SSL for the Publication Server and Subscription Server](../07_common_operations/#configure_ssl_for_pub_and_sub_server)) -- Requesting SSL connection to the xDB Replication Server databases (Section [Requesting SSL Connection to the xDB Replication Server Databases](../07_common_operations/#request_ssl_to_xdb_server_dbs)) +- Configuring SSL on a Postgres database server (Section [Configuring SSL on a Postgres Database Server](#configure_ssl_on_pg_db_server)) +- Configuring SSL on a JDBC client for the publication and subscription servers (Section [Configuring SSL for the Publication Server and Subscription Server](#configure_ssl_for_pub_and_sub_server)) +- Requesting SSL connection to the xDB Replication Server databases (Section [Requesting SSL Connection to the xDB Replication Server Databases](#request_ssl_to_xdb_server_dbs)) @@ -76,7 +57,7 @@ This section provides an example of configuring SSL on a Postgres database serve In the following example the generated certificate signing request file is `server.csr`. The private key is generated as file server.key. -``` text +```text $ openssl req -new -text -nodes -subj '/C=US/ST=Massachusetts/L=Bedford/O=EnterpriseDB/OU=XDB/emailAddress=support@enterprisedb.com/CN=enterprisedb' -keyout server.key -out server.csr Generating a 1024 bit RSA private key ......................................................++++++ @@ -85,17 +66,8 @@ writing new private key to 'server.key' ----- ``` -
      - -
      - -Note - -
      - -When creating the certificate, the value specified for the common name field (designated as CN=enterprisedb in this example) must be the database user name that is specified in the User field of the Add Database or Update Database dialog box used when defining the publication database (see [Adding a Publication Database](../05_smr_operation/02_creating_publication/#adding_pub_database)), subscription database (see [Adding a Subscription Database](../05_smr_operation/03_creating_subscription/#adding_subscription_database)), or primary nodes (see [Adding the Primary definition node](../06_mmr_operation/#adding_pdn)) and [Creating Additional Primary nodes](../06_mmr_operation/#creating_primary_nodes)). - -
      +!!! Note + When creating the certificate, the value specified for the common name field (designated as CN=enterprisedb in this example) must be the database user name that is specified in the User field of the Add Database or Update Database dialog box used when defining the publication database (see [Adding a Publication Database](../05_smr_operation/02_creating_publication/02_adding_pub_database/#adding_pub_database)), subscription database (see [Adding a Subscription Database](../05_smr_operation/03_creating_subscription/02_adding_subscription_database/#adding_subscription_database)), or primary nodes (see [Adding the Primary definition node](../06_mmr_operation/02_creating_publication_mmr/#adding_pdn)) and [Creating Additional Primary nodes](../06_mmr_operation/03_creating_primary_nodes/#creating_primary_nodes)). Alternatively, user name maps can be used as defined in the `pg_ident.conf` file to permit more flexibility for the common name and database user name. Steps 8 and 9 describe the use of user name maps. @@ -103,7 +75,7 @@ Alternatively, user name maps can be used as defined in the `pg_ident.conf` file The following generates a self-signed certificate to file `server.crt` using the certificate signing request file, `server.csr`, and the private key, `server.key`, as input. -``` text +```text $ openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt Signature ok subject=/C=US/ST=Massachusetts/L=Bedford/O=EnterpriseDB/OU=XDB/emailAddress=support@enterprisedb.com/CN=enterprisedb @@ -112,19 +84,19 @@ Getting Private key **Step 3:** Make a copy of the server certificate (`server.crt`) to be used as the root Certificate Authority (CA) file (`root.crt`). -``` text +```text $ cp server.crt root.crt ``` **Step 4:** Delete the now redundant certificate signing request (`server.csr`). -``` text +```text $ rm server.csr ``` **Step 5:** Move or copy the certificate and private key files to the Postgres database server data directory, `POSTGRES_INSTALL_HOME/data`. -``` text +```text $ mv root.crt /opt/PostgresPlus/9.4AS/data $ mv server.crt /opt/PostgresPlus/9.4AS/data $ mv server.key /opt/PostgresPlus/9.4AS/data @@ -134,7 +106,7 @@ $ mv server.key /opt/PostgresPlus/9.4AS/data Set the ownership to the operating system account that owns the data subdirectory of the Postgres database server, which is either enterprisedb or postgres depending upon the chosen installation mode (Oracle compatible or PostgreSQL compatible) when you installed your Postgres database server. -``` text +```text $ chown enterprisedb root.crt server.crt server.key $ chgrp enterprisedb root.crt server.crt server.key $ chmod 600 root.crt server.crt server.key @@ -150,7 +122,7 @@ total 140 **Step 7:** In the `postgresql.conf` file, make the following modifications. -``` text +```text ssl = on # (change requires restart) ssl_cert_file = 'server.crt' # (change requires restart) ssl_key_file = 'server.key' # (change requires restart) @@ -167,7 +139,7 @@ The `map=sslusers` option specifies that a mapping named `sslusers` defined in t The following is an example of the settings in the `pg_hba.conf` file if the publication and subscription databases (edb and subnode) must use SSL connections. -``` text +```text # TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only @@ -176,11 +148,11 @@ local all all md5 hostssl edb,subnode all 192.168.2.0/24 cert clientcert=1 map=sslusers ``` -**Step 9:** The following shows the user name maps in the pg\_ident.conf file related to the `pg_hba.conf` file by the `map=sslusers` option. These user name maps permit you to specify database user names pubuser, subuser, MMRuser, or enterprisedb in the User field of the Add Database or Update Database dialog box when adding the publication, subscription, or primary node databases in the xDB Replication Console. +**Step 9:** The following shows the user name maps in the pg_ident.conf file related to the `pg_hba.conf` file by the `map=sslusers` option. These user name maps permit you to specify database user names pubuser, subuser, MMRuser, or enterprisedb in the User field of the Add Database or Update Database dialog box when adding the publication, subscription, or primary node databases in the xDB Replication Console. In other words, these are the permitted set of database user names that can be used by the publication server and subscription server to connect to the publication, subscription, or primary node databases. -``` text +```text # MAPNAME SYSTEM-USERNAME PG-USERNAME sslusers enterprisedb pubuser sslusers enterprisedb subuser @@ -202,7 +174,7 @@ For this example, assume file `xdb.crt` is a copy of `server.crt` and `xdb.key` Step 2: Create a copy of `xdb.crt`. -``` text +```text $ cp xdb.crt xdb_root.crt $ ls -l total 12 @@ -213,7 +185,7 @@ total 12 Step 3: Create a Distinguished Encoding Rules (DER) format of file `xdb_root.crt`. The generated `DER` format of this file is `xdb_root.crt.der`. The `DER` format of the file is required for the keytool program in the next step. -``` text +```text $ openssl x509 -in xdb_root.crt -out xdb_root.crt.der -outform der $ ls -l total 16 @@ -229,7 +201,7 @@ The keytool program can be found under the bin subdirectory of the Java Runtime You will be prompted for a new password. Save this password for the next step. -``` text +```text $ /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.45.x86_64/jre/bin/keytool -keystore xdb.keystore -alias xdbstore -import -file xdb_root.crt.der Enter keystore password: Re-enter new password: @@ -260,7 +232,7 @@ The encrypted password must be specified with the `sslTrustStorePassword` config Encrypt the password using the xDB Replication Server CLI encrypt command. The following example shows this process encrypting the password contained in file infile. -``` text +```text $ export PATH=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.45.x86_64/jre/bin:$PATH $ cd /opt/PostgreSQL/EnterpriseDB-xDBReplicationServer/bin $ java -jar edb-repcli.jar -encrypt -input ~/infile -output ~/pwdfile @@ -272,7 +244,7 @@ Step 6: Create a `PKCS #12` format of the keystore file (`xdb_pkcs.p12`) using f You will be prompted for a new password. Save this password for the next step. -``` text +```text $ openssl pkcs12 -export -in xdb.crt -inkey xdb.key -out xdb_pkcs.p12 Enter Export Password: Verifying - Enter Export Password: @@ -298,7 +270,7 @@ Encrypt the password using the xDB Replication Server CLI encrypt command. The following shows the SSL configuration options set for the files generated in this example. -``` text +```text sslTrustStore=/tmp/sslclient/xdb.keystore sslTrustStorePassword=LGn6+AagiXqumxVHlOKk3w== sslKeyStore=/tmp/sslclient/xdb_pkcs.p12 @@ -319,30 +291,21 @@ In the case of WAL stream changeset logging, while adding a publication or a sub For ssl connection, libpq must have the certificates and key as given in the following table. The default directory is `${user.home}/.postgresql`: -| | | | -|-------------------------------|--------------------------------------|--------------------------------------------------------------------------------------------------------------------------------| -| File Name | Contents | Description | -| \~/.postgresql/postgresql.crt | Client certificate | Requested by the server. | -| \~/.postgresql/postgresql.key | Client private key | Proves that the client certificate is sent by the owner. However, does not indicate that the certificate owner is trustworthy. | -| \~/.postgresql/root.crt | Trusted certificate authorities (CA) | Checks that the server certificate is signed by a trusted certificate authority. | +| | | | +| ---------------------------- | ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | +| File Name | Contents | Description | +| ~/.postgresql/postgresql.crt | Client certificate | Requested by the server. | +| ~/.postgresql/postgresql.key | Client private key | Proves that the client certificate is sent by the owner. However, does not indicate that the certificate owner is trustworthy. | +| ~/.postgresql/root.crt | Trusted certificate authorities (CA) | Checks that the server certificate is signed by a trusted certificate authority. | **libpq/Client SSL File Usage** Make sure that the name of the certificates and key is same as given in the above table. -
      - -
      - -Note - -
      - -You need to execute the following commands to change the permission of the certificates in `${user.home}/.postgresql`: +!!! Note + You need to execute the following commands to change the permission of the certificates in `${user.home}/.postgresql`: -
      - -``` text +```text chmod 0644 root.crt postgresql.crt chown postgres postgresql.key ``` @@ -352,7 +315,7 @@ To setup different source and target databaseb types (for example, source databa 1. Generate the certificate for `POSTGRESQL` database and follow the table 7-1 for placing certificate files in the default directory. 2. Copy these certificates in EDB Postgres Advanced Server data directory. -``` text +```text [root@localhost data]# cp /var/lib/pgsql/11/data/root.crt . [root@localhost data]# cp /var/lib/pgsql/11/data/server.crt . [root@localhost data]# cp /var/lib/pgsql/11/data/server.key . @@ -360,7 +323,7 @@ To setup different source and target databaseb types (for example, source databa 1. Execute the following commands to change the permissions of the certificates in the EDB Postgres Advanced Server data directory. -``` text +```text [root@localhost data]# sudo chown enterprisedb root.crt server.crt server.key [root@localhost data]# sudo chgrp enterprisedb root.crt server.crt server.key [root@localhost data]# sudo chmod 600 root.crt server.crt server.key @@ -376,8 +339,8 @@ The SSL URL option informs Java to use SSL when the publication server or subscr The configuration steps where these options are specified are as follows: -- For using SSL connections in a single-master replication system, the URL options must be specified as shown in Section [Adding a Publication Database](../05_smr_operation/02_creating_publication/#adding_pub_database) for the publication database and in Section [Adding a Subscription Database](../05_smr_operation/03_creating_subscription/#adding_subscription_database) for the subscription databases. -- For using SSL connections in a multi-master replication system, the URL options must be specified as shown in Section [Adding the Primary definition node](../06_mmr_operation/#adding_pdn) for the primary definition node and in Section [Creating Additional Primary nodes](../06_mmr_operation/#creating_primary_nodes) for the non-PDN nodes. +- For using SSL connections in a single-master replication system, the URL options must be specified as shown in Section [Adding a Publication Database](../05_smr_operation/02_creating_publication/02_adding_pub_database/#adding_pub_database) for the publication database and in Section [Adding a Subscription Database](../05_smr_operation/03_creating_subscription/02_adding_subscription_database/#adding_subscription_database) for the subscription databases. +- For using SSL connections in a multi-master replication system, the URL options must be specified as shown in Section [Adding the Primary definition node](../06_mmr_operation/02_creating_publication_mmr/#adding_pdn) for the primary definition node and in Section [Creating Additional Primary nodes](../06_mmr_operation/03_creating_primary_nodes/#creating_primary_nodes) for the non-PDN nodes. For publication, subscription, and primary node databases, in the URL Options field of the Add Database or Update Database dialog box, enter the following: @@ -387,17 +350,8 @@ The following is an example of the Add Database dialog box with the `ssl=true` U ![Add Database with SSL URL option](/../images/image290.png) -
      - -
      - -Note - -
      - -If you no longer wish to use an SSL connection to an xDB Replication Server database, you must completely delete the `ssl=true` text from the URL Options field of the Add Database or Update Database dialog box. Simply changing true to false does not have the effect of disabling the SSL option. - -
      +!!! Note + If you no longer wish to use an SSL connection to an xDB Replication Server database, you must completely delete the `ssl=true` text from the URL Options field of the Add Database or Update Database dialog box. Simply changing true to false does not have the effect of disabling the SSL option. ## Summary of SSL Configuration Options @@ -409,7 +363,7 @@ The following is a summary of the publication server and subscription server con `sslTrustStoreType=truststore_format` -> The default value for truststore\_format is jks for the JKS truststore file format. +> The default value for truststore_format is jks for the JKS truststore file format. `sslTrustStore` @@ -421,7 +375,7 @@ Specify the full directory path to the truststore file with this option. `sslTru `sslTrustStorePassword` -> Encrypt the password for the Java system truststore using the xDB Replication Server CLI encrypt command (see [Encrypting Passwords](../08_xdb_cli/03_xdb_cli_commands/#encrypt_password)) and specify the encrypted password with the `sslTrustStorePassword` option. +> Encrypt the password for the Java system truststore using the xDB Replication Server CLI encrypt command (see [Encrypting Passwords](../08_xdb_cli/03_xdb_cli_commands/04_encrypt_password/#encrypt_password)) and specify the encrypted password with the `sslTrustStorePassword` option. > > `sslTrustStorePassword=encrypted_password` @@ -431,7 +385,7 @@ Specify the full directory path to the truststore file with this option. `sslTru `sslKeyStoreType=keystore_format` -> The default value for keystore\_format is pkcs12 for the PKCS \#12 keystore file format. +> The default value for keystore_format is pkcs12 for the PKCS #12 keystore file format. `sslKeyStore` @@ -441,6 +395,6 @@ Specify the full directory path to the truststore file with this option. `sslTru `sslKeyStorePassword` -Encrypt the password for the Java system keystore using the xDB Replication Server CLI encrypt command (see [Encrypting Passwords](../08_xdb_cli/03_xdb_cli_commands/#encrypt_password)) and specify the encrypted password with the sslKeyStorePassword option. +Encrypt the password for the Java system keystore using the xDB Replication Server CLI encrypt command (see [Encrypting Passwords](../08_xdb_cli/03_xdb_cli_commands/04_encrypt_password/#encrypt_password)) and specify the encrypted password with the sslKeyStorePassword option. > `sslKeyStorePassword=encrypted_password` diff --git a/product_docs/docs/eprs/6.2/07_common_operations/index.mdx b/product_docs/docs/eprs/6.2/07_common_operations/index.mdx index cb07b2ab83d..a27652a9e50 100644 --- a/product_docs/docs/eprs/6.2/07_common_operations/index.mdx +++ b/product_docs/docs/eprs/6.2/07_common_operations/index.mdx @@ -4,25 +4,15 @@ title: "Common Operations" - This chapter describes configuration and maintenance operations of xDB Replication Server that are common to both single-master and multi-master replication systems. -For configuration and management of your replication system, the xDB Replication Console graphical user interface is used to illustrate the steps and examples in this chapter. The same steps can be performed from the operating system command line using the xDB Replication Server Command Line Interface (CLI). The commands of the xDB Replication Server CLI utility are described in Chapter [xDB Replication Server Command Line Interface](08_xdb_cli/#xdb_cli). - -
      - -
      - -Note +For configuration and management of your replication system, the xDB Replication Console graphical user interface is used to illustrate the steps and examples in this chapter. The same steps can be performed from the operating system command line using the xDB Replication Server Command Line Interface (CLI). The commands of the xDB Replication Server CLI utility are described in Chapter [xDB Replication Server Command Line Interface](../08_xdb_cli/#xdb_cli). -
      - -Though most steps described in this chapter apply to both single-master and multi-master replication systems, those steps that apply only to single-master replication systems are noted with For SMR only. Those steps that apply only to multi-master replication systems are noted with For MMR only. - -
      +!!! Note + Though most steps described in this chapter apply to both single-master and multi-master replication systems, those steps that apply only to single-master replication systems are noted with For SMR only. Those steps that apply only to multi-master replication systems are noted with For MMR only.
      -select\_tables\_wildcard\_selector creating\_schedule managing\_schedule view\_replication\_history managing\_history managing\_publication switching\_controller\_db replicating\_ddl\_changes offline\_snapshot replicating\_postgres\_partitioned\_tables using\_ssl\_connections +select_tables_wildcard_selector creating_schedule managing_schedule view_replication_history managing_history managing_publication switching_controller_db replicating_ddl_changes offline_snapshot replicating_postgres_partitioned_tables using_ssl_connections
      diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/01_prereq_steps.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/01_prereq_steps.mdx index cbc32a869a8..ff0320e44ae 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/01_prereq_steps.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/01_prereq_steps.mdx @@ -4,22 +4,21 @@ title: "Prerequisite Steps" - This section describes the installation and setup required prior to using the xDB Replication Server CLI. The xDB Replication Server CLI is included if the xDB Replication Console component is chosen when installing xDB Replication Server. The xDB Replication Server CLI is a Java application found in directory `XDB_HOME/bin`. **Step 1:** Follow the installation steps given in Chapter [Installation and Uninstallation](../03_installation/#installation) to install xDB Replication Server. -**Step 2:** Follow the prerequisite steps given in Section [Prerequisite Steps](../06_mmr_operation/#prerequisite_steps) for single-master replication systems or Section [Prerequisite Steps](../05_smr_operation/01_prerequisites/#prerequisites) for multi-master replication systems. +**Step 2:** Follow the prerequisite steps given in Section [Prerequisite Steps](#prerequisite-steps) for single-master replication systems or Section [Prerequisite Steps](../05_smr_operation/01_prerequisites/#prerequisites) for multi-master replication systems. **Step 3:** Set the Java Runtime Environment as described by the following discussion. On the host from which you intend to run the xDB Replication Server CLI, the Java Runtime Environment (JRE) must be present and the Java runtime bin directory must be included in the path of the operating system user name that will be used to run xDB Replication Server CLI. -The xDB Startup Configuration file, `xdbReplicationServer-xx.config`, contains the path of the `JRE runtime` program that was detected during the installation of xDB Replication Server. The following is an example of the xDB Startup Configuration file (see ref:Post Installation Host Environment <post\_installation\_host\_environment> for the location of this file.) +The xDB Startup Configuration file, `xdbReplicationServer-xx.config`, contains the path of the `JRE runtime` program that was detected during the installation of xDB Replication Server. The following is an example of the xDB Startup Configuration file (see ref:Post Installation Host Environment <post_installation_host_environment> for the location of this file.) -``` text +```text #!/bin/sh JAVA_EXECUTABLE_PATH="/usr/bin/java" diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/02_general_use.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/02_general_use.mdx index 0d002f50377..59bdcb4a40e 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/02_general_use.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/02_general_use.mdx @@ -4,7 +4,6 @@ title: "General Usage" - This section explains the general usage rules for the xDB Replication Server CLI. ## Running xDB Replication Server CLI @@ -20,7 +19,7 @@ The Java jar file `edb-repcli.jar` is located in directory `XDB_HOME/bin`. Each xDB Replication Server CLI command has the following general syntax: -``` text +```text -command [ { pubname | subname } ...] ``[ -parameter [ value ] ...] ... ``` @@ -31,11 +30,11 @@ Depending upon the command, one or more parameters may follow. Each parameter na If a command takes more than one parameter, the order in which the parameters are specified makes no difference. Each parameter must be followed only by the values that pertain to it. -Command names and parameter names are all case sensitive and must be given as shown in Section [Getting Help](../08_xdb_cli/03_xdb_cli_commands/#get_help). +Command names and parameter names are all case sensitive and must be given as shown in Section [Getting Help](03_xdb_cli_commands/01_get_help/#get_help). The general, complete, execution syntax that you enter at the command line prompt has the following format: -``` text +```text java -jar XDB_HOME/bin/edb-repcli.jar -command [ { pubname | subname } ...] [ -parameter [ value ] ...] ... @@ -43,33 +42,24 @@ java -jar XDB_HOME/bin/edb-repcli.jar The preceding syntax must be entered as one logical line on the command line. It is broken up into multiple lines in the preceding syntax diagram for the purpose of clarity. -
      - -
      - -Note - -
      - -You can continue a command onto the next physical line if you enter the operating system’s continuation character (for example, the backslash character (`\`) in Linux or the caret character (`^`) in Windows) before pressing the Enter key. - -
      +!!! Note + You can continue a command onto the next physical line if you enter the operating system’s continuation character (for example, the backslash character (`\`) in Linux or the caret character (`^`) in Windows) before pressing the Enter key. ## Getting Help -If you execute the xDB Replication Server CLI with the help command, xDB Replication Server CLI will list a syntax summary of all commands. See [Getting Help](../08_xdb_cli/03_xdb_cli_commands/#get_help) for details on the help command. +If you execute the xDB Replication Server CLI with the help command, xDB Replication Server CLI will list a syntax summary of all commands. See [Getting Help](03_xdb_cli_commands/01_get_help/#get_help) for details on the help command. ## Supplying the Publication or Subscription Server Login Information This section discusses the syntax and usage of an xDB Replication Server CLI parameter, required by many commands, named `repsvrfile`. Using parameter repsvrfile is the xDB Replication Server CLI equivalent for the process of registering the publication server or the subscription server in the xDB Replication Console. -Section [Registering a Publication Server](../05_smr_operation/02_creating_publication/#registering_publication_server) discusses how the first step in building a replication system is to register the publication server. In the xDB Replication Console, the registered publication server appears as a node in the replication tree. The Publication Server node provides a context to which you can add other logical components of the replication system. +Section [Registering a Publication Server](../05_smr_operation/02_creating_publication/01_registering_publication_server/#registering_publication_server) discusses how the first step in building a replication system is to register the publication server. In the xDB Replication Console, the registered publication server appears as a node in the replication tree. The Publication Server node provides a context to which you can add other logical components of the replication system. When using the xDB Replication Server CLI, there is no replication tree image available with which to relate the other logical components of the replication system. Instead, whenever you execute an xDB Replication Server CLI command that requires the context of a publication server or subscription server, you must specify the publication server’s login information or the subscription server’s login information by means of the `repsvrfile` parameter. The `repsvrfile` parameter takes as its value, the path to a text file that contains the login information of either the publication server instance or the subscription server instance that you want to use. The general xDB Replication Server CLI command syntax including the `repsvrfile` parameter is shown in the following diagram: -``` text +```text -command [ { pubname | subname } ...] [ -parameter [ value ] ...] ... [ -repsvrfile repsvrfile ] @@ -82,7 +72,7 @@ The order on the command line in which -repsvrfile repsvrfile and -parameter and The following is an example of `repsvrfile` for a publication server: -``` text +```text host=localhost port=9051 user=admin @@ -92,7 +82,7 @@ password=ygJ9AxoJEX854elcVIJPTw== The following is an example of `repsvrfile` for a subscription server: -``` text +```text host=localhost port=9052 user=admin @@ -109,11 +99,11 @@ In your file, be sure to replace the values of the following fields with the val - User - Password -This is the same information with which you would need to register the publication server or subscription server if you were using the xDB Replication Console. See [Registering a Publication Server](../05_smr_operation/02_creating_publication/#registering_publication_server) for additional information on registering the publication server. See [Registering a Subscription Server](../05_smr_operation/03_creating_subscription/#registering_subscription_server) for information on registering the subscription server. +This is the same information with which you would need to register the publication server or subscription server if you were using the xDB Replication Console. See [Registering a Publication Server](../05_smr_operation/02_creating_publication/01_registering_publication_server/#registering_publication_server) for additional information on registering the publication server. See [Registering a Subscription Server](../05_smr_operation/03_creating_subscription/01_registering_subscription_server/#registering_subscription_server) for information on registering the subscription server. The following example illustrates how the `repsvrfile` parameter is used along with the `printpublist` command. -``` text +```text $ java -jar edb-repcli.jar -printpublist -repsvrfile ~/pubsvrfile.prop Printing publications ... analysts_managers @@ -127,7 +117,7 @@ When using the xDB Replication Server CLI, text files are used to store certain In the file specified with parameter `repsvrfile`, the password field must be set to a password in encrypted form. Using an encrypted password prevents unauthorized personnel from accessing the publication server or subscription server using the values of user and password if the file was somehow compromised. (The encrypted password cannot be used to access the publication server or subscription server from its dialog box in the xDB Replication Console.) -See [Encrypting Passwords](../08_xdb_cli/03_xdb_cli_commands/#encrypt_password) for directions on generating an encrypted password using the encrypt command. +See [Encrypting Passwords](03_xdb_cli_commands/04_encrypt_password/#encrypt_password) for directions on generating an encrypted password using the encrypt command. @@ -137,14 +127,14 @@ The `paramfile` command allows you to run an xDB Replication Server CLI command The syntax for executing `paramfile` is shown by the following: -``` text +```text java -jar XDB_HOME/bin/edb-repcli.jar -paramfile cmdparamfile ``` The syntax of the xDB Replication Server CLI command and its parameters coded into text file `cmdparamfile` is the same as if given at the command line prompt as shown by the following: -``` text +```text -command [ { pubname | subname } ...] [ -parameter [ value ] ...] ... [ -repsvrfile repsvrfile ] @@ -160,7 +150,7 @@ The following example creates an Advanced Server publication database definition The following is the content of parameter file `addpubdb_advsvr`: -``` text +```text -addpubdb -repsvrfile /home/user/pubsvrfile.prop -dbtype enterprisedb @@ -174,7 +164,7 @@ The following is the content of parameter file `addpubdb_advsvr`: For Windows only: The `-repsvrfile` directory path can be specified with either the forward slash or backslash character. Enclose the entire directory path in double quotation marks if a directory name contains space characters: -``` text +```text -addpubdb -repsvrfile "C:\Users\User Name\repcli\pubsvrfile.prop" -dbtype enterprisedb @@ -186,21 +176,12 @@ For Windows only: The `-repsvrfile` directory path can be specified with either -repgrouptype s ``` -
      - -
      - -Note - -
      - -Unlike entering the xDB Replication Server CLI command and its parameters directly at the command line prompt, when coded into a text file, no continuation characters are needed to continue onto the following lines. - -
      +!!! Note + Unlike entering the xDB Replication Server CLI command and its parameters directly at the command line prompt, when coded into a text file, no continuation characters are needed to continue onto the following lines. The following shows the execution of the `paramfile` command: -``` text +```text $ java -jar edb-repcli.jar -paramfile ~/addpubdb_advsvr Adding Publication Database... Publication database added successfully. Publication Database id:1 @@ -212,9 +193,9 @@ After executing an xDB Replication Server CLI command, you can test the exit sta An exit status of 0 indicates successful execution. A non-zero exit status indicates a failure has occurred. -**For Linux only:** The environment variable, $?, contains the exit status. The following example shows the 0 exit status upon the successful execution of the `addpubdb` command contained in the `addpubdb_advsvr` parameter file described in Section [Running xDB Replication Server CLI Using a Parameter File](../08_xdb_cli/#running_xdb_cli_using_para_file). +**For Linux only:** The environment variable, $?, contains the exit status. The following example shows the 0 exit status upon the successful execution of the `addpubdb` command contained in the `addpubdb_advsvr` parameter file described in Section [Running xDB Replication Server CLI Using a Parameter File](#running_xdb_cli_using_para_file). -``` text +```text $ java -jar edb-repcli.jar -paramfile ~/addpubdb_advsvr Adding publication database... Publication database added successfully. Publication database id:1 @@ -225,7 +206,7 @@ $ echo $? On the other hand, the following example shows a non-zero exit status when the command failed with an error. | | | -|-------------|------------------------------| +| ----------- | ---------------------------- | | Exit Status | Description | | 0 | Success | | 201 | Invalid command | @@ -238,7 +219,7 @@ On the other hand, the following example shows a non-zero exit status when the c **Replication Server CLI Exit Status Codes** -``` text +```text $ java -jar edb-repcli.jar -paramfile ~/addpubdb_advsvr Adding publication database... Error:The connection attempt failed. @@ -250,7 +231,7 @@ $ echo $? The following shows the exit status upon successful command execution on a Windows system. -``` text +```text C:\Users>java -jar C:\\"Program Files"\PostgreSQL\EnterpriseDB-xDBReplicationServer\bin\edb-repcli.jar -paramfile addpubdb_advsvr Adding publication database... Publication database added successfully. Publication database id:1 @@ -261,7 +242,7 @@ C:\Users>ECHO %ERRORLEVEL% The following shows the exit status upon unsuccessful command execution on a Windows system. -``` text +```text C:\Users>java -jar C:\\"Program Files"\PostgreSQL\EnterpriseDB-xDBReplicationServer\bin\edb- repcli.jar -paramfile addpubdb_advsvr Adding publication database... diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/01_get_help.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/01_get_help.mdx index 071dc3ab09f..c465fcad86b 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/01_get_help.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/01_get_help.mdx @@ -4,7 +4,6 @@ title: "Getting Help (help)" - The `help` command provides a syntax summary of all xDB Replication Server CLI commands. Synopsis @@ -13,7 +12,7 @@ Synopsis Examples -``` text +```text $ java -jar edb-repcli.jar -help Usage: java -jar edb-repcli.jar [OPTIONS] diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/02_print_version.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/02_print_version.mdx index 00be105be50..895ac3fa51e 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/02_print_version.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/02_print_version.mdx @@ -4,7 +4,6 @@ title: "Printing the Version Number (version)" - The version command provides the xDB Replication Server CLI’s version number. Synopsis @@ -13,7 +12,7 @@ Synopsis Examples -``` text +```text $ java -jar edb-repcli.jar -version Version: 6.1.0-alpha diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/03_print_xdb_server_version.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/03_print_xdb_server_version.mdx index b34d741626e..c37e1191d77 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/03_print_xdb_server_version.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/03_print_xdb_server_version.mdx @@ -4,7 +4,6 @@ title: "Printing the xDB Replication Server Version Number (repversion)" - The repversion command provides the xDB Replication Server’s version number. Synopsis @@ -19,7 +18,7 @@ The file containing the publication server login information. Examples -``` text +```text $ java -jar edb-repcli.jar -repversion -repsvrfile ~/pubsvrfile.prop 6.1.0-alpha diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/04_encrypt_password.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/04_encrypt_password.mdx index fa16738752b..8f5c89e0f8b 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/04_encrypt_password.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/04_encrypt_password.mdx @@ -4,7 +4,6 @@ title: "Encrypting Passwords (encrypt)" - The `encrypt` command encrypts the text supplied in an input file and writes the encrypted result to a specified output file. Use the `encrypt` command to generate an encrypted password that can be copied into a text file that will be referenced by an xDB Replication Server CLI command that requires a user name and the user’s password. Synopsis diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/05_printing_server_uptime.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/05_printing_server_uptime.mdx index 5d20b4b6785..efe8cf67efd 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/05_printing_server_uptime.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/05_printing_server_uptime.mdx @@ -4,7 +4,6 @@ title: "Printing the Time the Server Has Been Running (uptime)" - The `uptime` command prints the time interval since the publication server has been up and running. Synopsis @@ -19,7 +18,7 @@ The file containing the publication server login information. Examples -``` text +```text $ java -jar edb-repcli.jar -uptime -repsvrfile ~/pubsvrfile.prop 0 days 0 hours 4 minutes ``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/06_add_pub_database.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/06_add_pub_database.mdx index dc0b305d246..7a0c83f9e82 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/06_add_pub_database.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/06_add_pub_database.mdx @@ -4,12 +4,11 @@ title: "Adding a Publication Database (addpubdb)" - The `addpubdb` command adds a publication database definition. Synopsis -``` text +```text -addpubdb -repsvrfile pubsvrfile -dbtype { oracle | enterprisedb | postgresql | sqlserver } @@ -31,7 +30,7 @@ Synopsis The `addpubdb` command creates a new publication database definition. The addpubdb command displays a unique publication database ID that is assigned to the newly created publication database definition. The publication database ID is used to identify the publication database definition on which to operate when running other xDB Replication Server CLI commands. -See [Adding a Publication Database](../../05_smr_operation/02_creating_publication/#adding_pub_database) for details on the database connection information that must be supplied when adding a publication database definition for a single-master replication system. See sections [Adding the Primary definition node](../../06_mmr_operation/#adding_pdn) and [Creating Additional Primary nodes](../../06_mmr_operation/#creating_primary_nodes) for a multi-master replication system. +See [Adding a Publication Database](../../05_smr_operation/02_creating_publication/02_adding_pub_database/#adding_pub_database) for details on the database connection information that must be supplied when adding a publication database definition for a single-master replication system. See sections [Adding the Primary definition node](../../06_mmr_operation/02_creating_publication_mmr/#adding_pdn) and [Creating Additional Primary nodes](../../06_mmr_operation/03_creating_primary_nodes/#creating_primary_nodes) for a multi-master replication system. Parameters @@ -57,7 +56,7 @@ Parameters `encrypted_pwd` -> The encrypted password of the publication database user. See [Encrypting Passwords](../../08_xdb_cli/03_xdb_cli_commands/#encrypt_password) for directions on using the encrypt command to generate an encrypted password. +> The encrypted password of the publication database user. See [Encrypting Passwords](04_encrypt_password/#encrypt_password) for directions on using the encrypt command to generate an encrypted password. `pwdfile` @@ -67,17 +66,8 @@ Parameters > Specify `sid` if the Oracle system ID (SID) is used to identify the publication database in the database parameter. Specify `servicename` if the Oracle service name is used to identify the publication database in the database parameter. > ->
      -> ->
      -> -> Note -> ->
      -> -> For Oracle 12c, use the service name. -> ->
      +> !!! Note +> For Oracle 12c, use the service name. `dbname` @@ -85,11 +75,11 @@ Parameters `jdbc_url_parameters` -> Extended usage of JDBC URL parameters such as for support of SSL connectivity. (See Section Preparing Using Secure Sockets Layer (SSL) Connections <using\_ssl\_connections> for information on SSL connectivity to the publication database.) +> Extended usage of JDBC URL parameters such as for support of SSL connectivity. (See Section Preparing Using Secure Sockets Layer (SSL) Connections <using_ssl_connections> for information on SSL connectivity to the publication database.) `filterid_n` -> **For MMR only:** Applies to non-PDN nodes. Comma-separated list of filter IDs identifying the filter rules from the set of available table filters to enable on the corresponding tables in the new primary node. Use the printpubfilterslist command to obtain the filter IDs for the available filter rules in the publication (see [Printing a List of Filters in a Publication](../../08_xdb_cli/03_xdb_cli_commands/#print_publications_filters_list)). Note: There must be no white space between the comma and filter IDs.' +> **For MMR only:** Applies to non-PDN nodes. Comma-separated list of filter IDs identifying the filter rules from the set of available table filters to enable on the corresponding tables in the new primary node. Use the printpubfilterslist command to obtain the filter IDs for the available filter rules in the publication (see [Printing a List of Filters in a Publication](17_print_publications_filters_list/#print_publications_filters_list)). Note: There must be no white space between the comma and filter IDs.' `-repgrouptype` @@ -99,49 +89,22 @@ Parameters > **For MMR only:** Applies to non-PDN nodes. Set this option to true if you want the publication table definitions replicated from the primary definition node when creating a new primary node. Set this option to false if you have already created the table definitions in the new primary node. If omitted, the default is true. Do not specify this parameter when creating the primary definition node. > ->
      -> ->
      -> -> Note -> ->
      -> -> (For MMR only): Unless you intend to use the offline snapshot technique (see Loading Tables From an External Data Source (Offline Snapshot) <offline\_snapshot>), it is suggested that you specify this option. An initial snapshot replication must be performed from the primary definition node to every other primary node before performing synchronization replications on demand (see [Performing a Synchronization](../../08_xdb_cli/03_xdb_cli_commands/#perform_synchronization)) or by a schedule (see [Configuring a Multi-Master Schedule](../../08_xdb_cli/03_xdb_cli_commands/#configure_mmr_schedule)). If a newly added primary node did not undergo an initial snapshot, any subsequent synchronization replication may fail to apply the transactions to that primary node. The initial snapshot can also be taken by performing an on demand snapshot (see [Take a Multi-Master Snapshot](../../08_xdb_cli/03_xdb_cli_commands/#taking_mmr_snapshot)). -> ->
      +> !!! Note +> (For MMR only): Unless you intend to use the offline snapshot technique (see Loading Tables From an External Data Source (Offline Snapshot) <offline_snapshot>), it is suggested that you specify this option. An initial snapshot replication must be performed from the primary definition node to every other primary node before performing synchronization replications on demand (see [Performing a Synchronization](42_perform_synchronization/#perform_synchronization)) or by a schedule (see [Configuring a Multi-Master Schedule](44_configure_mmr_schedule/#configure_mmr_schedule)). If a newly added primary node did not undergo an initial snapshot, any subsequent synchronization replication may fail to apply the transactions to that primary node. The initial snapshot can also be taken by performing an on demand snapshot (see [Take a Multi-Master Snapshot](41_taking_mmr_snapshot/#taking_mmr_snapshot)). `-initialsnapshot` > **For MMR only:** Applies to non-PDN nodes. Specify this option if you want an initial snapshot replication to be performed when creating the primary node. Omit this option if you do not want an initial snapshot replication to be performed when creating the primary node. -
      - -
      - -Note - -
      - -**(For MMR only)** Unless you intend to use the offline snapshot technique (see Loading Tables From an External Data Source (Offline Snapshot) <offline\_snapshot>), it is suggested that you specify this option. An initial snapshot replication must be performed from the primary definition node to every other primary node before performing synchronization replications on demand (see [Performing a Synchronization](../../08_xdb_cli/03_xdb_cli_commands/#perform_synchronization)) or by a schedule (see [Configuring a Multi-Master Schedule](##configure_mmr_schedule)). If a newly added primary node did not undergo an initial snapshot, any subsequent synchronization replication may fail to apply the transactions to that primary node. The initial snapshot can also be taken by performing an on demand snapshot (see Section 8.3.41 [Take a Multi-Master Snapshot](../../08_xdb_cli/03_xdb_cli_commands/#taking_mmr_snapshot)) or by a schedule (see [Configuring a Multi-Master Schedule](##configure_mmr_schedule)). - -
      +!!! Note + **(For MMR only)** Unless you intend to use the offline snapshot technique (see Loading Tables From an External Data Source (Offline Snapshot) <offline_snapshot>), it is suggested that you specify this option. An initial snapshot replication must be performed from the primary definition node to every other primary node before performing synchronization replications on demand (see [Performing a Synchronization](42_perform_synchronization/#perform_synchronization)) or by a schedule (see [Configuring a Multi-Master Schedule](44_configure_mmr_schedule/#configure_mmr_schedule)). If a newly added primary node did not undergo an initial snapshot, any subsequent synchronization replication may fail to apply the transactions to that primary node. The initial snapshot can also be taken by performing an on demand snapshot (see Section 8.3.41 [Take a Multi-Master Snapshot](41_taking_mmr_snapshot/#taking_mmr_snapshot)) or by a schedule (see [Configuring a Multi-Master Schedule](44_configure_mmr_schedule/#configure_mmr_schedule)). `-verboseSnapshotOutput` > Set this option to true if you want the output from the snapshot to be displayed. Set this option to false if you do not want the snapshot output displayed. If omitted, the default is true. -
      - -
      - -Note - -
      - -This option may be given only directly following the specification of the `-initialsnapshot` option. - -
      +!!! Note + This option may be given only directly following the specification of the `-initialsnapshot` option. `priority_level` @@ -155,7 +118,7 @@ Examples The following example adds a publication database definition for an Oracle database. The encrypted password is given on the command line with the dbpassword parameter. A publication database ID of 1 is assigned to the database by the publication service. -``` text +```text $ java -jar edb-repcli.jar -addpubdb -repsvrfile ~/pubsvrfile.prop \ > -dbtype oracle -dbhost 192.168.2.6 -dbport 1521 \ > -dbuser pubuser -dbpassword ygJ9AxoJEX854elcVIJPTw== \ @@ -168,7 +131,7 @@ Publication database added successfully. Publication database id:1 The following example adds a publication database definition for an Advanced Server database. The encrypted password is read from a file named pwdfile with the dbpassfile parameter. A publication database ID of 2 is assigned to the database by the publication service. -``` text +```text $ java -jar edb-repcli.jar -addpubdb -repsvrfile ~/pubsvrfile.prop \ > -dbtype enterprisedb -dbhost 192.168.2.7 -dbport 5444 \ > -dbuser pubuser -dbpassfile ~/pwdfile \ @@ -180,7 +143,7 @@ Publication database added successfully. Publication database id:2 The following example adds a publication database definition for a primary definition node in a multi-master replication system. -``` text +```text $ java -jar edb-repcli.jar -addpubdb -repsvrfile ~/pubsvrfile.prop \ > -dbtype enterprisedb -dbhost 192.168.2.6 -dbport 5444 \ > -dbuser pubuser -dbpassword ygJ9AxoJEX854elcVIJPTw== \ @@ -193,19 +156,10 @@ Publication database added successfully. Publication database id:3 The following example adds a publication database definition for a primary node (other than the primary definition node) in a multi-master replication system where an initial snapshot is not invoked (the initialsnapshot parameter is omitted). Filter rules with filter IDs 8 and 16 are applied to this primary node. A node priority level of 3 is assigned to the primary node. -
      - -
      - -Note - -
      - -A publication must be created in the primary definition node before creating additional primary nodes. See [Creating a Publication](../../08_xdb_cli/03_xdb_cli_commands/#creating_publication_cli) for the command to create a publication. - -
      +!!! Note + A publication must be created in the primary definition node before creating additional primary nodes. See [Creating a Publication](14_creating_publication_cli/#creating_publication_cli) for the command to create a publication. -``` text +```text $ java -jar edb-repcli.jar -addpubdb -repsvrfile ~/pubsvrfile.prop \ > -dbtype enterprisedb -dbhost 192.168.2.7 -dbport 5444 \ > -dbuser MMRuser -dbpassword ygJ9AxoJEX854elcVIJPTw== \ diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/07_printing_pub_db_id.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/07_printing_pub_db_id.mdx index 3de27dcf8e8..dfe6b7c6fc5 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/07_printing_pub_db_id.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/07_printing_pub_db_id.mdx @@ -4,7 +4,6 @@ title: "Printing Publication Database IDs (printpubdbids)" - The `printpubdbids` command prints the publication database IDs of the publication database definitions. Synopsis @@ -21,7 +20,7 @@ Examples The following example lists the publication database IDs of the publication database definitions. -``` text +```text $ java -jar edb-repcli.jar -printpubdbids -repsvrfile ~/pubsvrfile.prop Printing publication database ids... 2 diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/08_printing_pub_db_details.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/08_printing_pub_db_details.mdx index 030cc2ee15c..de64db3bfcd 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/08_printing_pub_db_details.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/08_printing_pub_db_details.mdx @@ -4,7 +4,6 @@ title: "Printing Publication Database Details (printpubdbidsdetails)" - The `printpubdbidsdetails` command prints the connection information for each publication database definition. Synopsis @@ -15,17 +14,8 @@ The output has the following components: `dbid:host:port:dbname:user` -
      - -
      - -Note - -
      - -The database user’s password is not displayed. - -
      +!!! Note + The database user’s password is not displayed. Parameters @@ -57,7 +47,7 @@ Examples There are four publication database definitions subordinate to the publication server identified by the content of file `pubsvrfile.prop`. -``` text +```text $ java -jar edb-repcli.jar -printpubdbidsdetails \ > -repsvrfile ~/pubsvrfile.prop Printing publication database ids with details... diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/09_printing_controller_db_id.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/09_printing_controller_db_id.mdx index 0ba2731d706..287f3d72e42 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/09_printing_controller_db_id.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/09_printing_controller_db_id.mdx @@ -4,7 +4,6 @@ title: "Printing the Controller Database ID (printcontrollerdbid)" - The `printcontrollerdbid` command prints the publication database ID of the controller database. Synopsis @@ -21,7 +20,7 @@ Examples The following example prints the publication database ID of the controller database. -``` text +```text $ java -jar edb-repcli.jar -printcontrollerdbid -repsvrfile ~/pubsvrfile.prop Printing Controller database id... 1 diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/10_printing_pdn_node_db_id.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/10_printing_pdn_node_db_id.mdx index 9a4c1b367ba..163f984b12f 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/10_printing_pdn_node_db_id.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/10_printing_pdn_node_db_id.mdx @@ -4,7 +4,6 @@ title: "Printing the Primary definition node Database ID (printpdndbid)" - **For MMR only:** The `printpdndbid` command prints the publication database ID of the primary definition node. Synopsis @@ -21,7 +20,7 @@ Examples The following example prints the publication database ID of the primary definition node. -``` text +```text $ java -jar edb-repcli.jar -printPDNdbid -repsvrfile ~/pubsvrfile.prop Printing PDN Publication database id... 3 diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/11_updating_publication_database.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/11_updating_publication_database.mdx index d0eb666221a..3d9274c60d2 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/11_updating_publication_database.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/11_updating_publication_database.mdx @@ -4,12 +4,11 @@ title: "Updating a Publication Database (updatepubdb)" - The `updatepubdb` command provides the ability to change the connection information for an existing publication database definition identified by its publication database ID. Synopsis -``` text +```text -updatepubdb -repsvrfile pubsvrfile -pubdbid dbid @@ -25,7 +24,7 @@ Synopsis The publication database definition to be updated is identified by the `pubdbid` parameter. -See [Adding a Publication Database](../../05_smr_operation/02_creating_publication/#adding_pub_database) for details on the database connection information that must be supplied for a publication database definition for a single-master replication system. See sections [Adding the Primary definition node](../../06_mmr_operation/#adding_pdn) and [Creating Additional Primary nodes](../../06_mmr_operation/#creating_primary_nodes) for a multi-master replication system. +See [Adding a Publication Database](../../05_smr_operation/02_creating_publication/02_adding_pub_database/#adding_pub_database) for details on the database connection information that must be supplied for a publication database definition for a single-master replication system. See sections [Adding the Primary definition node](../../06_mmr_operation/02_creating_publication_mmr/#adding_pdn) and [Creating Additional Primary nodes](../../06_mmr_operation/03_creating_primary_nodes/#creating_primary_nodes) for a multi-master replication system. Parameters @@ -51,7 +50,7 @@ Parameters `encrypted_pwd` -> The password of the database user in encrypted form. See [Encrypting Passwords](../../08_xdb_cli/03_xdb_cli_commands/#encrypt_password) for directions on using the encrypt command to generate an encrypted password. +> The password of the database user in encrypted form. See [Encrypting Passwords](04_encrypt_password/#encrypt_password) for directions on using the encrypt command to generate an encrypted password. `pwdfile` @@ -61,17 +60,8 @@ Parameters > Specify `sid` if the Oracle system ID (SID) is used to identify the publication database in the database parameter. Specify `servicename` if the Oracle service name is used to identify the publication database in the database parameter. -
      - -
      - -Note - -
      - -For Oracle 12c, use the service name. - -
      +!!! Note + For Oracle 12c, use the service name. dbname @@ -79,7 +69,7 @@ dbname `jdbc_url_parameters` -> Extended usage of JDBC URL parameters such as for support of SSL connectivity. (See Preparing Using Secure Sockets Layer (SSL) Connections <using\_ssl\_connections> for information on SSL connectivity to the publication database.) Specification of the urloptions parameter completely replaces any existing JDBC URL parameters that may have previously been specified with this database. Omission of the urloptions parameter deletes any existing JDBC URL parameters that may have previously been specified with this database. +> Extended usage of JDBC URL parameters such as for support of SSL connectivity. (See Preparing Using Secure Sockets Layer (SSL) Connections <using_ssl_connections> for information on SSL connectivity to the publication database.) Specification of the urloptions parameter completely replaces any existing JDBC URL parameters that may have previously been specified with this database. Omission of the urloptions parameter deletes any existing JDBC URL parameters that may have previously been specified with this database. `priority_level` @@ -89,7 +79,7 @@ Examples In the following example, an existing publication database definition with publication database ID 1 is updated. -``` text +```text $ java -jar edb-repcli.jar -updatepubdb -repsvrfile ~/pubsvrfile.prop \ > -pubdbid 1 \ > -dbhost 192.168.2.6 -dbport 1521 \ diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/12_removing_publication_database.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/12_removing_publication_database.mdx index 6b86148fb6b..2c1a63123a7 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/12_removing_publication_database.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/12_removing_publication_database.mdx @@ -4,12 +4,11 @@ title: "Removing a Publication Database (removepubdb)" - The `removepubdb` command removes a publication database definition. Synopsis -``` text +```text -removepubdb –repsvrfile pubsvrfile –pubdbid dbid @@ -17,7 +16,7 @@ Synopsis The publication database definition to be removed is identified by the `pubdbid` parameter. -See [Removing a Publication Database](../../07_common_operations/06_managing_publication/#removing_pub_database) +See [Removing a Publication Database](../../07_common_operations/06_managing_publication/07_removing_pub_database/#removing_pub_database) for additional information on removing a publication database. Parameters @@ -34,7 +33,7 @@ Examples The publication database definition identified by publication database ID 1 is removed. -``` text +```text $ java -jar edb-repcli.jar -removepubdb -repsvrfile ~/pubsvrfile.prop \ > -pubdbid 1 Removing Publication Database... diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/13_get_tables_for_new_publication.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/13_get_tables_for_new_publication.mdx index 06d624efb54..0e1f5b37479 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/13_get_tables_for_new_publication.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/13_get_tables_for_new_publication.mdx @@ -4,7 +4,6 @@ title: "Get Tables for a New Publication (gettablesfornewpub)" - The `gettablesfornewpub` command lists the tables and views that are available for inclusion in a new publication from a given publication database definition. Synopsis @@ -25,7 +24,7 @@ Examples For the publication database definition identified by publication database ID 1, the tables available for inclusion in a publication are `EDB.DEPT, EDB.EMP`, and `EDB.JOBHIST`. The view available for inclusion in a publication is `EDB.SALESEMP`. -``` text +```text $ java -jar edb-repcli.jar -gettablesfornewpub \ > -repsvrfile ~/pubsvrfile.prop -pubdbid 1 Fetching tables/views list ... diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/14_creating_publication_cli.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/14_creating_publication_cli.mdx index 3d151aa24de..6e6377c4faf 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/14_creating_publication_cli.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/14_creating_publication_cli.mdx @@ -4,12 +4,11 @@ title: "Creating a Publication (createpub)" - The `createpub` command creates a new publication. Synopsis -``` text +```text -createpub pubname -repsvrfile pubsvrfile -pubdbid dbid @@ -33,19 +32,10 @@ Synopsis The `createpub` command adds a new publication subordinate to the publication database definition with the publication database ID given by parameter `pubdbid`. If the publication is designated as snapshot-only by setting parameter `reptype` to `s`, then any views listed after the views parameter are ignored. -See [Adding a Publication](../../05_smr_operation/02_creating_publication/#adding_publication) for additional information on creating a publication for a single-master replication system. See [Adding a Publication](../../06_mmr_operation/#add_pub_mmr) for a multi-master replication system. - -
      - -
      - -Note - -
      - -The schema names, table names, and view names that you supply as values for the tables and views parameters are case-sensitive. Unless quoted identifiers were used to build the database objects, Oracle names must be entered using uppercase letters (for example, `EDB.DEPT`), and Advanced Server names must be entered in lowercase letters (for example `edb.dept`). See [Quoted Identifiers and Default Case Translation](../../10_appendix/04_miscellaneous_xdb_processing_topics/#quoted_identifiers) for additional information on quoted identifiers and case translation. +See [Adding a Publication](../../05_smr_operation/02_creating_publication/03_adding_publication/#adding_publication) for additional information on creating a publication for a single-master replication system. See [Adding a Publication](../../06_mmr_operation/02_creating_publication_mmr/#add_pub_mmr) for a multi-master replication system. -
      +!!! Note + The schema names, table names, and view names that you supply as values for the tables and views parameters are case-sensitive. Unless quoted identifiers were used to build the database objects, Oracle names must be entered using uppercase letters (for example, `EDB.DEPT`), and Advanced Server names must be entered in lowercase letters (for example `edb.dept`). See [Quoted Identifiers and Default Case Translation](../../10_appendix/04_miscellaneous_xdb_processing_topics/05_quoted_identifiers/#quoted_identifiers) for additional information on quoted identifiers and case translation. Parameters @@ -91,7 +81,7 @@ Parameters `filterclause_tn` -> The filter clause to be applied to the table in the tables parameter list at the position indicated by ordinal\_tn. +> The filter clause to be applied to the table in the tables parameter list at the position indicated by ordinal_tn. `ordinal_vn` @@ -103,19 +93,19 @@ Parameters `filterclause_vn` -> **For SMR only:** The filter clause to be applied to the view in the views parameter list at the position indicated by ordinal\_vn. +> **For SMR only:** The filter clause to be applied to the view in the views parameter list at the position indicated by ordinal_vn. `-conflictresolution` -> **For MMR only:** For the conflict resolution option, specify E for earliest timestamp conflict resolution, L for latest timestamp conflict resolution, N for node priority conflict resolution, M for manual conflict resolution, or C for custom conflict handling. The specified conflict resolution applies to the table in the position given by ordinal\_tn counting from left to right in the tables parameter list. If omitted the default is E. +> **For MMR only:** For the conflict resolution option, specify E for earliest timestamp conflict resolution, L for latest timestamp conflict resolution, N for node priority conflict resolution, M for manual conflict resolution, or C for custom conflict handling. The specified conflict resolution applies to the table in the position given by ordinal_tn counting from left to right in the tables parameter list. If omitted the default is E. `-standbyconflictresolution` -> **For MMR only:** For the standby conflict resolution option, specify E for earliest timestamp conflict resolution, L for latest timestamp conflict resolution, N for node priority conflict resolution, M for manual conflict resolution, or C for custom conflict handling. The specified conflict resolution applies to the table in the position given by ordinal\_tn counting from left to right in the tables parameter list. If omitted the default is M. +> **For MMR only:** For the standby conflict resolution option, specify E for earliest timestamp conflict resolution, L for latest timestamp conflict resolution, N for node priority conflict resolution, M for manual conflict resolution, or C for custom conflict handling. The specified conflict resolution applies to the table in the position given by ordinal_tn counting from left to right in the tables parameter list. If omitted the default is M. `customhandler_tn` -> **For MMR only:** For the conflict resolution option or the standby conflict resolution option, specify customhandler\_tn as the function name with an optional schema prefix (that is, formatted as schema.function\_name) as given in the CREATE FUNCTION command for the custom conflict handling function created for the table in the tables parameter list at the position indicated by ordinal\_tn. The custom conflict handling function must be added to the primary definition node. See [Adding a Custom Conflict Handling Function](../../06_mmr_operation/06_conflict_resolution/08_custom_conflict_handling/#adding_custom_conflict_handling_function) for an example of adding the custom conflict handling function using PSQL. The custom handler name option must be specified if and only if the conflict resolution option or the standby conflict resolution option is set for custom conflict handling with the C value. +> **For MMR only:** For the conflict resolution option or the standby conflict resolution option, specify customhandler_tn as the function name with an optional schema prefix (that is, formatted as schema.function_name) as given in the CREATE FUNCTION command for the custom conflict handling function created for the table in the tables parameter list at the position indicated by ordinal_tn. The custom conflict handling function must be added to the primary definition node. See [Adding a Custom Conflict Handling Function](../../06_mmr_operation/06_conflict_resolution/08_custom_conflict_handling/02_adding_custom_conflict_handling_function/#adding_custom_conflict_handling_function) for an example of adding the custom conflict handling function using PSQL. The custom handler name option must be specified if and only if the conflict resolution option or the standby conflict resolution option is set for custom conflict handling with the C value. `-repgrouptype` @@ -123,9 +113,9 @@ Parameters Examples -In the following example, a publication named dept\_emp is created that contains the EDB.DEPT and EDB.EMP tables of an Oracle database. The replication method is synchronization. +In the following example, a publication named dept_emp is created that contains the EDB.DEPT and EDB.EMP tables of an Oracle database. The replication method is synchronization. -``` text +```text $ java -jar edb-repcli.jar -createpub dept_emp \ > -repsvrfile ~/pubsvrfile.prop \ > -pubdbid 1 \ @@ -139,7 +129,7 @@ Publication created. In the following example, a publication named salesemp is created that contains the EDB.SALESEMP view of an Oracle database. The replication method is snapshot-only. -``` text +```text $ java -jar edb-repcli.jar -createpub salesemp \ > -repsvrfile ~/pubsvrfile.prop \ > -pubdbid 1 \ @@ -151,9 +141,9 @@ Filter clause:[] Publication created. ``` -In the following example, a publication named analysts\_managers is created that contains the `edb.dept` table and employees from the `edb.emp` table who are analysts or managers. The tables are in an Advanced Server database. The replication method is snapshot-only. +In the following example, a publication named analysts_managers is created that contains the `edb.dept` table and employees from the `edb.emp` table who are analysts or managers. The tables are in an Advanced Server database. The replication method is snapshot-only. -``` text +```text $ java -jar edb-repcli.jar -createpub analysts_managers \ > -repsvrfile ~/pubsvrfile.prop \ > -pubdbid 2 \ @@ -168,7 +158,7 @@ Publication created. The following example creates a publication for a multi-master replication system. One table filter is defined on table `edb.dept` and three table filters are defined on table `edb.emp`. Table `edb.dept` is assigned node priority conflict resolution and latest timestamp as the standby conflict resolution strategy. Table `edb.emp` is assigned earliest timestamp conflict resolution and manual resolution (the default) as its standby strategy. -``` text +```text $ java -jar edb-repcli.jar -createpub emp_pub \ > -repsvrfile ~/pubsvrfile.prop \ > -pubdbid 3 \ diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/15_print_publications_list.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/15_print_publications_list.mdx index e5707577bbb..7d923c3800a 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/15_print_publications_list.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/15_print_publications_list.mdx @@ -4,12 +4,11 @@ title: "Printing a List of Publications (printpublist)" - The `printpublist` command prints a list of publication names. Synopsis -``` text +```text -printpublist -repsvrfile pubsvrfile [ -pubdbid dbid ] [ -printpubid ] @@ -31,7 +30,7 @@ Parameters Examples -``` text +```text $ java -jar edb-repcli.jar -printpublist -repsvrfile ~/pubsvrfile.prop Printing publications ... analysts_managers diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/16_print_publications_tables_list.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/16_print_publications_tables_list.mdx index 95ac0f162b8..feb79379ef6 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/16_print_publications_tables_list.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/16_print_publications_tables_list.mdx @@ -4,12 +4,11 @@ title: "Printing a List of Tables in a Publication (printpublishedtables)" - The `printpublishedtables` command prints a list of tables and views that belong to the given publication. Synopsis -``` text +```text -printpublishedtables pubname -repsvrfile pubsvrfile ``` @@ -25,7 +24,7 @@ Parameters Examples -``` text +```text The tables belonging to publication dept_emp are printed. $ java -jar edb-repcli.jar -printpublishedtables dept_emp \ > -repsvrfile ~/pubsvrfile.prop diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/17_print_publications_filters_list.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/17_print_publications_filters_list.mdx index 65e35484bc0..611353dc6dc 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/17_print_publications_filters_list.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/17_print_publications_filters_list.mdx @@ -4,12 +4,11 @@ title: "Printing a List of Filters in a Publication (printpubfilterslist)" - The `printpubfilterslist` command prints a list of table filters that are defined in the given publication. Synopsis -``` text +```text -printpubfilterslist pubname -repsvrfile pubsvrfile ``` @@ -25,9 +24,9 @@ Parameters Examples -The table filters in publication analysts\_managers are printed. +The table filters in publication analysts_managers are printed. -``` text +```text $ java -jar edb-repcli.jar -printpubfilterslist analysts_managers \ > -repsvrfile ~/pubsvrfile.prop Printing publications ... @@ -36,7 +35,7 @@ FilterID:47 FilterName:jobgrade_11 FilterClause:job IN ('ANALYST', 'MANAGE The table filters defined in publication `emp_pub` are printed. -``` text +```text $ java -jar edb-repcli.jar -printpubfilterslist emp_pub \ > -repsvrfile ~/pubsvrfile.prop Printing publications ... diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/18_adding_tables_to_publication.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/18_adding_tables_to_publication.mdx index e60ca6f9db1..b44f15d65ea 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/18_adding_tables_to_publication.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/18_adding_tables_to_publication.mdx @@ -4,12 +4,11 @@ title: "Adding Tables to a Publication (addtablesintopub)" - The `addtablesintopub` command adds tables or views into an existing publication. Synopsis -``` text +```text -addtablesintopub pubname -repsvrfile pubsvrfile [ -tables schema_t1.table_1 [ schema_t2.table_2 ] ...] @@ -29,19 +28,10 @@ Synopsis [ -repgrouptype { m | s } ] ``` -The `addtablesintopub` command updates an existing publication identified by pubname. The views parameter is applicable only for a snapshot-only publication and is ignored if the publication is not defined as snapshot-only. See [Adding Tables to a Publication](../../07_common_operations/06_managing_publication/#add_tables_to_pub) for additional information on adding tables to a publication. - -
      - -
      - -Note - -
      - -The schema names, table names, and view names that you supply as values for the tables and views parameters are case-sensitive. Unless quoted identifiers were used to build the database objects, Oracle names must be entered using uppercase letters (for example, `EDB.DEPT`), and Advanced Server names must be entered in lowercase letters (for example `edb.dept`). See [Quoted Identifiers and Default Case Translation](../../10_appendix/04_miscellaneous_xdb_processing_topics/#quoted_identifiers) for additional information on quoted identifiers and case translation. +The `addtablesintopub` command updates an existing publication identified by pubname. The views parameter is applicable only for a snapshot-only publication and is ignored if the publication is not defined as snapshot-only. See [Adding Tables to a Publication](../../07_common_operations/06_managing_publication/03_updating_pub/#add_tables_to_pub) for additional information on adding tables to a publication. -
      +!!! Note + The schema names, table names, and view names that you supply as values for the tables and views parameters are case-sensitive. Unless quoted identifiers were used to build the database objects, Oracle names must be entered using uppercase letters (for example, `EDB.DEPT`), and Advanced Server names must be entered in lowercase letters (for example `edb.dept`). See [Quoted Identifiers and Default Case Translation](../../10_appendix/04_miscellaneous_xdb_processing_topics/05_quoted_identifiers/#quoted_identifiers) for additional information on quoted identifiers and case translation. Parameters @@ -79,7 +69,7 @@ Parameters `filterclause_tn` -> The filter clause to be applied to the table in the tables parameter list at the position indicated by ordinal\_tn. +> The filter clause to be applied to the table in the tables parameter list at the position indicated by ordinal_tn. `ordinal_vn` @@ -91,19 +81,19 @@ Parameters `filterclause_vn` -> **For SMR only:** The filter clause to be applied to the view in the views parameter list at the position indicated by ordinal\_vn. +> **For SMR only:** The filter clause to be applied to the view in the views parameter list at the position indicated by ordinal_vn. `-conflictresolution` -> **For MMR only:** For the conflict resolution option, specify E for earliest timestamp conflict resolution, L for latest timestamp conflict resolution, N for node priority conflict resolution, M for manual conflict resolution, or C for custom conflict handling. The specified conflict resolution applies to the table in the position given by ordinal\_tn counting from left to right in the tables parameter list. If omitted the default is E. +> **For MMR only:** For the conflict resolution option, specify E for earliest timestamp conflict resolution, L for latest timestamp conflict resolution, N for node priority conflict resolution, M for manual conflict resolution, or C for custom conflict handling. The specified conflict resolution applies to the table in the position given by ordinal_tn counting from left to right in the tables parameter list. If omitted the default is E. `-standbyconflictresolution` -> **For MMR only:** For the standby conflict resolution option, specify E for earliest timestamp conflict resolution, L for latest timestamp conflict resolution, N for node priority conflict resolution, M for manual conflict resolution, or C for custom conflict handling. The specified conflict resolution applies to the table in the position given by ordinal\_tn counting from left to right in the tables parameter list. If omitted the default is M. +> **For MMR only:** For the standby conflict resolution option, specify E for earliest timestamp conflict resolution, L for latest timestamp conflict resolution, N for node priority conflict resolution, M for manual conflict resolution, or C for custom conflict handling. The specified conflict resolution applies to the table in the position given by ordinal_tn counting from left to right in the tables parameter list. If omitted the default is M. `customhandler_tn` -> **For MMR only:** For the conflict resolution option or the standby conflict resolution option, specify customhandler\_tn as the function name with an optional schema prefix (that is, formatted as schema.function\_name) as given in the CREATE FUNCTION command for the custom conflict handling function created for the table in the tables parameter list at the position indicated by ordinal\_tn. The custom conflict handling function must be added to the primary definition node. See [Adding a Custom Conflict Handling Function](../../06_mmr_operation/06_conflict_resolution/08_custom_conflict_handling/#adding_custom_conflict_handling_function) for an example of adding the custom conflict handling function using PSQL. The custom handler name option must be specified if and only if the conflict resolution option or the standby conflict resolution option is set for custom conflict handling with the C value. +> **For MMR only:** For the conflict resolution option or the standby conflict resolution option, specify customhandler_tn as the function name with an optional schema prefix (that is, formatted as schema.function_name) as given in the CREATE FUNCTION command for the custom conflict handling function created for the table in the tables parameter list at the position indicated by ordinal_tn. The custom conflict handling function must be added to the primary definition node. See [Adding a Custom Conflict Handling Function](../../06_mmr_operation/06_conflict_resolution/08_custom_conflict_handling/02_adding_custom_conflict_handling_function/#adding_custom_conflict_handling_function) for an example of adding the custom conflict handling function using PSQL. The custom handler name option must be specified if and only if the conflict resolution option or the standby conflict resolution option is set for custom conflict handling with the C value. `-repgrouptype` @@ -111,9 +101,9 @@ Parameters Examples -In the following example, table `edb.jobhist` and view `edb.salesemp` are added to an existing publication named analysts\_managers. +In the following example, table `edb.jobhist` and view `edb.salesemp` are added to an existing publication named analysts_managers. -``` text +```text $ java -jar edb-repcli.jar -addtablesintopub analysts_managers \ > -repsvrfile ~/pubsvrfile.prop \ > -tables edb.jobhist \ diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/19_removing_tables_from_publication.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/19_removing_tables_from_publication.mdx index 9aaab92b72f..d378b95de0c 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/19_removing_tables_from_publication.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/19_removing_tables_from_publication.mdx @@ -4,31 +4,21 @@ title: "Removing Tables from a Publication (removetablesfrompub)" - The `removetablesfrompub` command removes tables from a publication. Synopsis -``` text +```text -removetablesfrompub pubname -repsvrfile pubsvrfile [ -tables schema_t1.table_1 [ schema_t2.table_2 ] ...] [ -views schema_v1.view_1 [ schema_v2.view_2 ] ...] ``` -See [Removing Tables from a Publication](../../07_common_operations/06_managing_publication/#remove_tables_from_pub) for additional information on removing tables from a publication. - -
      - -
      - -Note - -
      - -The schema names, table names, and view names that you supply as values for the tables and views parameters are case-sensitive. Unless quoted identifiers were used to build the database objects, Oracle names must be entered using uppercase letters (for example, `EDB.DEPT`), and Advanced Server names must be entered in lowercase letters (for example `edb.dept`). See [Quoted Identifiers and Default Case Translation](../../10_appendix/04_miscellaneous_xdb_processing_topics/#quoted_identifiers) for additional information on quoted identifiers and case translation. +See [Removing Tables from a Publication](../../07_common_operations/06_managing_publication/03_updating_pub/#remove_tables_from_pub) for additional information on removing tables from a publication. -
      +!!! Note + The schema names, table names, and view names that you supply as values for the tables and views parameters are case-sensitive. Unless quoted identifiers were used to build the database objects, Oracle names must be entered using uppercase letters (for example, `EDB.DEPT`), and Advanced Server names must be entered in lowercase letters (for example `edb.dept`). See [Quoted Identifiers and Default Case Translation](../../10_appendix/04_miscellaneous_xdb_processing_topics/05_quoted_identifiers/#quoted_identifiers) for additional information on quoted identifiers and case translation. Parameters @@ -58,9 +48,9 @@ Parameters Examples -In the following example, table `edb.jobhist` and view `edb.salesemp` are removed from the analysts\_managers publication. +In the following example, table `edb.jobhist` and view `edb.salesemp` are removed from the analysts_managers publication. -``` text +```text $ java -jar edb-repcli.jar -removetablesfrompub analysts_managers \ > -repsvrfile ~/pubsvrfile.prop \ > -tables edb.jobhist \ diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/20_adding_tablefilters_to_publication.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/20_adding_tablefilters_to_publication.mdx index ecd626a65b1..f7a022dfc8d 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/20_adding_tablefilters_to_publication.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/20_adding_tablefilters_to_publication.mdx @@ -4,18 +4,17 @@ title: "Adding Table Filters to a Publication (addfilter)" - The `addfilter` command adds the definition of table filter rules to the specified publication. This makes the filter rules available for subsequent enablement on target subscriptions or non-PDN nodes. Enabling a filter rule on a specified, target subscription or non-PDN node results in the filtering of data during replication from the source table to the target table. -If the filter rule is not enabled on a target subscription or non-PDN node, then it has no impact during replication on such subscription or non-PDN node. See [Enabling Filters on a Subscription or Non-PDN Node](../../08_xdb_cli/03_xdb_cli_commands/#enable_filters_on_subscription_or_non_pdn_node) for information on enabling table filter rules. +If the filter rule is not enabled on a target subscription or non-PDN node, then it has no impact during replication on such subscription or non-PDN node. See [Enabling Filters on a Subscription or Non-PDN Node](38_enable_filters_on_subscription_or_non_pdn_node/#enable_filters_on_subscription_or_non_pdn_node) for information on enabling table filter rules. Synopsis -``` text +```text -addfilter pubname –repsvrfile pubsvrfile [ -tables schema_t1.table_1 [ schema_t2.table_2 ] ...] @@ -28,19 +27,10 @@ Synopsis [ "ordinal_v2:filtername_v2:filterclause_v2" ] ...] ``` -See [Table Filters](../../02_overview/02_replication_concepts_and_definitions/#table_filters) for additional information on table filters. - -
      - -
      - -Note - -
      - -The schema names and table or view names that you supply as values for the tables or views parameters are case-sensitive. Unless quoted identifiers were used to build the database objects, Oracle names must be entered using uppercase letters (for example, `EDB.DEPT`), and Advanced Server names must be entered in lowercase letters (for example `edb.dept`). See [Quoted Identifiers and Default Case Translation](../../10_appendix/04_miscellaneous_xdb_processing_topics/#quoted_identifiers) for additional information on quoted identifiers and case translation. +See [Table Filters](../../02_overview/02_replication_concepts_and_definitions/13_table_filters/#table_filters) for additional information on table filters. -
      +!!! Note + The schema names and table or view names that you supply as values for the tables or views parameters are case-sensitive. Unless quoted identifiers were used to build the database objects, Oracle names must be entered using uppercase letters (for example, `EDB.DEPT`), and Advanced Server names must be entered in lowercase letters (for example `edb.dept`). See [Quoted Identifiers and Default Case Translation](../../10_appendix/04_miscellaneous_xdb_processing_topics/05_quoted_identifiers/#quoted_identifiers) for additional information on quoted identifiers and case translation. Parameters @@ -78,7 +68,7 @@ Parameters `filterclause_tn` -> The filter clause to be applied to the table in the tables parameter list at the position indicated by ordinal\_tn. +> The filter clause to be applied to the table in the tables parameter list at the position indicated by ordinal_tn. `ordinal_vn` @@ -90,13 +80,13 @@ Parameters `filterclause_vn` -> **For SMR only:** The filter clause to be applied to the view in the views parameter list at the position indicated by ordinal\_vn. +> **For SMR only:** The filter clause to be applied to the view in the views parameter list at the position indicated by ordinal_vn. Examples -In the following example, a table filter is added to table `edb.emp` in publication analysts\_managers. +In the following example, a table filter is added to table `edb.emp` in publication analysts_managers. -``` text +```text $ java -jar edb-repcli.jar -addfilter analysts_managers \ > -repsvrfile ~/pubsvrfile.prop \ > -tables edb.emp \ diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/21_updating_tablefilters_to_publication.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/21_updating_tablefilters_to_publication.mdx index e995c5f2935..09a077d344d 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/21_updating_tablefilters_to_publication.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/21_updating_tablefilters_to_publication.mdx @@ -4,12 +4,11 @@ title: "Updating Table Filters in a Publication (updatefilter)" - The `updatefilter` command changes the filter clauses of the specified tables or views. Synopsis -``` text +```text -updatefilter pubname –repsvrfile pubsvrfile -tablesfilterclause @@ -19,7 +18,7 @@ Synopsis The next, subsequent replication to any target subscriptions or non-PDN nodes on which these filter rules had been enabled reflects the changes to the filter clauses. -See [Table Filters](../../02_overview/02_replication_concepts_and_definitions/#table_filters) for additional information on table filters. +See [Table Filters](../../02_overview/02_replication_concepts_and_definitions/13_table_filters/#table_filters) for additional information on table filters. Parameters @@ -33,7 +32,7 @@ Parameters `filterid_n` -> Filter ID identifying the filter rule for which the filter clause is to be changed. Use the `printpubfilterslist` command to obtain the filter IDs for the available filter rules in the publication (see [Printing a List of Filters in a Publication](../../08_xdb_cli/03_xdb_cli_commands/#print_publications_filters_list)). +> Filter ID identifying the filter rule for which the filter clause is to be changed. Use the `printpubfilterslist` command to obtain the filter IDs for the available filter rules in the publication (see [Printing a List of Filters in a Publication](17_print_publications_filters_list/#print_publications_filters_list)). `filterclause_n` @@ -41,9 +40,9 @@ Parameters Examples -The filter clause with filter ID 26 in publication analysts\_managers is modified. +The filter clause with filter ID 26 in publication analysts_managers is modified. -``` text +```text $ java -jar edb-repcli.jar -updatefilter analysts_managers \ > -repsvrfile ~/pubsvrfile.prop \ > -tablesfilterclause "26:job = 'CLERK'" diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/22_removing_tablefilters_to_publication.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/22_removing_tablefilters_to_publication.mdx index 70de0f55b22..1a578863396 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/22_removing_tablefilters_to_publication.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/22_removing_tablefilters_to_publication.mdx @@ -4,12 +4,11 @@ title: "Removing a Table Filter from a Publication (removefilter)" - The `removefilter` command deletes the table filter from the specified publication. Synopsis -``` text +```text -removefilter pubname –repsvrfile pubsvrfile -filterid filterid @@ -17,7 +16,7 @@ Synopsis The removed filter rule no longer applies to any target subscriptions or non-PDN nodes on which the filter rule had been enabled. -See [Table Filters](../../02_overview/02_replication_concepts_and_definitions/#table_filters) for additional information on table filters. +See [Table Filters](../../02_overview/02_replication_concepts_and_definitions/13_table_filters/#table_filters) for additional information on table filters. Parameters @@ -31,13 +30,13 @@ Parameters `filterid` -> Filter ID identifying the filter rule to be deleted. Use the printpubfilterslist command to obtain the filter IDs for the filter rules in the publication (see [Printing a List of Filters in a Publication](../../08_xdb_cli/03_xdb_cli_commands/#print_publications_filters_list)). +> Filter ID identifying the filter rule to be deleted. Use the printpubfilterslist command to obtain the filter IDs for the filter rules in the publication (see [Printing a List of Filters in a Publication](17_print_publications_filters_list/#print_publications_filters_list)). Examples -In the following example, the filter rule with filter ID 26 is removed from publication analysts\_managers. +In the following example, the filter rule with filter ID 26 is removed from publication analysts_managers. -``` text +```text $ java -jar edb-repcli.jar -removefilter analysts_managers \ > -repsvrfile ~/pubsvrfile.prop \ > -filterid 26 diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/23_print_conflict_resolution_strategy.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/23_print_conflict_resolution_strategy.mdx index 2b6a0f33e37..2ff9a61f7dd 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/23_print_conflict_resolution_strategy.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/23_print_conflict_resolution_strategy.mdx @@ -4,12 +4,11 @@ title: "Printing the Conflict Resolution Strategy (printconfresolutionstrategy)" - **For MMR only:** The `printconfresolutionstrategy` command prints the conflict resolution strategy and the standby conflict resolution strategy of the specified table. Synopsis -``` text +```text -printconfresolutionstrategy pubname –repsvrfile pubsvrfile -table schema_t.table_name @@ -17,17 +16,8 @@ Synopsis See [Conflict Resolution](../../06_mmr_operation/06_conflict_resolution/#conflict_resolution) for additional information on conflict resolution. -
      - -
      - -Note - -
      - -The schema name and table or view name that you supply as values for the table parameter are case-sensitive. Unless quoted identifiers were used to build the database objects, Oracle names must be entered using uppercase letters (for example, `EDB.DEPT`), and Advanced Server names must be entered in lowercase letters (for example `edb.dept`). See [Quoted Identifiers and Default Case Translation](../../10_appendix/04_miscellaneous_xdb_processing_topics/#quoted_identifiers) for additional information on quoted identifiers and case translation. - -
      +!!! Note + The schema name and table or view name that you supply as values for the table parameter are case-sensitive. Unless quoted identifiers were used to build the database objects, Oracle names must be entered using uppercase letters (for example, `EDB.DEPT`), and Advanced Server names must be entered in lowercase letters (for example `edb.dept`). See [Quoted Identifiers and Default Case Translation](../../10_appendix/04_miscellaneous_xdb_processing_topics/05_quoted_identifiers/#quoted_identifiers) for additional information on quoted identifiers and case translation. Parameters @@ -51,7 +41,7 @@ Examples In the following example, the conflict resolution strategy on Advanced Server table `edb.emp` in publication `emp_pub` is printed. -``` text +```text $ java -jar edb-repcli.jar -printconfresolutionstrategy emp_pub \ > -repsvrfile ~/pubsvrfile.prop \ > -table edb.emp diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/24_updating_conflict_resolution_strategy.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/24_updating_conflict_resolution_strategy.mdx index 28cd22097fc..9c451f18577 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/24_updating_conflict_resolution_strategy.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/24_updating_conflict_resolution_strategy.mdx @@ -4,12 +4,11 @@ title: "Updating the Conflict Resolution Strategy (updateconfresolutionstrategy) - **For MMR only:** The `updateconfresolutionstrategy` command changes the conflict resolution strategy or standby conflict resolution strategy of the specified table. Synopsis -``` text +```text -updateconfresolutionstrategy pubname –repsvrfile pubsvrfile -table schema_t.table_name @@ -18,19 +17,10 @@ Synopsis [ -customhandlername customhandler ] ``` -See [Updating the Conflict Resolution Options](../../06_mmr_operation/#update_conflict_resolution_options) for additional information on updating the conflict resolution strategy. - -
      - -
      - -Note - -
      - -The schema name and table or view name that you supply as values for the table parameter are case-sensitive. Unless quoted identifiers were used to build the database objects, Oracle names must be entered using uppercase letters (for example, `EDB.DEPT`), and Advanced Server names must be entered in lowercase letters (for example edb.dept). See [Quoted Identifiers and Default Case Translation](../../10_appendix/04_miscellaneous_xdb_processing_topics/#quoted_identifiers) for additional information on quoted identifiers and case translation. +See [Updating the Conflict Resolution Options](../../06_mmr_operation/08_update_conflict_resolution_options/#update_conflict_resolution_options) for additional information on updating the conflict resolution strategy. -
      +!!! Note + The schema name and table or view name that you supply as values for the table parameter are case-sensitive. Unless quoted identifiers were used to build the database objects, Oracle names must be entered using uppercase letters (for example, `EDB.DEPT`), and Advanced Server names must be entered in lowercase letters (for example edb.dept). See [Quoted Identifiers and Default Case Translation](../../10_appendix/04_miscellaneous_xdb_processing_topics/05_quoted_identifiers/#quoted_identifiers) for additional information on quoted identifiers and case translation. Parameters @@ -44,7 +34,7 @@ Parameters `schema_t` -> The name of the schema containing table\_name. This value is case-sensitive. +> The name of the schema containing table_name. This value is case-sensitive. `table_name` @@ -60,13 +50,13 @@ Parameters `customhandler` -> For the custom handler name option, specify `customhandler` as the function name with an optional schema prefix (that is, formatted as schema.function\_name) as given in the `CREATE FUNCTION` command for the custom conflict handling function. The custom conflict handling function must be added to the primary definition node. See [Adding a Custom Conflict Handling Function](../../06_mmr_operation/06_conflict_resolution/08_custom_conflict_handling/#adding_custom_conflict_handling_function) for an example of adding the custom conflict handling function using PSQL. The custom handler name option must be specified if and only if the conflict resolution option or the standby conflict resolution option is set for custom conflict handling with the C value. +> For the custom handler name option, specify `customhandler` as the function name with an optional schema prefix (that is, formatted as schema.function_name) as given in the `CREATE FUNCTION` command for the custom conflict handling function. The custom conflict handling function must be added to the primary definition node. See [Adding a Custom Conflict Handling Function](../../06_mmr_operation/06_conflict_resolution/08_custom_conflict_handling/02_adding_custom_conflict_handling_function/#adding_custom_conflict_handling_function) for an example of adding the custom conflict handling function using PSQL. The custom handler name option must be specified if and only if the conflict resolution option or the standby conflict resolution option is set for custom conflict handling with the C value. Examples The conflict resolution strategy on Advanced Server table `edb.emp` in publication `emp_pub` is modified to use latest timestamp conflict resolution with a standby strategy of node priority conflict resolution. -``` text +```text $ java -jar edb-repcli.jar -updateconfresolutionstrategy emp_pub \ > -repsvrfile ~/pubsvrfile.prop \ > -table edb.emp \ @@ -78,7 +68,7 @@ The Primary/Standby conflict resolution strategies were updated successfully. Custom conflict handling is set for the `edb.dept` table along with the custom conflict handling function `edb.custom_conflict_dept`. -``` text +```text $ java -jar edb-repcli.jar -updateconfresolutionstrategy emp_pub \ > -repsvrfile ~/pubsvrfile.prop \ > -table edb.dept \ diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/25_set_pdn_node.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/25_set_pdn_node.mdx index 55650d55665..4577e743a0d 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/25_set_pdn_node.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/25_set_pdn_node.mdx @@ -4,17 +4,16 @@ title: "Setting the master definition node (setasmdn)" - **For MMR only:** The `setasmdn` command sets a primary node to the role of master definition node. Synopsis -``` text +```text -setaspdn pubdbid –repsvrfile pubsvrfile ``` -See [Switching the Primary definition node](../../06_mmr_operation/#switching_pdn) for additional information on setting the primary definition node. +See [Switching the Primary definition node](../../06_mmr_operation/10_switching_pdn/#switching_pdn) for additional information on setting the primary definition node. Parameters @@ -30,7 +29,7 @@ Examples The following example sets the primary node with publication database ID 9 as the primary definition node. -``` text +```text $ java -jar edb-repcli.jar -setasPDN 9 -repsvrfile ~/pubsvrfile.prop Updating the database node to be promoted as the new PDN node. The database has been successfully promoted as the new PDN node. diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/26_set_controller.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/26_set_controller.mdx index ec5d0992dc3..74c53435f40 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/26_set_controller.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/26_set_controller.mdx @@ -4,17 +4,16 @@ title: "Setting the Controller (setascontroller)" - The `setascontroller` command sets a publication database to be designated as the controller database. The publication database may be the primary database of a single-master replication system or a primary node of a multi-master replication system. Synopsis -``` text +```text -setascontroller pubdbid –repsvrfile pubsvrfile ``` -See [Switching the Controller Database](../../07_common_operations/#switching_controller_db) for additional information on setting the controller database. +See [Switching the Controller Database](../../07_common_operations/07_switching_controller_db/#switching_controller_db) for additional information on setting the controller database. Parameters @@ -30,7 +29,7 @@ Examples The following example sets the publication database with publication database ID 4 as the controller database. -``` text +```text $ java -jar edb-repcli.jar -setascontroller 4 -repsvrfile ~/pubsvrfile.prop Updating the Publication database to be promoted as the new Controller database... The Publication database has been successfully promoted as the new Controller database. diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/27_validate_a_publication.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/27_validate_a_publication.mdx index e10032ce95a..3fe908540b2 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/27_validate_a_publication.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/27_validate_a_publication.mdx @@ -4,18 +4,17 @@ title: "Validating a Publication (validatepub)" - The `validatepub` command checks if any of the definitions of the tables in the given publication have changed since the publication was created. Synopsis -``` text +```text -validatepub pubname –repsvrfile pubsvrfile -repgrouptype { m | s } ``` -See [Validating a Publication](../../07_common_operations/06_managing_publication/#validating_publication) for additional information on validating publications. +See [Validating a Publication](../../07_common_operations/06_managing_publication/05_validating_publication/#validating_publication) for additional information on validating publications. Parameters @@ -35,7 +34,7 @@ Examples In the following example, publication `dept_emp` is validated. -``` text +```text $ java -jar edb-repcli.jar -validatepub dept_emp \ > -repsvrfile ~/pubsvrfile.prop -repgrouptype s Validating publication dept_emp ... diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/28_validate_all_publications.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/28_validate_all_publications.mdx index 0688980c682..348cffda677 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/28_validate_all_publications.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/28_validate_all_publications.mdx @@ -4,19 +4,18 @@ title: "Validating All Publications (validatepubs)" - The `validatepubs` command checks if any of the definitions of the tables subordinate to the given publication database definition have changed since the publication was created. Synopsis -``` text +```text -validatepubs –repsvrfile pubsvrfile -pubdbid dbid -repgrouptype { m | s } ``` -See [Validating a Publication](../../07_common_operations/06_managing_publication/#validating_publication) for additional information on validating publications. +See [Validating a Publication](../../07_common_operations/06_managing_publication/05_validating_publication/#validating_publication) for additional information on validating publications. Parameters @@ -36,7 +35,7 @@ Examples In the following example, the Oracle publication database definition identified by publication database ID 1 is validated. -``` text +```text $ java -jar edb-repcli.jar -validatepubs \ > -repsvrfile ~/pubsvrfile.prop \ > -pubdbid 1 -repgrouptype s diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/29_removing_a_publication.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/29_removing_a_publication.mdx index 6d43287241c..a12d01e281f 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/29_removing_a_publication.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/29_removing_a_publication.mdx @@ -4,18 +4,17 @@ title: "Removing a Publication (removepub)" - The `removepub` command removes one or more publications. Synopsis -``` text +```text -removepub pubname_1 [ pubname_2 ] ... –repsvrfile pubsvrfile -repgrouptype { m | s } ``` -See [Removing a Publication](../../07_common_operations/06_managing_publication/#removing_pub) for additional information on removing a publication. Parameters +See [Removing a Publication](../../07_common_operations/06_managing_publication/06_removing_pub/#removing_pub) for additional information on removing a publication. Parameters `pubname_n` @@ -31,7 +30,7 @@ See [Removing a Publication](../../07_common_operations/06_managing_publication/ Examples -``` text +```text A publication named dept_emp is removed from a single-master replication system. $ java -jar edb-repcli.jar -removepub dept_emp \ > -repsvrfile ~/pubsvrfile.prop -repgrouptype s diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/30_replicating_ddl_changes_cli.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/30_replicating_ddl_changes_cli.mdx index faad98f40b0..9cae4296e84 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/30_replicating_ddl_changes_cli.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/30_replicating_ddl_changes_cli.mdx @@ -4,12 +4,11 @@ title: "Replicating DDL Changes (replicateddl)" - The `replicateddl` command applies an `ALTER TABLE` statement to a publication table in all databases of a replication system as well as updates the xDB Replication Server insert/update/delete triggers and shadow table associated with that publication table. Synopsis -``` text +```text -replicateddl pubname –repsvrfile pubsvrfile -table schema_t.table_name @@ -44,7 +43,7 @@ Examples The following example shows the addition of a column named title to table `edb.emp`. The `ALTER TABLE` statement is in the text file `addcolumn.sql` as shown by the following: -``` text +```text ALTER TABLE edb.emp ADD COLUMN title VARCHAR(20); The replicateddl command is executed using the addcolumn.sql file to update the triggers and shadow tables on the primary nodes: $ java -jar edb-repcli.jar -replicateddl emp_pub \ diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/31_adding_subscription_db.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/31_adding_subscription_db.mdx index 88c34c0b82d..80cef2dd621 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/31_adding_subscription_db.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/31_adding_subscription_db.mdx @@ -4,12 +4,11 @@ title: "Adding a Subscription Database (addsubdb)" - **For SMR only:** The `addsubdb` command adds a subscription database definition. Synopsis -``` text +```text -addsubdb -repsvrfile subsvrfile -dbtype { oracle | enterprisedb | postgresql | sqlserver } @@ -24,7 +23,7 @@ Synopsis The `addsubdb` command creates a new subscription database definition. The `addsubdb` command displays a unique subscription database ID that is assigned to the newly created subscription database definition. The subscription database ID is used to identify the subscription database definition on which to operate when running other xDB Replication Server CLI commands. -See [Adding a Subscription Database](../../05_smr_operation/03_creating_subscription/#adding_subscription_database) for details on the database connection information that must be supplied when adding a subscription database definition. +See [Adding a Subscription Database](../../05_smr_operation/03_creating_subscription/02_adding_subscription_database/#adding_subscription_database) for details on the database connection information that must be supplied when adding a subscription database definition. Parameters @@ -50,7 +49,7 @@ Parameters `encrypted_pwd` -> The encrypted password of the subscription database user. See [Encrypting Passwords](../../08_xdb_cli/03_xdb_cli_commands/#encrypt_password) for directions on using the encrypt command to generate an encrypted password. +> The encrypted password of the subscription database user. See [Encrypting Passwords](04_encrypt_password/#encrypt_password) for directions on using the encrypt command to generate an encrypted password. `pwdfile` @@ -66,13 +65,13 @@ Parameters `jdbc_url_parameters` -> Extended usage of JDBC URL parameters such as for support of SSL connectivity. (See Preparing Using Secure Sockets Layer (SSL) Connections <using\_ssl\_connections> for information on SSL connectivity to the subscription database.) +> Extended usage of JDBC URL parameters such as for support of SSL connectivity. (See Preparing Using Secure Sockets Layer (SSL) Connections <using_ssl_connections> for information on SSL connectivity to the subscription database.) Examples The following example adds a subscription database definition for an Oracle database. The encrypted password is given on the command line with the `dbpassword` parameter. A subscription database ID of 1 is assigned to the database by the subscription server. -``` text +```text $ java -jar edb-repcli.jar -addsubdb -repsvrfile ~/subsvrfile.prop \ > -dbtype oracle -dbhost 192.168.2.6 -dbport 1521 \ > -dbuser subuser -dbpassword ygJ9AxoJEX854elcVIJPTw== \ @@ -84,7 +83,7 @@ Subscription database added successfully. Subscription Database id:1 The following example adds a subscription database definition for an Advanced Server database. The encrypted password is read from a file named pwdfile with the `dbpassfile` parameter. A subscription database ID of 2 is assigned to the database by the subscription server. -``` text +```text $ java -jar edb-repcli.jar -addsubdb -repsvrfile ~/subsvrfile.prop \ > -dbtype enterprisedb -dbhost 192.168.2.7 -dbport 5444 \ > -dbuser subuser -dbpassfile ~/pwdfile \ diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/32_printing_subscription_db_id.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/32_printing_subscription_db_id.mdx index 34df1238a69..ab8a71635a0 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/32_printing_subscription_db_id.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/32_printing_subscription_db_id.mdx @@ -4,7 +4,6 @@ title: "Printing Subscription Database IDs (printsubdbids)" - **For SMR only:** The `printsubdbids` command prints the subscription database IDs of the subscription database definitions. Synopsis @@ -21,7 +20,7 @@ Examples The following example lists the subscription database IDs of the subscription database definitions. -``` text +```text $ java -jar edb-repcli.jar -printsubdbids -repsvrfile ~/subsvrfile.prop Printing subscription database ids... 1 diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/33_printing_subscription_db_details.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/33_printing_subscription_db_details.mdx index d2f0c2a6920..72b4276b66d 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/33_printing_subscription_db_details.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/33_printing_subscription_db_details.mdx @@ -4,7 +4,6 @@ title: "Printing Subscription Database Details (printsubdbidsdetails)" - **For SMR only:** The `printsubdbidsdetails` command prints the connection information for each subscription database definition. Synopsis @@ -15,17 +14,8 @@ The output has the following components: `dbid:host:port:dbname:user` -
      - -
      - -Note - -
      - -The database user’s password is not displayed. - -
      +!!! Note + The database user’s password is not displayed. Parameters @@ -57,7 +47,7 @@ Examples The following are the subscription database definitions subordinate to the subscription server identified by the content of file `subsvrfile.prop`. -``` text +```text $ java -jar edb-repcli.jar -printsubdbidsdetails \ > -repsvrfile ~/subsvrfile.prop Printing subscription database ids with details... diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/34_updating_subscription_database_cli.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/34_updating_subscription_database_cli.mdx index 2b125c33ecc..a21fd6f5588 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/34_updating_subscription_database_cli.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/34_updating_subscription_database_cli.mdx @@ -4,12 +4,11 @@ title: "Updating a Subscription Database (updatesubdb)" - **For SMR only:** The `updatesubdb` command provides the ability to change the connection information for an existing subscription database definition identified by its subscription database ID. Synopsis -``` text +```text -updatesubdb -repsvrfile subsvrfile -subdbid dbid @@ -24,7 +23,7 @@ Synopsis The subscription database definition to be updated is identified by the subdbid parameter. -See [Adding a Subscription Database](../../05_smr_operation/03_creating_subscription/#adding_subscription_database) for details on the database connection information that must be supplied for a subscription database definition. +See [Adding a Subscription Database](../../05_smr_operation/03_creating_subscription/02_adding_subscription_database/#adding_subscription_database) for details on the database connection information that must be supplied for a subscription database definition. Parameters @@ -50,7 +49,7 @@ Parameters `encrypted_pwd` -> The password of the database user in encrypted form. See [Encrypting Passwords](../../08_xdb_cli/03_xdb_cli_commands/#encrypt_password) for directions on using the encrypt command to generate an encrypted password. +> The password of the database user in encrypted form. See [Encrypting Passwords](04_encrypt_password/#encrypt_password) for directions on using the encrypt command to generate an encrypted password. `pwdfile` @@ -66,13 +65,13 @@ Parameters `jdbc_url_parameters` -> Extended usage of JDBC URL parameters such as for support of SSL connectivity. (See Preparing Using Secure Sockets Layer (SSL) Connections <using\_ssl\_connections> for information on SSL connectivity to the subscription database.) Specification of the `urloptions` parameter completely replaces any existing JDBC URL parameters that may have previously been specified with this database. Omission of the `urloptions` parameter deletes any existing JDBC URL parameters that may have previously been specified with this database. +> Extended usage of JDBC URL parameters such as for support of SSL connectivity. (See Preparing Using Secure Sockets Layer (SSL) Connections <using_ssl_connections> for information on SSL connectivity to the subscription database.) Specification of the `urloptions` parameter completely replaces any existing JDBC URL parameters that may have previously been specified with this database. Omission of the `urloptions` parameter deletes any existing JDBC URL parameters that may have previously been specified with this database. Examples In the following example, an existing subscription database definition with subscription database ID 2 is updated. -``` text +```text $ java -jar edb-repcli.jar -updatesubdb -repsvrfile ~/subsvrfile.prop \ > -subdbid 2 \ > -dbhost 192.168.2.7 -dbport 5444 \ diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/35_removing_subscription_database_cli.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/35_removing_subscription_database_cli.mdx index 34aa76221ca..73760917d16 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/35_removing_subscription_database_cli.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/35_removing_subscription_database_cli.mdx @@ -4,7 +4,6 @@ title: "Removing a Subscription Database (removesubdb)" - **For SMR only:** The `removesubdb` command removes a subscription database definition. Synopsis @@ -13,7 +12,7 @@ Synopsis The subscription database definition to be removed is identified by the `subdbid` parameter. -See [Removing a Subscription Database](../../05_smr_operation/05_managing_subscription/#removing_subscription_database) for additional information on removing a subscription database. +See [Removing a Subscription Database](../../05_smr_operation/05_managing_subscription/06_removing_subscription_database/#removing_subscription_database) for additional information on removing a subscription database. Parameters @@ -29,7 +28,7 @@ Examples The subscription database definition identified by subscription database ID 2 is removed. -``` text +```text $ java -jar edb-repcli.jar -removesubdb -repsvrfile ~/subsvrfile.prop \ > -subdbid 2 Removing Subscription Database... diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/36_creating_subscription_cli.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/36_creating_subscription_cli.mdx index 3144a887e50..cad769539d3 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/36_creating_subscription_cli.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/36_creating_subscription_cli.mdx @@ -4,12 +4,11 @@ title: "Creating a Subscription (createsub)" - **For SMR only:** The `createsub` command creates a new subscription. Synopsis -``` text +```text -createsub subname -subsvrfile subsvrfile -subdbid dbid @@ -20,7 +19,7 @@ Synopsis The `createsub` command adds a new subscription subordinate to the subscription database definition with the subscription database ID given by parameter `subdbid.` -See [Adding a Subscription](../../05_smr_operation/03_creating_subscription/#adding_subscription) for additional information on creating a subscription. +See [Adding a Subscription](../../05_smr_operation/03_creating_subscription/03_adding_subscription/#adding_subscription) for additional information on creating a subscription. Parameters @@ -46,13 +45,13 @@ Parameters `filterid_n` -> Comma-separated list of filter IDs identifying the filter rules from the set of available table filters to enable on the corresponding tables in the new subscription. Use the `printpubfilterslist` command to obtain the filter IDs for the available filter rules in the publication (see [Printing a List of Filters in a Publication](../../08_xdb_cli/03_xdb_cli_commands/#print_publications_filters_list)). Note: There must be no white space between the comma and filter IDs. +> Comma-separated list of filter IDs identifying the filter rules from the set of available table filters to enable on the corresponding tables in the new subscription. Use the `printpubfilterslist` command to obtain the filter IDs for the available filter rules in the publication (see [Printing a List of Filters in a Publication](17_print_publications_filters_list/#print_publications_filters_list)). Note: There must be no white space between the comma and filter IDs. Examples In the following example, a subscription named `dept_emp_sub` is created in the Advanced Server subscription database identified by subscription database ID 2. The subscription is associated with a publication named `dept_emp`. -``` text +```text $ java -jar edb-repcli.jar -createsub dept_emp_sub \ > -subsvrfile ~/subsvrfile.prop \ > -subdbid 2 \ diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/37_print_subscription_list.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/37_print_subscription_list.mdx index 603d7bba821..847a9fc05bb 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/37_print_subscription_list.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/37_print_subscription_list.mdx @@ -4,7 +4,6 @@ title: "Printing a Subscription List (printsublist)" - **For SMR only:** The `printsublist` command prints a list of subscription names. Synopsis @@ -23,7 +22,7 @@ Parameters Examples -``` text +```text $ java -jar edb-repcli.jar -printsublist -repsvrfile ~/subsvrfile.prop \ > -subdbid 2 Printing subscriptions ... diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/38_enable_filters_on_subscription_or_non_pdn_node.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/38_enable_filters_on_subscription_or_non_pdn_node.mdx index 4ca8d80af62..6f89b916e7a 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/38_enable_filters_on_subscription_or_non_pdn_node.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/38_enable_filters_on_subscription_or_non_pdn_node.mdx @@ -4,14 +4,13 @@ title: "Enabling Filters on a Subscription or Non-PDN Node (enablefilter)" - The `enablefilter` command enables one or more filter rules on a single-master replication system subscription or on a multi-master replication system primary node other than the primary definition node. The `enablefilter` command is used when it is desired to apply a filter rule to a subscription or a non-pdn node, but the filter rule did not yet exist or it was neglected to be included with the subscription or the non-pdn node when these components were initially created. Synopsis -``` text +```text -enablefilter -repsvrfile pubsvrfile { -subname subname | -dbid dbid } @@ -20,27 +19,27 @@ Synopsis Enabling a filter rule applies it to the specified, target subscription or non-pdn node, and thus filters the data during replication from the source table to the target table. -See [Table Filters](../../02_overview/02_replication_concepts_and_definitions/#table_filters) for additional information on table filters. +See [Table Filters](../../02_overview/02_replication_concepts_and_definitions/13_table_filters/#table_filters) for additional information on table filters. Before enabling a filter rule, it must have been defined in the source publication in one of several possible ways: **For SMR:** -- The table filter was defined in the publication of the primary database when it was initially created either by the createpub command (see [Creating a Publication](../../08_xdb_cli/03_xdb_cli_commands/#creating_publication_cli)) or by the xDB Replication Console (see [Adding a Publication](../../05_smr_operation/02_creating_publication/#adding_publication)). -- The table filter was added to an existing publication using the addfilter command (see [Adding Table Filters to a Publication](../../08_xdb_cli/03_xdb_cli_commands/#adding_tablefilters_to_publication)) or by the xDB Replication Console (see [Updating the Set of Available Table Filters in a Publication](../../07_common_operations/06_managing_publication/#updating_table_filters_in_pub)). +- The table filter was defined in the publication of the primary database when it was initially created either by the createpub command (see [Creating a Publication](14_creating_publication_cli/#creating_publication_cli)) or by the xDB Replication Console (see [Adding a Publication](../../05_smr_operation/02_creating_publication/03_adding_publication/#adding_publication)). +- The table filter was added to an existing publication using the addfilter command (see [Adding Table Filters to a Publication](20_adding_tablefilters_to_publication/#adding_tablefilters_to_publication)) or by the xDB Replication Console (see [Updating the Set of Available Table Filters in a Publication](../../07_common_operations/06_managing_publication/04_updating_table_filters_in_pub/#updating_table_filters_in_pub)). **For MMR:** -- The table filter was defined in the publication of the primary definition node when it was initially created either by the createpub command (see [Creating a Publication](../../08_xdb_cli/03_xdb_cli_commands/#creating_publication_cli)) or by the xDB Replication Console (see [Adding a Publication](../../06_mmr_operation/#add_pub_mmr)). -- The table filter was added to an existing publication using the addfilter command (see [Adding Table Filters to a Publication](../../08_xdb_cli/03_xdb_cli_commands/#adding_tablefilters_to_publication)) or by the xDB Replication Console (see [Updating the Set of Available Table Filters in a Publication](../../07_common_operations/06_managing_publication/#updating_table_filters_in_pub)). +- The table filter was defined in the publication of the primary definition node when it was initially created either by the createpub command (see [Creating a Publication](14_creating_publication_cli/#creating_publication_cli)) or by the xDB Replication Console (see [Adding a Publication](../../06_mmr_operation/02_creating_publication_mmr/#add_pub_mmr)). +- The table filter was added to an existing publication using the addfilter command (see [Adding Table Filters to a Publication](20_adding_tablefilters_to_publication/#adding_tablefilters_to_publication)) or by the xDB Replication Console (see [Updating the Set of Available Table Filters in a Publication](../../07_common_operations/06_managing_publication/04_updating_table_filters_in_pub/#updating_table_filters_in_pub)). Enable the filter rule as follows: -**For SMR:** Use the `enablefilter` command or the xDB Replication Console (see Enabling/Disabling Table Filters on a Subscription <enable\_filters\_on\_subscription>). +**For SMR:** Use the `enablefilter` command or the xDB Replication Console (see Enabling/Disabling Table Filters on a Subscription <enable_filters_on_subscription>). -**For MMR:** Use the `enablefilter` command or the xDB Replication Console (see Enabling/Disabling Table Filters on a Primary node <enable\_disable\_table\_filters>). +**For MMR:** Use the `enablefilter` command or the xDB Replication Console (see Enabling/Disabling Table Filters on a Primary node <enable_disable_table_filters>). -Once a filter rule has been enabled, it filters the data during replication from the source table to the target table. A filter rule can subsequently be disabled so that it no longer filters the data during replication to the target table (see [Disabling Filters on a Subscription or Non-PDN Node](../../08_xdb_cli/03_xdb_cli_commands/#disable_filters_on_subscription_or_non_pdn_node)). +Once a filter rule has been enabled, it filters the data during replication from the source table to the target table. A filter rule can subsequently be disabled so that it no longer filters the data during replication to the target table (see [Disabling Filters on a Subscription or Non-PDN Node](39_disable_filters_on_subscription_or_non_pdn_node/#disable_filters_on_subscription_or_non_pdn_node)). Parameters @@ -58,13 +57,13 @@ Parameters `filterid_n` -> One or more filter IDs separated by space characters identifying the filter rules from the set of available table filters to enable on the corresponding tables in the SMR subscription specified by subname or in the MMR non-PDN node specified by `dbid`. Use the `printpubfilterslist` command to obtain the filter IDs for the available filter rules in the publication (see [Printing a List of Filters in a Publication](../../08_xdb_cli/03_xdb_cli_commands/#print_publications_filters_list)). +> One or more filter IDs separated by space characters identifying the filter rules from the set of available table filters to enable on the corresponding tables in the SMR subscription specified by subname or in the MMR non-PDN node specified by `dbid`. Use the `printpubfilterslist` command to obtain the filter IDs for the available filter rules in the publication (see [Printing a List of Filters in a Publication](17_print_publications_filters_list/#print_publications_filters_list)). Examples In the following example, a filter rule is enabled on a subscription of a single-master replication system. -``` text +```text $ java -jar edb-repcli.jar -enablefilter -repsvrfile ~/pubsvrfile.prop \ > -subname analysts_managers_sub \ > -filterids 47 @@ -74,7 +73,7 @@ Filter rule(s) updated successfully. In the following example, multiple filter rules are enabled on a primary node that is not the primary definition node of a multi-master replication system. -``` text +```text $ java -jar edb-repcli.jar -enablefilter -repsvrfile ~/pubsvrfile.prop \ > -dbid 139 \ > -filterids 8 16 diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/39_disable_filters_on_subscription_or_non_pdn_node.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/39_disable_filters_on_subscription_or_non_pdn_node.mdx index a5b2287daaf..b0b67543c94 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/39_disable_filters_on_subscription_or_non_pdn_node.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/39_disable_filters_on_subscription_or_non_pdn_node.mdx @@ -4,12 +4,11 @@ title: "Disabling Filters on a Subscription or Non-MDN Node (disablefilter)" - The `disablefilter` command disables one or more filter rules on a single-master replication system subscription or on a multi-master replication system primary node other than the primary definition node. Synopsis -``` text +```text -disablefilter -repsvrfile pubsvrfile { -subname subname | -dbid dbid } @@ -18,17 +17,17 @@ Synopsis Disabling a filter rule prevents it from being applied to the specified, target subscription or non-mdn node, and thus does not filter the data during replication from the source table to the target table. -See [Table Filters](../../02_overview/02_replication_concepts_and_definitions/#table_filters) for additional information on table filters. +See [Table Filters](../../02_overview/02_replication_concepts_and_definitions/13_table_filters/#table_filters) for additional information on table filters. Disable the filter rule as follows: -**For SMR:** Use the `disablefilter` command or the xDB Replication Console (see Enabling/Disabling Table Filters on a Subscription <enable\_filters\_on\_subscription>). +**For SMR:** Use the `disablefilter` command or the xDB Replication Console (see Enabling/Disabling Table Filters on a Subscription <enable_filters_on_subscription>). -**For MMR:** Use the disablefilter command or the xDB Replication Console. (see Enabling/Disabling Table Filters on a Primary node <enable\_disable\_table\_filters>). +**For MMR:** Use the disablefilter command or the xDB Replication Console. (see Enabling/Disabling Table Filters on a Primary node <enable_disable_table_filters>). Disabling a filter rule does not remove its definition from the publication. Thus, the filter rule still exists and can still be enabled on target subscriptions or non-PDN nodes. -To remove a filter rule so that it no longer exists, perform the following: For either SMR or MMR: Use the `removefilter` command (see [Removing a Table Filter from a Publication](../../08_xdb_cli/03_xdb_cli_commands/#removing_tablefilters_to_publication)) or the xDB Replication Console (see [Updating the Set of Available Table Filters in a Publication](../../07_common_operations/06_managing_publication/#updating_table_filters_in_pub)). +To remove a filter rule so that it no longer exists, perform the following: For either SMR or MMR: Use the `removefilter` command (see [Removing a Table Filter from a Publication](22_removing_tablefilters_to_publication/#removing_tablefilters_to_publication)) or the xDB Replication Console (see [Updating the Set of Available Table Filters in a Publication](../../07_common_operations/06_managing_publication/04_updating_table_filters_in_pub/#updating_table_filters_in_pub)). Parameters @@ -52,7 +51,7 @@ Examples In the following example, a filter rule is disabled on a subscription of a single-master replication system. -``` text +```text $ java -jar edb-repcli.jar -disablefilter -repsvrfile ~/pubsvrfile.prop \ > -subname analysts_managers_sub \ > -filterids 47 @@ -62,7 +61,7 @@ Filter rule(s) updated successfully. In the following example, multiple filter rules are disabled on a primary node that is not the primary definition node of a multi-master replication system. -``` text +```text $ java -jar edb-repcli.jar -disablefilter -repsvrfile ~/pubsvrfile.prop \ > -dbid 139 \ > -filterids 8 16 diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/40_taking_smr_snapshot.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/40_taking_smr_snapshot.mdx index 7ad99439a6d..25509481bfc 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/40_taking_smr_snapshot.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/40_taking_smr_snapshot.mdx @@ -4,17 +4,16 @@ title: "Taking a Single-Master Snapshot (dosnapshot)" - **For SMR only:** The `dosnapshot` command performs snapshot synchronization on the specified subscription in a single-master replication system. Synopsis -``` text +```text -dosnapshot subname -repsvrfile subsvrfile [ -verboseSnapshotOutput { true | false } ] ``` -See [Performing Snapshot Replication](../../06_mmr_operation/#perform_snapshot_replication_mmr) for additional information on performing snapshot replication. +See [Performing Snapshot Replication](../../06_mmr_operation/05_on_demand_replication_mmr/#perform_snapshot_replication_mmr) for additional information on performing snapshot replication. Parameters @@ -34,7 +33,7 @@ Examples In the following example snapshot replication is performed on subscription `dept_emp_sub`. -``` text +```text $ java -jar edb-repcli.jar -dosnapshot dept_emp_sub \ > -repsvrfile ~/subsvrfile.prop Performing snapshot... diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/41_taking_mmr_snapshot.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/41_taking_mmr_snapshot.mdx index b98828122ee..679d3b5564f 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/41_taking_mmr_snapshot.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/41_taking_mmr_snapshot.mdx @@ -4,10 +4,9 @@ title: "Take a Multi-Master Snapshot (doMMRsnapshot)" - **For MMR only:** The `doMMRsnapshot` command performs snapshot synchronization on the specified primary node in a multi-master replication system. -``` text +```text -doMMRsnapshot pubname –repsvrfile pubsvrfile -pubhostdbid dbid @@ -36,7 +35,7 @@ Examples In the following example snapshot replication is performed on publication `emp_pub` to the target primary node identified by publication database ID 9. -``` text +```text $ java -jar edb-repcli.jar -doMMRsnapshot emp_pub \ > -pubhostdbid 9 \ > -repsvrfile ~/pubsvrfile.prop diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/42_perform_synchronization.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/42_perform_synchronization.mdx index b3920f29a22..04613529098 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/42_perform_synchronization.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/42_perform_synchronization.mdx @@ -4,12 +4,11 @@ title: "Performing a Synchronization (dosynchronize)" - The `dosynchronize` command performs synchronization replication on the specified subscription for a single-master replication system, or for an entire multi-master replication system. Synopsis -``` text +```text -dosynchronize { subname | pubname } -repsvrfile { subsvrfile | pubsvrfile } [ -repgrouptype { s | m } ] @@ -21,31 +20,13 @@ For a single-master replication system use: `-dosynchronize pubname -repsvrfile pubsvrfile -repgrouptype m` -
      - -
      - -Note - -
      - -(For SMR only): The `dosynchronize` command can be used on a subscription without first having to perform a snapshot using the `dosnapshot` command. The `dosynchronize` command automatically performs the first required snapshot. - -
      - -
      - -
      - -Note - -
      - -(For MMR only): Be sure an initial snapshot replication has been performed from the primary definition node to every other primary node in the multi-master replication system. If a newly added primary node did not undergo an initial snapshot, any subsequent synchronization replication may fail to apply the transactions to that primary node. The initial snapshot could be taken when the primary node is first added (see [Creating Additional Primary nodes](../../06_mmr_operation/#creating_primary_nodes) or Section [Adding a Publication Database](../../08_xdb_cli/03_xdb_cli_commands/#add_pub_database) ) or by performing an on demand snapshot (see [Performing Snapshot Replication](../../06_mmr_operation/#perform_snapshot_replication_mmr) or Section [Take a Multi-Master Snapshot](../../08_xdb_cli/03_xdb_cli_commands/#taking_mmr_snapshot)). +!!! Note + (For SMR only): The `dosynchronize` command can be used on a subscription without first having to perform a snapshot using the `dosnapshot` command. The `dosynchronize` command automatically performs the first required snapshot. -
      +!!! Note + (For MMR only): Be sure an initial snapshot replication has been performed from the primary definition node to every other primary node in the multi-master replication system. If a newly added primary node did not undergo an initial snapshot, any subsequent synchronization replication may fail to apply the transactions to that primary node. The initial snapshot could be taken when the primary node is first added (see [Creating Additional Primary nodes](../../06_mmr_operation/03_creating_primary_nodes/#creating_primary_nodes) or Section [Adding a Publication Database](06_add_pub_database/#add_pub_database) ) or by performing an on demand snapshot (see [Performing Snapshot Replication](../../06_mmr_operation/05_on_demand_replication_mmr/#perform_snapshot_replication_mmr) or Section [Take a Multi-Master Snapshot](41_taking_mmr_snapshot/#taking_mmr_snapshot)). -See [Performing Synchronization Replication](##perform_sync_replication) for additional information on performing synchronization replication for a single-master replication system. See [Performing Synchronization Replication](##perform_sync_replication) for a multi-master replication system. +See [Performing Synchronization Replication](../../05_smr_operation/04_on_demand_replication/02_perform_sync_replication/#perform_sync_replication) for additional information on performing synchronization replication for a single-master replication system. See [Performing Synchronization Replication](../../05_smr_operation/04_on_demand_replication/02_perform_sync_replication/#perform_sync_replication) for a multi-master replication system. Parameters @@ -73,7 +54,7 @@ Examples In the following example, synchronization replication is performed on subscription `dept_emp_sub` of a single-master replication system. -``` text +```text $ java -jar edb-repcli.jar -dosynchronize dept_emp_sub \ > -repsvrfile ~/subsvrfile.prop Performing synchronize... diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/43_configure_smr_schedule.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/43_configure_smr_schedule.mdx index 849340081e4..d9e49b00393 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/43_configure_smr_schedule.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/43_configure_smr_schedule.mdx @@ -4,12 +4,11 @@ title: "Configuring a Single-Master Schedule (confschedule)" - **For SMR only:** The `confschedule` command creates a schedule as to when recurring replications are to be initiated for a single-master replication system. Synopsis -``` text +```text -confschedule subname –repsvrfile subsvrfile { -remove | -jobtype { s | t } { -realtime no_of_sec | @@ -23,7 +22,7 @@ Synopsis If the remove parameter is specified, then the schedule is deleted from the subscription. No other parameters other than `subname` and `repsvrfile` can be specified in this case. -If the remove parameter is omitted, then the `jobtype` parameter and one of parameters `realtime, daily, weekly, monthly`, or `cronexpr` must be specified along with the `subname` and `repsvrfile` parameters. If there is an existing schedule for subscription `subname`, it will be replaced by the new schedule. See [Performing Synchronization Replication](../../05_smr_operation/04_on_demand_replication/#perform_sync_replication) for additional information on creating a schedule. +If the remove parameter is omitted, then the `jobtype` parameter and one of parameters `realtime, daily, weekly, monthly`, or `cronexpr` must be specified along with the `subname` and `repsvrfile` parameters. If there is an existing schedule for subscription `subname`, it will be replaced by the new schedule. See [Performing Synchronization Replication](../../05_smr_operation/04_on_demand_replication/02_perform_sync_replication/#perform_sync_replication) for additional information on creating a schedule. Parameters @@ -69,13 +68,13 @@ Parameters `cron_expression` -> A cron expression. See appendix Section [Writing a Cron Expression](../../10_appendix/04_miscellaneous_xdb_processing_topics/#writing_cron_exp) for information on writing a cron expression. +> A cron expression. See appendix Section [Writing a Cron Expression](../../10_appendix/04_miscellaneous_xdb_processing_topics/03_writing_cron_exp/#writing_cron_exp) for information on writing a cron expression. Examples In the following example, a schedule is created to perform synchronization replication on subscription `dept_emp_sub` once every 5 minutes. -``` text +```text $ java -jar edb-repcli.jar -confschedule dept_emp_sub \ > -repsvrfile ~/subsvrfile.prop \ > -jobtype t \ @@ -86,7 +85,7 @@ Job is successfully scheduled. In the following example, the schedule is removed from subscription `dept_emp_sub.` -``` text +```text $ java -jar edb-repcli.jar -confschedule dept_emp_sub \ > -repsvrfile ~/subsvrfile.prop \ > -remove diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/44_configure_mmr_schedule.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/44_configure_mmr_schedule.mdx index 8bd0f1112e8..2d4ccc8db2a 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/44_configure_mmr_schedule.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/44_configure_mmr_schedule.mdx @@ -4,24 +4,14 @@ title: "Configuring a Multi-Master Schedule (confschedulemmr)" - **For MMR only:** The `confschedulemmr` command creates a schedule as to when recurring replications are to be initiated for a multi-master replication system. -
      - -
      - -Note - -
      - -Be sure an initial snapshot replication has been performed from the primary definition node to every other primary node in the multi-master replication system. If a newly added primary node did not undergo an initial snapshot, any subsequent synchronization replication initiated by a schedule may fail to apply the transactions to that primary node. The initial snapshot could be taken when the primary node is first added (see [Creating Additional Primary nodes](../../06_mmr_operation/#creating_primary_nodes) or Section [Adding a Publication Database](../../08_xdb_cli/03_xdb_cli_commands/#add_pub_database)) or by performing an on demand snapshot (see [Performing Snapshot Replication](../../06_mmr_operation/#perform_snapshot_replication_mmr) or Section [Take a Multi-Master Snapshot](../../08_xdb_cli/03_xdb_cli_commands/#taking_mmr_snapshot)). - -
      +!!! Note + Be sure an initial snapshot replication has been performed from the primary definition node to every other primary node in the multi-master replication system. If a newly added primary node did not undergo an initial snapshot, any subsequent synchronization replication initiated by a schedule may fail to apply the transactions to that primary node. The initial snapshot could be taken when the primary node is first added (see [Creating Additional Primary nodes](../../06_mmr_operation/03_creating_primary_nodes/#creating_primary_nodes) or Section [Adding a Publication Database](06_add_pub_database/#add_pub_database)) or by performing an on demand snapshot (see [Performing Snapshot Replication](../../06_mmr_operation/05_on_demand_replication_mmr/#perform_snapshot_replication_mmr) or Section [Take a Multi-Master Snapshot](41_taking_mmr_snapshot/#taking_mmr_snapshot)). Synopsis -``` text +```text -confschedulemmr pubdbid -pubname pubname –repsvrfile pubsvrfile { -remove | @@ -38,7 +28,7 @@ If the remove parameter is specified, then the schedule is deleted from the publ If the remove parameter is omitted, then one of parameters `realtime, daily, weekly, monthly,` or `cronexpr` must be specified along with the `pubdbid, pubname,` and `repsvrfile` parameters. If there is an existing schedule for publication `pubname`, it will be replaced by the new schedule. -See [Creating a Schedule](../../07_common_operations/#creating_schedule) for additional information on creating a schedule. +See [Creating a Schedule](../../07_common_operations/02_creating_schedule/#creating_schedule) for additional information on creating a schedule. Parameters @@ -84,13 +74,13 @@ Parameters `cron_expression` -> A cron expression. See appendix [Writing a Cron Expression](../../10_appendix/04_miscellaneous_xdb_processing_topics/#writing_cron_exp) for information on writing a cron expression. +> A cron expression. See appendix [Writing a Cron Expression](../../10_appendix/04_miscellaneous_xdb_processing_topics/03_writing_cron_exp/#writing_cron_exp) for information on writing a cron expression. Examples In the following example, a schedule is created to perform synchronization replication on publication `emp_pub` subordinate to the primary definition node whose publication database ID is 6. Replication is to occur daily at 8:00 AM. -``` text +```text $ java -jar edb-repcli.jar -confscheduleMMR 6 -pubname emp_pub \ > -repsvrfile ~/pubsvrfile.prop \ > -daily 8 00 diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/45_print_schedule.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/45_print_schedule.mdx index dbc4214484c..461a5997d34 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/45_print_schedule.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/45_print_schedule.mdx @@ -4,12 +4,11 @@ title: "Print Schedule (printschedule)" - The `printschedule` command prints a recurring replication schedule. Synopsis -``` text +```text -printschedule { subname | pubname } -repsvrfile { subsvrfile | pubsvrfile } [ -repgrouptype { s | m } ] @@ -47,7 +46,7 @@ Examples In the following example the schedule is printed for a subscription in a single-master replication system. -``` text +```text $ java -jar edb-repcli.jar -printschedule dept_emp_sub \ > -repsvrfile ~/subsvrfile.prop Printing subscription schedule ... diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/46_updating_subscription_cli.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/46_updating_subscription_cli.mdx index a0af61eb564..7abe80433bd 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/46_updating_subscription_cli.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/46_updating_subscription_cli.mdx @@ -4,12 +4,11 @@ title: "Updating a Subscription (updatesub)" - **For SMR only:** The `updatesub` command allows you to update certain metadata of a given subscription. This metadata allows the subscription server to find the host running the publication server that manages the publication associated with the subscription. Synopsis -``` text +```text -updatesub subname -subsvrfile subsvrfile -pubsvrfile pubsvrfile @@ -25,7 +24,7 @@ You would use the `updatesub` command in the scenario where you have built your You use the host and port parameters of the `updatesub` command to supply the new network address identifying the publication server. -See [Updating a Subscription](../../05_smr_operation/05_managing_subscription/#updating_subscription) for additional information on updating a subscription. +See [Updating a Subscription](../../05_smr_operation/05_managing_subscription/03_updating_subscription/#updating_subscription) for additional information on updating a subscription. Parameters @@ -53,7 +52,7 @@ Examples If the publication server host IP address has been changed to 192.168.2.7, then make sure the publication server login information in file `pubsvrfile.prop` contains the new IP address as shown by the following: -``` text +```text host=192.168.2.7 port=9051 user=enterprisedb @@ -63,7 +62,7 @@ password=ygJ9AxoJEX854elcVIJPTw== To update the metadata for subscription `dept_emp_sub` so that its subscription server can find the new publication server host, run the following command: -``` text +```text $ java -jar edb-repcli.jar -updatesub dept_emp_sub \ > -subsvrfile ~/subsvrfile.prop \ > -pubsvrfile ~/pubsvrfile.prop \ diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/47_removing_subscription_cli.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/47_removing_subscription_cli.mdx index c72692ba265..27de7e8c693 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/47_removing_subscription_cli.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/47_removing_subscription_cli.mdx @@ -4,14 +4,13 @@ title: "Removing a Subscription (removesub)" - **For SMR only:** The `removesub` command removes a subscription. Synopsis `-removesub subname –repsvrfile subsvrfile` -See [Removing a Subscription](../../05_smr_operation/05_managing_subscription/#removing_subscription) for additional information on removing a subscription. +See [Removing a Subscription](../../05_smr_operation/05_managing_subscription/05_removing_subscription/#removing_subscription) for additional information on removing a subscription. Parameters @@ -25,7 +24,7 @@ Parameters Examples -``` text +```text A subscription named dept_emp_sub is removed. $ java -jar edb-repcli.jar -removesub dept_emp_sub \ > -repsvrfile ~/subsvrfile.prop diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/48_schedule_shadow_table_history_clean.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/48_schedule_shadow_table_history_clean.mdx index 85108c6f803..e36544ee76a 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/48_schedule_shadow_table_history_clean.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/48_schedule_shadow_table_history_clean.mdx @@ -4,12 +4,11 @@ title: "Scheduling Shadow Table History Cleanup (confcleanupjob)" - The `confcleanupjob` command creates a schedule as to when shadow table history is to be deleted. Synopsis -``` text +```text -confcleanupjob pubdbid –repsvrfile pubsvrfile { -disable | -enable { -minutely no_of_minutes | @@ -23,7 +22,7 @@ Synopsis If the disable parameter is specified, then the schedule is deleted. No other parameters other than `pubdbid` and `pubsvrfile` can be specified in this case. If the disable parameter is omitted, then the enable parameter and one of parameters `minutely, hourly, daily, weekly,` or `cronexpr` must be specified along with the `pubdbid` and `pubsvrfile` parameters. -See [Scheduling Shadow Table History Cleanup](../../07_common_operations/#schedule_shadow_table_history_cleanup) for additional information on creating a schedule for shadow table history cleanup. +See [Scheduling Shadow Table History Cleanup](../../07_common_operations/05_managing_history/#schedule_shadow_table_history_cleanup) for additional information on creating a schedule for shadow table history cleanup. Parameters @@ -61,13 +60,13 @@ Parameters `cron_expression` -> A cron expression. See appendix [Writing a Cron Expression](../../10_appendix/04_miscellaneous_xdb_processing_topics/#writing_cron_exp) for information on writing a cron expression. +> A cron expression. See appendix [Writing a Cron Expression](../../10_appendix/04_miscellaneous_xdb_processing_topics/03_writing_cron_exp/#writing_cron_exp) for information on writing a cron expression. Examples In the following example shadow table history cleanup is scheduled to run once every 3 hours on the shadow tables created within the publication database definition identified by publication database ID 1. -``` text +```text $ java -jar edb-repcli.jar -confcleanupjob 1 \ > -repsvrfile ~/pubsvrfile.prop \ > -enable -hourly 3 @@ -77,7 +76,7 @@ Cleanup job configured. In the following example shadow table history cleanup is scheduled to run once a day at 6:00 PM on the shadow tables created within the publication database definition identified by publication database ID 1. -``` text +```text $ java -jar edb-repcli.jar -confcleanupjob 1 \ > -repsvrfile ~/pubsvrfile.prop \ > -enable -daily 18 @@ -87,7 +86,7 @@ Cleanup job configured. In the following example shadow table history cleanup is scheduled to run every Wednesday at 8:00 AM on the shadow tables created within the publication database definition identified by publication database ID 1. -``` text +```text $ java -jar edb-repcli.jar -confcleanupjob 1 \ > -repsvrfile ~/pubsvrfile.prop \ > -enable –weekly WEDNESDAY 8 @@ -97,7 +96,7 @@ Cleanup job configured. In the following example the shadow table history cleanup job is disabled on the publication database definition identified by publication database ID 1. -``` text +```text $ java -jar edb-repcli.jar -confcleanupjob 1 \ > -repsvrfile ~/pubsvrfile.prop -disable Configuring cleanup job ... diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/49_clean_shadow_table_history.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/49_clean_shadow_table_history.mdx index 997b6251888..a112a7164a8 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/49_clean_shadow_table_history.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/49_clean_shadow_table_history.mdx @@ -4,18 +4,17 @@ title: "Cleaning Up Shadow Table History (cleanshadowhistforpub)" - The `cleanshadowhistforpub` command deletes the shadow table history for the specified publication. Synopsis -``` text +```text -cleanshadowhistforpub pubname –repsvrfile pubsvrfile [ -MMRdbid dbid_1[,dbid_2 ] ...] ``` -See [Cleaning Up Shadow Table History](../../08_xdb_cli/03_xdb_cli_commands/#clean_shadow_table_history) for additional information on cleaning up shadow table history. +See [Cleaning Up Shadow Table History](#clean_shadow_table_history) for additional information on cleaning up shadow table history. Parameters @@ -31,23 +30,14 @@ Parameters > **For MMR only:** The publication database ID of the primary node for which the shadow table history is to be deleted. This parameter is required for a multi-master replication system specifying one or more comma-separated, publication database IDs. -
      - -
      - -Note - -
      - -There must be no white space between the comma and publication database IDs. - -
      +!!! Note + There must be no white space between the comma and publication database IDs. Examples In the following example shadow table history is deleted for publication `dept_emp`. -``` text +```text $ java -jar edb-repcli.jar -cleanshadowhistforpub dept_emp \ > -repsvrfile ~/pubsvrfile.prop Removing shadow table's transaction history ... diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/50_clean_replication_history.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/50_clean_replication_history.mdx index 279c35bd935..1333312718b 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/50_clean_replication_history.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/50_clean_replication_history.mdx @@ -4,14 +4,13 @@ title: "Cleaning Up Replication History (cleanrephistoryforpub)" - The `cleanrephistoryforpub` command deletes the replication history for the specified publication. Synopsis `-cleanrephistoryforpub pubname –repsvrfile pubsvrfile` -See [Cleaning Up Replication History](../../07_common_operations/#clean_up_replication_history) for additional information on cleaning up replication history. +See [Cleaning Up Replication History](../../07_common_operations/05_managing_history/#clean_up_replication_history) for additional information on cleaning up replication history. Parameters @@ -27,7 +26,7 @@ Examples In the following example replication history is deleted for publication `dept_emp.` -``` text +```text $ java -jar edb-repcli.jar -cleanrephistoryforpub dept_emp \ > -repsvrfile ~/pubsvrfile.prop Removing publication's replication history ... diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/51_clean_all_replication_history.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/51_clean_all_replication_history.mdx index 217d5503422..b9dd36e3ba7 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/51_clean_all_replication_history.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/51_clean_all_replication_history.mdx @@ -4,14 +4,13 @@ title: "Cleaning Up All Replication History (cleanrephistory)" - The `cleanrephistory` command deletes the replication history for all publications in the specified publication server. Synopsis `-cleanrephistory –repsvrfile pubsvrfile` -See [Cleaning Up Replication History](../../08_xdb_cli/03_xdb_cli_commands/#clean_replication_history) for additional information on cleaning up replication history. +See [Cleaning Up Replication History](50_clean_replication_history/#clean_replication_history) for additional information on cleaning up replication history. Parameters @@ -23,7 +22,7 @@ Examples In the following example, replication history is deleted for all publications in the publication server identified by the content of file `pubsvrfile.prop`. -``` text +```text $ java -jar edb-repcli.jar -cleanrephistory -repsvrfile ~/pubsvrfile.prop Removing all publication's replication history ... ``` diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/index.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/index.mdx index 84212ed784e..57ac2e09255 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/index.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/03_xdb_cli_commands/index.mdx @@ -4,22 +4,12 @@ title: "xDB Replication Server CLI Commands" - This section provides a description, syntax diagram, and examples of each xDB Replication Server CLI command. Commands are presented in the order in which they will typically be used, following the order in which xDB Replication Console operations are performed. -
      - -
      - -Note - -
      - -Though most commands described in this section apply to both single-master and multi-master replication systems, those commands that apply only to single-master replication systems are noted with For SMR only. Those commands that apply only to multi-master replication systems are noted with For MMR only. The same notation is used for command parameters that may apply only to single-master replication systems or multi-master replication systems. - -
      +!!! Note + Though most commands described in this section apply to both single-master and multi-master replication systems, those commands that apply only to single-master replication systems are noted with For SMR only. Those commands that apply only to multi-master replication systems are noted with For MMR only. The same notation is used for command parameters that may apply only to single-master replication systems or multi-master replication systems. For the examples used in this section, it is assumed that the xDB Replication Server CLI commands are executed after you have made `XDB_HOME/bin` your current working directory, thereby eliminating the need to specify the full path of `XDB_HOME/bin` for each execution of the `edb-repcli.jar` file. For example, assuming xDB Replication Server is installed in the default installation directory you have issued the following command in Linux: @@ -35,6 +25,6 @@ The examples in this section were run on Linux so you will see use of the Linux
      -get\_help print\_version print\_xdb\_server\_version encrypt\_password printing\_server\_uptime add\_pub\_database printing\_pub\_db\_id printing\_pub\_db\_details printing\_controller\_db\_id printing\_pdn\_node\_db\_id updating\_publication\_database removing\_publication\_database get\_tables\_for\_new\_publication creating\_publication\_cli print\_publications\_list print\_publications\_tables\_list print\_publications\_filters\_list adding\_tables\_to\_publication removing\_tables\_from\_publication adding\_tablefilters\_to\_publication updating\_tablefilters\_to\_publication removing\_tablefilters\_to\_publication print\_conflict\_resolution\_strategy updating\_conflict\_resolution\_strategy set\_pdn\_node set\_controller validate\_a\_publication validate\_all\_publications removing\_a\_publication replicating\_ddl\_changes\_cli adding\_subscription\_db printing\_subscription\_db\_id printing\_subscription\_db\_details updating\_subscription\_database\_cli removing\_subscription\_database\_cli creating\_subscription\_cli print\_subscription\_list enable\_filters\_on\_subscription\_or\_non\_pdn\_node disable\_filters\_on\_subscription\_or\_non\_pdn\_node taking\_smr\_snapshot taking\_mmr\_snapshot perform\_synchronization configure\_smr\_schedule configure\_mmr\_schedule print\_schedule updating\_subscription\_cli removing\_subscription\_cli schedule\_shadow\_table\_history\_clean clean\_shadow\_table\_history clean\_replication\_history clean\_all\_replication\_history +get_help print_version print_xdb_server_version encrypt_password printing_server_uptime add_pub_database printing_pub_db_id printing_pub_db_details printing_controller_db_id printing_pdn_node_db_id updating_publication_database removing_publication_database get_tables_for_new_publication creating_publication_cli print_publications_list print_publications_tables_list print_publications_filters_list adding_tables_to_publication removing_tables_from_publication adding_tablefilters_to_publication updating_tablefilters_to_publication removing_tablefilters_to_publication print_conflict_resolution_strategy updating_conflict_resolution_strategy set_pdn_node set_controller validate_a_publication validate_all_publications removing_a_publication replicating_ddl_changes_cli adding_subscription_db printing_subscription_db_id printing_subscription_db_details updating_subscription_database_cli removing_subscription_database_cli creating_subscription_cli print_subscription_list enable_filters_on_subscription_or_non_pdn_node disable_filters_on_subscription_or_non_pdn_node taking_smr_snapshot taking_mmr_snapshot perform_synchronization configure_smr_schedule configure_mmr_schedule print_schedule updating_subscription_cli removing_subscription_cli schedule_shadow_table_history_clean clean_shadow_table_history clean_replication_history clean_all_replication_history
      diff --git a/product_docs/docs/eprs/6.2/08_xdb_cli/index.mdx b/product_docs/docs/eprs/6.2/08_xdb_cli/index.mdx index bc7e9842079..333ee225dae 100644 --- a/product_docs/docs/eprs/6.2/08_xdb_cli/index.mdx +++ b/product_docs/docs/eprs/6.2/08_xdb_cli/index.mdx @@ -4,17 +4,16 @@ title: "xDB Replication Server Command Line Interface" - This chapter discusses the syntax and usage of the xDB Replication Server Command Line Interface (CLI). This utility program is a command line driven alternative to the xDB Replication Console. The steps for creating a replication system using the xDB Replication Server CLI are no different than those required when using the xDB Replication Console. The logical components of the replication system must be created in the same order, with the same sets of attributes as when creating the replication system with the xDB Replication Console. -You should understand the concepts and steps presented in chapters [overview](02_overview/#overview), and [Single-Master Replication Operation](05_smr_operation/#smr_operation) (for single-master replication) or [Multi-Master Replication Operation](06_mmr_operation/#mmr_operation) (for multi-master replication) before building a replication system using the xDB Replication Server CLI. There are no restrictions on using both the xDB Replication Console and the xDB Replication Server CLI to build and manage the same replication system. +You should understand the concepts and steps presented in chapters [overview](../02_overview/#overview), and [Single-Master Replication Operation](../05_smr_operation/#smr_operation) (for single-master replication) or [Multi-Master Replication Operation](../06_mmr_operation/#mmr_operation) (for multi-master replication) before building a replication system using the xDB Replication Server CLI. There are no restrictions on using both the xDB Replication Console and the xDB Replication Server CLI to build and manage the same replication system. -In Section [xDB Replication Server CLI Commands](08_xdb_cli/03_xdb_cli_commands/#xdb_cli_commands), the syntax and examples are given for each xDB Replication Server CLI command run individually. Where applicable, the discussion of a command contains a reference back to its xDB Replication Console counterpart where a detailed description of the affected component and its attributes can be found. +In Section [xDB Replication Server CLI Commands](03_xdb_cli_commands/#xdb_cli_commands), the syntax and examples are given for each xDB Replication Server CLI command run individually. Where applicable, the discussion of a command contains a reference back to its xDB Replication Console counterpart where a detailed description of the affected component and its attributes can be found.
      -prereq\_steps general\_use xdb\_cli\_commands +prereq_steps general_use xdb_cli_commands
      diff --git a/product_docs/docs/eprs/6.2/09_data_validator/01_installation_and_configuratiin_datavalidator.mdx b/product_docs/docs/eprs/6.2/09_data_validator/01_installation_and_configuratiin_datavalidator.mdx index 841f4aa920d..c0d63ab44b5 100644 --- a/product_docs/docs/eprs/6.2/09_data_validator/01_installation_and_configuratiin_datavalidator.mdx +++ b/product_docs/docs/eprs/6.2/09_data_validator/01_installation_and_configuratiin_datavalidator.mdx @@ -4,58 +4,53 @@ title: "Installation and Configuration" - **Step 1:** When you install the xDB Replication Server product, the components for the Data Validator are installed as well. See Chapter [Installation and Uninstallation](../03_installation/#installation) for information on installing the xDB Replication Server product. Also, when you uninstall the xDB Replication Server product, the Data Validator components are uninstalled as well. The following components that you use to run the Data Validator are installed when you install the xDB Replication Server product. -
      Data Validator Files
      File Name

      Location

      Description

      datavalidator.propertiesXDB_HOME/etcData Validator Properties file
      runValidation.sh (Linux)XDB_HOME/binData Validator execution script
      runValidation.bat (Windows)XDB_HOME\binData Validator execution script
      +| | | | +| --------------------------- | ------------------------------------------ | --------------------------------------------- | +| **File Name** |


      **Location**

      |


      **Description**

      | +| datavalidator.properties | *XDB_HOME*/etc | Data Validator Properties file | +| runValidation.sh (Linux) | *XDB_HOME*/bin | Data Validator execution script | +| runValidation.bat (Windows) | *XDB_HOME*\\bin | Data Validator execution script | **Data Validator Files** -
      - -
      - -Note - -
      - -`XDB_HOME` is the directory where xDB Replication Server is installed. This may or may not be the same as the Postgres home directory depending upon how xDB Replication Server is installed. - -
      +!!! Note + `XDB_HOME` is the directory where xDB Replication Server is installed. This may or may not be the same as the Postgres home directory depending upon how xDB Replication Server is installed. **Step 2:** If you plan to use an Oracle database as the source or target database, download the Oracle JDBC driver and place it in the `JAVA_HOME/jre/lib/ext` directory. **Step 3:** Edit the `datavalidator.properties` file located in the `XDB_HOME/etc` directory and specify the connection information for the source and target databases you want to compare. -Any of these parameters can be overridden by an option when you invoke the Data Validator script. See [Performing Data Validation](../09_data_validator/#perform_datavalidation) for additional information on invoking the Data Validator. +Any of these parameters can be overridden by an option when you invoke the Data Validator script. See [Performing Data Validation](02_perform_datavalidation/#perform_datavalidation) for additional information on invoking the Data Validator. The following are the parameters in the `datavalidator.properties file`. -| | | -|------------------|-----------------------------------------------------------------------------------------------| -| **Parameter** | **Description** | -| source\_dbms | Type of the source database. Values may be enterprisedb, oracle, sqlserver, sybase, or mysql. | -| source\_host | IP address or server name of the host running the database server of the source database | -| source\_port | Port number on which the database server of the source database listens for requests | -| source\_database | Database name of the source database | -| source\_user | Database user name of the source database | -| source\_password | Unencrypted password of the source database user | -| target\_dbms | Type of the target database. Values may be enterprisedb or oracle. | -| target\_host | IP address or server name of the host running the database server of the target database | -| target\_port | Port number on which the database server of the target database listens for requests | -| target\_database | Database name of the target database | -| target\_user | Database user name of the target database | -| target\_password | Unencrypted password of the target database user | +| | | +| --------------- | --------------------------------------------------------------------------------------------- | +| **Parameter** | **Description** | +| source_dbms | Type of the source database. Values may be enterprisedb, oracle, sqlserver, sybase, or mysql. | +| source_host | IP address or server name of the host running the database server of the source database | +| source_port | Port number on which the database server of the source database listens for requests | +| source_database | Database name of the source database | +| source_user | Database user name of the source database | +| source_password | Unencrypted password of the source database user | +| target_dbms | Type of the target database. Values may be enterprisedb or oracle. | +| target_host | IP address or server name of the host running the database server of the target database | +| target_port | Port number on which the database server of the target database listens for requests | +| target_database | Database name of the target database | +| target_user | Database user name of the target database | +| target_password | Unencrypted password of the target database user | **Data Validator Properties File Parameters** The following is the initial content of the `datavalidator.properties` file after installation: -``` text +```text ############################################################### Source database connection ############################################################### @@ -115,8 +110,8 @@ The Data Validator attempts to create a subdirectory named logs within the `XDB_ The same situation also exists on Windows hosts as the account you are using must have the permission to create a subdirectory in the `XDB_HOME\bin` location. Choices for determining and setting the Data Validator directory for the log and diff files are the following: -- Run the Data Validator as the root account. This enables the Data Validator to create the logs subdirectory within the XDB\_HOME/bin directory, and then to create the log and diff files in the logs subdirectory. +- Run the Data Validator as the root account. This enables the Data Validator to create the logs subdirectory within the XDB_HOME/bin directory, and then to create the log and diff files in the logs subdirectory. - Create the `XDB_HOME/bin/logs` directory structure before running the Data Validator. Modify the permissions on directory `XDB_HOME/bin/logs` so the operating system account you use to run the Data Validator has the privilege to create files in the directory. -- Use the `-ld` log\_directory\_path option to allow the Data Validator to create the log and diff files in the specified directory location log\_directory\_path. Be sure the operating system account you use to run the Data Validator has the proper privileges to either create the lowest level subdirectory specified by log\_directory\_path if it does not already exist, or to create files within the specified directory if the full directory path already does exist. +- Use the `-ld` log_directory_path option to allow the Data Validator to create the log and diff files in the specified directory location log_directory_path. Be sure the operating system account you use to run the Data Validator has the proper privileges to either create the lowest level subdirectory specified by log_directory_path if it does not already exist, or to create files within the specified directory if the full directory path already does exist. Once you have determined and verified that your operating system account you plan to use to run the Data Validator can create files in the log directory, you can proceed with performing data validation. diff --git a/product_docs/docs/eprs/6.2/09_data_validator/02_perform_datavalidation.mdx b/product_docs/docs/eprs/6.2/09_data_validator/02_perform_datavalidation.mdx index 55e5edfdeee..b9006aaeb2f 100644 --- a/product_docs/docs/eprs/6.2/09_data_validator/02_perform_datavalidation.mdx +++ b/product_docs/docs/eprs/6.2/09_data_validator/02_perform_datavalidation.mdx @@ -4,7 +4,6 @@ title: "Performing Data Validation" - The current working directory from which you invoke the Data Validator script `runValidation.sh` (`runValidation.bat` for Windows) must be the bin subdirectory containing the script (that is, `XDB_HOME/bin`). For example, if the xDB Replication Server is installed into its default directory location, then issue the following command before invoking the Data Validator: @@ -17,7 +16,7 @@ Similarly for Windows hosts, issue the following: The general command format for invoking the Data Validator is the following: -``` text +```text ./runValidation.sh { –ss | --source-schema } schema_name [ option ] ... ``` @@ -26,14 +25,14 @@ The general command format for invoking the Data Validator is the following: For Windows hosts, the command format is the following: -``` text +```text runValidation { –ss | --source-schema } schema_name [ option ] ... ``` The following option displays the Data Validator version: -``` text +```text ./runValidation.sh { –v | --version } On Linux the version is displayed as follows: $ ./runValidation.sh --version @@ -79,7 +78,7 @@ OPTIONS: The general syntax for all options except for --version and --help is shown by the following: -``` text +```text ./runValidation.sh –ss schema [ -ts schema ] [ -it table_1 [,table_2 ] ... ] @@ -107,7 +106,7 @@ The general syntax for all options except for --version and --help is shown by t For clarity, the preceding syntax diagram shows only the single-character form of the option. The Options subsection lists both the single-character and multi-character forms of the options. -Specification of any database connection option (-sdbms through -tpw listed in the preceding syntax diagram) overrides the corresponding parameter in the `datavalidator.properties` file. [Installation and Configuration](../09_data_validator/#installation_and_configuratiin_datavalidator) for information on the `datavalidator.properties` file. +Specification of any database connection option (-sdbms through -tpw listed in the preceding syntax diagram) overrides the corresponding parameter in the `datavalidator.properties` file. [Installation and Configuration](01_installation_and_configuratiin_datavalidator/#installation_and_configuratiin_datavalidator) for information on the `datavalidator.properties` file. Options @@ -141,7 +140,7 @@ Options `-ld, --logging-dir log_directory_path` -> Directory path to where the Data Validator log and diff files are to be created and stored. If log\_directory\_path does not exist, Data Validator attempts to create it. If a full directory path is not specified log\_directory\_path is created or assumed to be located relative to the XDB\_HOME/bin subdirectory where the runValidation.sh script is invoked. (That is, the logs directory is XDB\_HOME/bin/log\_directory\_path.) Be sure the operating system account used to invoke the runValidation.sh script has the privileges to create the directory if it does not already exist, or to create files in the specified directory if it does already exist. If omitted, the default is the XDB\_HOME/bin/logs directory. +> Directory path to where the Data Validator log and diff files are to be created and stored. If log_directory_path does not exist, Data Validator attempts to create it. If a full directory path is not specified log_directory_path is created or assumed to be located relative to the XDB_HOME/bin subdirectory where the runValidation.sh script is invoked. (That is, the logs directory is XDB_HOME/bin/log_directory_path.) Be sure the operating system account used to invoke the runValidation.sh script has the privileges to create the directory if it does not already exist, or to create files in the specified directory if it does already exist. If omitted, the default is the XDB_HOME/bin/logs directory. `-ds, --display-summary { true | false }` @@ -201,7 +200,7 @@ Options `-fs, --fetch-size row_count` -> Performing data validation for tables that are quite large in size may cause the Data Validator to terminate with an out of heap space error when using the default fetch size of 5000 rows. Use the `-fs` option to specify a smaller fetch size to help avoid the out of heap space issue. The result set iteration will bring in as many rows as represented by the row\_count value in a single database round trip. +> Performing data validation for tables that are quite large in size may cause the Data Validator to terminate with an out of heap space error when using the default fetch size of 5000 rows. Use the `-fs` option to specify a smaller fetch size to help avoid the out of heap space issue. The result set iteration will bring in as many rows as represented by the row_count value in a single database round trip. Examples @@ -209,7 +208,7 @@ The following examples use an Oracle source database and an Advanced Server targ The following lists the tables in schema EDB along with the content of tables DEPT and EMP in the Oracle source database: -``` text +```text SQL> SELECT table_name FROM user_tables; TABLE_NAME @@ -255,7 +254,7 @@ SQL> SELECT * FROM emp; The following lists the tables in schema public along with the content of tables `dept` and `emp` in the Advanced Server `edb` database: -``` text +```text edb=# \dt List of relations Schema | Name | Type | Owner @@ -305,7 +304,7 @@ Note the following differences: The content of the `datavalidator.properties` file is set as follows: -``` text +```text ############################################################### Source database connection ############################################################### @@ -337,7 +336,7 @@ The following example compares all tables in the Oracle EDB schema against the A The Data Validator log files are created in directory `/home/user/datavalidator_logs` as specified with the `-ld` option. The operating system account used to invoke the `runValidation.sh` script has write access to the `/home/user` directory so the Data Validator can create the `datavalidator_logs` subdirectory. -``` text +```text $ cd /opt/PostgreSQL/EnterpriseDB-xDBReplicationServer/bin $ pwd /opt/PostgreSQL/EnterpriseDB-xDBReplicationServer/bin @@ -426,7 +425,7 @@ The Data Validator output indicates the following: The following shows the files created in the Data Validator logs directory: -``` text +```text $ pwd /home/user/datavalidator_logs $ ls -l @@ -443,7 +442,7 @@ The following is the diff file as displayed in a text editor: The following example includes only tables `dept` and `emp` with the `-it` option when comparing the Oracle EDB schema against the Advanced Server public schema. -``` text +```text $ cd /opt/PostgreSQL/EnterpriseDB-xDBReplicationServer/bin $ pwd /opt/PostgreSQL/EnterpriseDB-xDBReplicationServer/bin @@ -516,7 +515,7 @@ Data validation process has completed. The following example excludes tables `ORATAB` and `jobhist` with the `-et` option when comparing the Oracle EDB schema against the Advanced Server public schema. The `-ds` true option results in the display of only the Data Validator summary. -``` text +```text $ ./runValidation.sh -ss edb -ts public -ld /home/user/datavalidator_logs -et ORATAB,jobhist -ds true Databases data validation process started... diff --git a/product_docs/docs/eprs/6.2/09_data_validator/index.mdx b/product_docs/docs/eprs/6.2/09_data_validator/index.mdx index c798cb36923..cff7b835c8f 100644 --- a/product_docs/docs/eprs/6.2/09_data_validator/index.mdx +++ b/product_docs/docs/eprs/6.2/09_data_validator/index.mdx @@ -4,7 +4,6 @@ title: "Data Validator" - The Data Validator is a utility that compares the rows of one or more tables within a schema of a database against the rows of the tables with the same names within a schema of another database. The Data Validator generates a summary of the comparison noting the number of rows whose column values differ. A file containing detailed information regarding any differences is also generated. The two databases being compared are referred to as the source database and the target database. The source database can be of type Oracle, EnterpriseDB, SQL Server, Sybase, or MySQL. The target database must be either Oracle or EnterpriseDB. @@ -13,17 +12,8 @@ An EnterpriseDB database type means either an Advanced Server database or a Post The tables available for comparison are those found in the schema of the source database. Tables in the target database that do not exist in the source database schema are ignored. -
      - -
      - -Note - -
      - -The Data Validator does not validate columns having the following data types. Tables containing one or more columns of these types will only be partially validated. - -
      +!!! Note + The Data Validator does not validate columns having the following data types. Tables containing one or more columns of these types will only be partially validated. - `BFILE` - `STRUCT` @@ -34,20 +24,11 @@ The Data Validator does not validate columns having the following data types. Ta - `RAW` - `LONG RAW` -
      - -
      - -Note - -
      - -Regarding the usage of the Data Validator with tables in an xDB Replication Server single-master or multi-master replication system, be sure all synchronization replication between the source and target xDB Replication Server tables has been completed before using the Data Validator. If synchronization replication is still in progress, it is probable that the Data Validator will report differences in table content. - -
      +!!! Note + Regarding the usage of the Data Validator with tables in an xDB Replication Server single-master or multi-master replication system, be sure all synchronization replication between the source and target xDB Replication Server tables has been completed before using the Data Validator. If synchronization replication is still in progress, it is probable that the Data Validator will report differences in table content.
      -installation\_and\_configuratiin\_datavalidator perform\_datavalidation +installation_and_configuratiin_datavalidator perform_datavalidation
      diff --git a/product_docs/docs/eprs/6.2/10_appendix/01_permitted_conf_and_permutations.mdx b/product_docs/docs/eprs/6.2/10_appendix/01_permitted_conf_and_permutations.mdx index 037ad91cbfd..4b752d08291 100644 --- a/product_docs/docs/eprs/6.2/10_appendix/01_permitted_conf_and_permutations.mdx +++ b/product_docs/docs/eprs/6.2/10_appendix/01_permitted_conf_and_permutations.mdx @@ -4,7 +4,6 @@ title: "Permitted Configurations and Combinations" - Depending upon the database products you are using with xDB Replication Server (Oracle, SQL Server, PostgreSQL, or Advanced Server) along with the compatibility configuration mode if you are using Advanced Server, certain combinations of a source database server and a target database server are not permitted for a publication and its associated subscription in a single-master replication system. Similarly, only certain combinations of database products and Advanced Server compatibility configuration modes can be used together in a multi-master replication system. @@ -37,7 +36,7 @@ The compatibility configuration mode is selected at the time you install Advance The following table shows the combinations of source and target database server products and Advanced Server compatibility configuration modes permitted by xDB Replication Server for single-master replication systems: | | | | | | | -|---------------------------------------------|--------|----------------------|------------|-------------------------------------|-----------------------------------------| +| ------------------------------------------- | ------ | -------------------- | ---------- | ----------------------------------- | --------------------------------------- | | Source \\ Target | Oracle | Microsoft SQL Server | PostgreSQL | Advanced Server (Oracle compatible) | Advanced Server (PostgreSQL compatible) | | **Oracle** | No | No | Yes | Yes | Yes | | **Microsoft SQL Server** | No | No | Yes | Yes | Yes | @@ -55,7 +54,7 @@ In the preceding table, the left hand column lists the possible source database ## Permitted MMR Database Server Configurations -For multi-master replication systems, each primary node acts as both a source for all primary nodes and a target for all primary nodes. Thus, the permitted database servers comprising a particular multi-master replication system or cluster is determined by the overall composition of the cluster, which is initially established when selecting the database type of the primary definition node (see Step 3 in Section [Adding the Primary definition node](../06_mmr_operation/#adding_pdn)). There are two basic cluster types that can be characterized as follows: +For multi-master replication systems, each primary node acts as both a source for all primary nodes and a target for all primary nodes. Thus, the permitted database servers comprising a particular multi-master replication system or cluster is determined by the overall composition of the cluster, which is initially established when selecting the database type of the primary definition node (see Step 3 in Section [Adding the Primary definition node](../06_mmr_operation/02_creating_publication_mmr/#adding_pdn)). There are two basic cluster types that can be characterized as follows: - PostgreSQL compatible cluster. All primary nodes must consist of PostgreSQL database servers or Advanced Servers installed in PostgreSQL compatible configuration mode. - Advanced Server Oracle compatible cluster. All primary nodes must consist of Advanced Servers installed in Oracle compatible configuration mode. @@ -65,7 +64,7 @@ The following table summarizes the permitted database server configurations allo Table 10‑2 – | | | | -|---------------------------------------------|-------------------------------|-------------------------------------------| +| ------------------------------------------- | ----------------------------- | ----------------------------------------- | | Database Server \\ Cluster Type | PostgreSQL Compatible Cluster | Advanced Server Oracle Compatible Cluster | | **PostgreSQL** | Yes | No | | **Advanced Server (PostgreSQL compatible)** | Yes | No | diff --git a/product_docs/docs/eprs/6.2/10_appendix/02_upgrading_to_xdb6_2/01_permitted_conf_and_permutations.mdx b/product_docs/docs/eprs/6.2/10_appendix/02_upgrading_to_xdb6_2/01_permitted_conf_and_permutations.mdx index ffc18300355..c239dd1e00d 100644 --- a/product_docs/docs/eprs/6.2/10_appendix/02_upgrading_to_xdb6_2/01_permitted_conf_and_permutations.mdx +++ b/product_docs/docs/eprs/6.2/10_appendix/02_upgrading_to_xdb6_2/01_permitted_conf_and_permutations.mdx @@ -4,7 +4,6 @@ title: "Permitted Configurations and Combinations" - Depending upon the database products you are using with xDB Replication Server (Oracle, SQL Server, PostgreSQL, or Advanced Server) along with the compatibility configuration mode if you are using Advanced Server, certain combinations of a source database server and a target database server are not permitted for a publication and its associated subscription in a single-master replication system. Similarly, only certain combinations of database products and Advanced Server compatibility configuration modes can be used together in a multi-master replication system. @@ -37,7 +36,7 @@ The compatibility configuration mode is selected at the time you install Advance The following table shows the combinations of source and target database server products and Advanced Server compatibility configuration modes permitted by xDB Replication Server for single-master replication systems: | | | | | | | -|---------------------------------------------|--------|----------------------|------------|-------------------------------------|-----------------------------------------| +| ------------------------------------------- | ------ | -------------------- | ---------- | ----------------------------------- | --------------------------------------- | | Source \\ Target | Oracle | Microsoft SQL Server | PostgreSQL | Advanced Server (Oracle compatible) | Advanced Server (PostgreSQL compatible) | | **Oracle** | No | No | Yes | Yes | Yes | | **Microsoft SQL Server** | No | No | Yes | Yes | Yes | @@ -55,7 +54,7 @@ In the preceding table, the left hand column lists the possible source database ## Permitted MMR Database Server Configurations -For multi-master replication systems, each primary node acts as both a source for all primary nodes and a target for all primary nodes. Thus, the permitted database servers comprising a particular multi-master replication system or cluster is determined by the overall composition of the cluster, which is initially established when selecting the database type of the primary definition node (see Step 3 in Section [Adding the Primary definition node](../../06_mmr_operation/#adding_pdn)). There are two basic cluster types that can be characterized as follows: +For multi-master replication systems, each primary node acts as both a source for all primary nodes and a target for all primary nodes. Thus, the permitted database servers comprising a particular multi-master replication system or cluster is determined by the overall composition of the cluster, which is initially established when selecting the database type of the primary definition node (see Step 3 in Section [Adding the Primary definition node](../../06_mmr_operation/02_creating_publication_mmr/#adding_pdn)). There are two basic cluster types that can be characterized as follows: - PostgreSQL compatible cluster. All primary nodes must consist of PostgreSQL database servers or Advanced Servers installed in PostgreSQL compatible configuration mode. - Advanced Server Oracle compatible cluster. All primary nodes must consist of Advanced Servers installed in Oracle compatible configuration mode. @@ -65,7 +64,7 @@ The following table summarizes the permitted database server configurations allo Table 10‑2 – | | | | -|---------------------------------------------|-------------------------------|-------------------------------------------| +| ------------------------------------------- | ----------------------------- | ----------------------------------------- | | Database Server \\ Cluster Type | PostgreSQL Compatible Cluster | Advanced Server Oracle Compatible Cluster | | **PostgreSQL** | Yes | No | | **Advanced Server (PostgreSQL compatible)** | Yes | No | diff --git a/product_docs/docs/eprs/6.2/10_appendix/02_upgrading_to_xdb6_2/02_upgrading_with_gui_installer.mdx b/product_docs/docs/eprs/6.2/10_appendix/02_upgrading_to_xdb6_2/02_upgrading_with_gui_installer.mdx index 98c49e643c7..7fe6f84d6e9 100644 --- a/product_docs/docs/eprs/6.2/10_appendix/02_upgrading_to_xdb6_2/02_upgrading_with_gui_installer.mdx +++ b/product_docs/docs/eprs/6.2/10_appendix/02_upgrading_to_xdb6_2/02_upgrading_with_gui_installer.mdx @@ -4,16 +4,15 @@ title: "Upgrading with the Graphical User Interface Installer" - Perform the following steps to upgrade to xDB Replication Server 6.2 using the graphical user interface installer. **Step 1:** Any pending backlog of transactions on the publication tables must be replicated before starting the upgrade process. -**Step 2:** After all pending transactions have been replicated to their target databases, stop the xDB Replication Server 6.1.x publication server and subscription server. See sections [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server) and [Registering a Subscription Server](../../05_smr_operation/03_creating_subscription/#registering_subscription_server). +**Step 2:** After all pending transactions have been replicated to their target databases, stop the xDB Replication Server 6.1.x publication server and subscription server. See sections [Registering a Publication Server](../../05_smr_operation/02_creating_publication/01_registering_publication_server/#registering_publication_server) and [Registering a Subscription Server](../../05_smr_operation/03_creating_subscription/01_registering_subscription_server/#registering_subscription_server). -**Step 3:** Install xDB Replication Server 6.2. See Chapter [Installation and Uninstallation](../../05_smr_operation/03_creating_subscription/#registering_subscription_server) for instructions on installing xDB Replication Server, but note the differences described in the following steps. +**Step 3:** Install xDB Replication Server 6.2. See Chapter [Installation and Uninstallation](../../05_smr_operation/03_creating_subscription/01_registering_subscription_server/#registering_subscription_server) for instructions on installing xDB Replication Server, but note the differences described in the following steps. -**Step 4:** Following the acceptance of the license agreement in Step 11 of Section [Installing With Stack Builder or StackBuilder Plus](../../03_installation/#installing_with_stackbuilder), the Select Components screen appears, but with the entries grayed out. The old xDB Replication Server components are replaced by the new ones in the old xDB Replication Server’s directory location. Click the `Next` button. +**Step 4:** Following the acceptance of the license agreement in Step 11 of Section [Installing With Stack Builder or StackBuilder Plus](../../03_installation/01_installing_with_stackbuilder/#installing_with_stackbuilder), the Select Components screen appears, but with the entries grayed out. The old xDB Replication Server components are replaced by the new ones in the old xDB Replication Server’s directory location. Click the `Next` button. ![Select components](/../../images/image292.png) @@ -37,16 +36,16 @@ The old configuration files used by xDB Replication Server version 6.1.x remain Merge the old and new configuration files so that the resulting, active configuration files contain any new xDB Replication Server 6.2 configuration options as well as any non-default settings you used with xDB Replication Server 6.1.x and wish to continue to use with xDB Replication Server 6.2. The final set of active configuration files must be named `xdb_pubserver.conf` and `xdb_subserver.conf`. -In the `XDB_HOME/etc/sysconfig` directory, make sure the xDB Startup Configuration file `xdbReplicationServer-62.config` contains the parameter settings you wish to use with xDB Replication Server 6.2. See [xDB Startup Configuration File](../../02_overview/03_replication_server_components_and_architecture/#xdb_startup_conf_file) for information on the xDB Startup Configuration file. +In the `XDB_HOME/etc/sysconfig` directory, make sure the xDB Startup Configuration file `xdbReplicationServer-62.config` contains the parameter settings you wish to use with xDB Replication Server 6.2. See [xDB Startup Configuration File](../../02_overview/03_replication_server_components_and_architecture/01_physical_components/#xdb_startup_conf_file) for information on the xDB Startup Configuration file. -**Step 10:** Restart the publication server and the subscription server (see sections [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server) and [Registering a Subscription Server](../../05_smr_operation/03_creating_subscription/#registering_subscription_server)). +**Step 10:** Restart the publication server and the subscription server (see sections [Registering a Publication Server](../../05_smr_operation/02_creating_publication/01_registering_publication_server/#registering_publication_server) and [Registering a Subscription Server](../../05_smr_operation/03_creating_subscription/01_registering_subscription_server/#registering_subscription_server)). -**Step 11:** Check the publication server and subscription server log files to verify that no errors have occurred (see [Publication and Subscription Server Startup Failures](../../10_appendix/03_resolving_problems/#pub_and_sub_startup_failures)). +**Step 11:** Check the publication server and subscription server log files to verify that no errors have occurred (see [Publication and Subscription Server Startup Failures](../03_resolving_problems/02_where_to_look_for_errors/#pub_and_sub_startup_failures)). **Step 12:** Adjust the publication server and subscription server port numbers if necessary. -The xDB Replication Server 6.2 publication and subscription servers are installed to use the default port numbers 9051 and 9052, respectively. If the xDB Replication Server 6.1.x replication systems used port numbers other than 9051 and 9052, then perform the modifications to correct this inconsistency as described in Section [Updating the Publication and Subscription Server Ports](../../10_appendix/02_upgrading_to_xdb6_2/#updating_sub_and_pub_ports). +The xDB Replication Server 6.2 publication and subscription servers are installed to use the default port numbers 9051 and 9052, respectively. If the xDB Replication Server 6.1.x replication systems used port numbers other than 9051 and 9052, then perform the modifications to correct this inconsistency as described in Section [Updating the Publication and Subscription Server Ports](04_updating_sub_and_pub_ports/#updating_sub_and_pub_ports). -If no such adjustment to the port numbers is needed, register the publication server and subscription server with the xDB Replication Console as described in sections [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server) and [Registering a Subscription Server](../../05_smr_operation/03_creating_subscription/#registering_subscription_server). The existing replication systems should appear in the replication tree of the xDB Replication Console. +If no such adjustment to the port numbers is needed, register the publication server and subscription server with the xDB Replication Console as described in sections [Registering a Publication Server](../../05_smr_operation/02_creating_publication/01_registering_publication_server/#registering_publication_server) and [Registering a Subscription Server](../../05_smr_operation/03_creating_subscription/01_registering_subscription_server/#registering_subscription_server). The existing replication systems should appear in the replication tree of the xDB Replication Console. **Step 13:** You are now ready to use xDB Replication Server 6.2 to create new replication systems and manage existing ones. diff --git a/product_docs/docs/eprs/6.2/10_appendix/02_upgrading_to_xdb6_2/03_upgrading_with_xdb_rpm_package.mdx b/product_docs/docs/eprs/6.2/10_appendix/02_upgrading_to_xdb6_2/03_upgrading_with_xdb_rpm_package.mdx index e1ca0d1bcc5..edc6219fb8a 100644 --- a/product_docs/docs/eprs/6.2/10_appendix/02_upgrading_to_xdb6_2/03_upgrading_with_xdb_rpm_package.mdx +++ b/product_docs/docs/eprs/6.2/10_appendix/02_upgrading_to_xdb6_2/03_upgrading_with_xdb_rpm_package.mdx @@ -4,24 +4,14 @@ title: "Upgrading with the xDB Replication Server RPM Package" - If you are using xDB Replication Server 6.1.x that was installed using the xDB RPM package, upgrading to xDB Replication Server 6.2 from an RPM package is accomplished as described in this section. -
      - -
      - -Note - -
      - -Be sure the repository configuration file `edb.repo` for xDB Replication Server 6.2 is set up in the `/etc/yum.repos.d` directory. See Section [Installing the xDB RPM Package](../../03_installation/#installing_rpm_package) for information. - -
      +!!! Note + Be sure the repository configuration file `edb.repo` for xDB Replication Server 6.2 is set up in the `/etc/yum.repos.d` directory. See Section [Installing the xDB RPM Package](../../03_installation/03_installing_rpm_package/#installing_rpm_package) for information. **Step 1:** Any pending backlog of transactions on the publication tables must be replicated before starting the upgrade process. -**Step 2:** After all pending transactions have been replicated to their target databases, stop the xDB Replication Server 6.1.x publication server and subscription server (see sections [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server) and [Registering a Subscription Server](../../05_smr_operation/03_creating_subscription/#registering_subscription_server)). +**Step 2:** After all pending transactions have been replicated to their target databases, stop the xDB Replication Server 6.1.x publication server and subscription server (see sections [Registering a Publication Server](../../05_smr_operation/02_creating_publication/01_registering_publication_server/#registering_publication_server) and [Registering a Subscription Server](../../05_smr_operation/03_creating_subscription/01_registering_subscription_server/#registering_subscription_server)). **Step 3:** Save a copy of the following configuration files: @@ -32,19 +22,10 @@ Be sure the repository configuration file `edb.repo` for xDB Replication Server Copies of these files are typically saved by the upgrade process if the files had been modified since their original installation. However, it is safest to save copies in case the upgrade process fails to do so. Use the saved files as your xDB Replication Server 6.1.x configuration files for the updates described in Step 7. -**Step 4:** If any Oracle publication or subscription databases are used in existing single-master replication systems, make sure a copy of the Oracle JDBC driver, version ojdbc5 or later, will be accessible by the publication server and subscription server where xDB Replication Server 6.2 will be installed. See [Enabling Access to Oracle](../../05_smr_operation/01_prerequisites/#enable_access_to_oracle) for information. - -
      - -
      +**Step 4:** If any Oracle publication or subscription databases are used in existing single-master replication systems, make sure a copy of the Oracle JDBC driver, version ojdbc5 or later, will be accessible by the publication server and subscription server where xDB Replication Server 6.2 will be installed. See [Enabling Access to Oracle](../../05_smr_operation/01_prerequisites/03_enable_access_to_database/#enable_access_to_oracle) for information. -Note - -
      - -There are two options available: Option 1) Copy the Oracle JDBC driver to the `jre/lib/ext subdirectory` of your Java runtime environment. Option 2) Copy the Oracle JDBC driver to the `lib/jdbc subdirectory` of the xDB Replication Server installation directory. - -
      +!!! Note + There are two options available: Option 1) Copy the Oracle JDBC driver to the `jre/lib/ext subdirectory` of your Java runtime environment. Option 2) Copy the Oracle JDBC driver to the `lib/jdbc subdirectory` of the xDB Replication Server installation directory. It is suggested that you perform option 1 (copy the Oracle JDBC driver to the jre/lib/ext subdirectory of your Java runtime environment). @@ -60,7 +41,7 @@ Be sure to include the asterisk character (\*) following ppas-xdb in order to up The following is an example: -``` text +```text [root@localhost ~]# yum update ppas-xdb* Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile @@ -146,36 +127,27 @@ At this point the publication server and the subscription server for xDB Replica - xDB Replication Server 6.1.x remains in directory location /usr/ppas-xdb-6.1, but with the files removed from the subdirectories such as bin and lib. - In the etc subdirectory, there may be the configuration files renamed as `xdb_pubserver.conf.rpmsave` and `xdb_subserver.conf.rpmsave`. - In the `etc/sysconfig subdirectory`, there may be the configuration file renamed as `xdbReplicationServer-61.config.rpmsave`. -- In the /etc directory, there may be either one or two xDB Replication Configuration files named `edb-repl.conf` and possibly `edb-repl.conf.rpmsave`. The file `edb-repl.conf` should contain the connection and authentication information for the controller database used by the xDB 6.1.x publication server. The file `edb-repl.conf.rpmsave` contains only the new administrator user parameters admin\_user and admin\_password. Before starting the publication server and subscription server, be sure the controller database is up and running, and the `edb-repl.conf` file contains the controller database connection and authentication parameters. +- In the /etc directory, there may be either one or two xDB Replication Configuration files named `edb-repl.conf` and possibly `edb-repl.conf.rpmsave`. The file `edb-repl.conf` should contain the connection and authentication information for the controller database used by the xDB 6.1.x publication server. The file `edb-repl.conf.rpmsave` contains only the new administrator user parameters admin_user and admin_password. Before starting the publication server and subscription server, be sure the controller database is up and running, and the `edb-repl.conf` file contains the controller database connection and authentication parameters. **Step 7:** Complete the publication server and subscription server configuration file setup. In the `/usr/ppas-xdb-6.2/etc` directory, a new set of configuration files for xDB Replication Server version 6.2 are created. These files are named `xdb_pubserver.conf` and `xdb_subserver.conf`. The new configuration files contain any new configuration options added for xDB Replication Server 6.2. The old configuration files used by xDB Replication Server version 6.1.x might be found in the /usr/ppas-xdb-6.1/etc directory renamed as `xdb_pubserver.conf.rpmsave` and `xdb_subserver.conf.rpmsave`. -
      - -
      - -Note - -
      - -If these files do not exist, use the ones you saved in Step 3. - -
      +!!! Note + If these files do not exist, use the ones you saved in Step 3. Merge the old and new configuration files so that the resulting, active configuration files contain any new xDB Replication Server 6.2 configuration options as well as any non-default settings you used with xDB Replication Server 6.1.x and wish to continue to use with xDB Replication Server 6.2. -The final set of active configuration files must be contained in directory `/usr/ppas-xdb-6.2/etc` named `xdb_pubserver.conf` and `xdb_subserver.conf`. In the `/usr/ppas-xdb-6.2/etc/sysconfig directory`, make sure the xDB Startup Configuration file `xdbReplicationServer-62.config` contains the parameter settings you wish to use with xDB Replication Server 6.2. See [xDB Replication Configuration File](../../02_overview/03_replication_server_components_and_architecture/#xdb_replication_conf_file) for information on the xDB Startup Configuration file. +The final set of active configuration files must be contained in directory `/usr/ppas-xdb-6.2/etc` named `xdb_pubserver.conf` and `xdb_subserver.conf`. In the `/usr/ppas-xdb-6.2/etc/sysconfig directory`, make sure the xDB Startup Configuration file `xdbReplicationServer-62.config` contains the parameter settings you wish to use with xDB Replication Server 6.2. See [xDB Replication Configuration File](../../02_overview/03_replication_server_components_and_architecture/01_physical_components/#xdb_replication_conf_file) for information on the xDB Startup Configuration file. -**Step 8:** Restart the publication server and the subscription server (see sections [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server) and [Registering a Subscription Server](../../05_smr_operation/03_creating_subscription/#registering_subscription_server)). +**Step 8:** Restart the publication server and the subscription server (see sections [Registering a Publication Server](../../05_smr_operation/02_creating_publication/01_registering_publication_server/#registering_publication_server) and [Registering a Subscription Server](../../05_smr_operation/03_creating_subscription/01_registering_subscription_server/#registering_subscription_server)). -**Step 9:** Check the publication server and subscription server log files to verify that no errors have occurred (see [xDB Replication Configuration File](../../02_overview/03_replication_server_components_and_architecture/#xdb_replication_conf_file)). +**Step 9:** Check the publication server and subscription server log files to verify that no errors have occurred (see [xDB Replication Configuration File](../../02_overview/03_replication_server_components_and_architecture/01_physical_components/#xdb_replication_conf_file)). **Step 10:** Adjust the publication server and subscription server port numbers if necessary. -The xDB Replication Server 6.2 publication and subscription servers are installed to use the default port numbers 9051 and 9052, respectively. If the xDB Replication Server 6.1.x replication systems used port numbers other than 9051 and 9052 for the publication and subscription servers, then perform the modifications to correct this inconsistency as described in Section [Updating the Publication and Subscription Server Ports](../../10_appendix/02_upgrading_to_xdb6_2/#updating_sub_and_pub_ports). +The xDB Replication Server 6.2 publication and subscription servers are installed to use the default port numbers 9051 and 9052, respectively. If the xDB Replication Server 6.1.x replication systems used port numbers other than 9051 and 9052 for the publication and subscription servers, then perform the modifications to correct this inconsistency as described in Section [Updating the Publication and Subscription Server Ports](04_updating_sub_and_pub_ports/#updating_sub_and_pub_ports). -If no such adjustment to the port numbers is needed, register the publication server and subscription server with the xDB Replication Console as described in sections [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server) and [Registering a Subscription Server](../../05_smr_operation/03_creating_subscription/#registering_subscription_server)). The existing replication systems should appear in the replication tree of the xDB Replication Console. +If no such adjustment to the port numbers is needed, register the publication server and subscription server with the xDB Replication Console as described in sections [Registering a Publication Server](../../05_smr_operation/02_creating_publication/01_registering_publication_server/#registering_publication_server) and [Registering a Subscription Server](../../05_smr_operation/03_creating_subscription/01_registering_subscription_server/#registering_subscription_server)). The existing replication systems should appear in the replication tree of the xDB Replication Console. **Step 11:** You are now ready to use xDB Replication Server 6.2 to create new replication systems and manage existing ones. diff --git a/product_docs/docs/eprs/6.2/10_appendix/02_upgrading_to_xdb6_2/04_updating_sub_and_pub_ports.mdx b/product_docs/docs/eprs/6.2/10_appendix/02_upgrading_to_xdb6_2/04_updating_sub_and_pub_ports.mdx index 129adf7d050..346ae9ae32c 100644 --- a/product_docs/docs/eprs/6.2/10_appendix/02_upgrading_to_xdb6_2/04_updating_sub_and_pub_ports.mdx +++ b/product_docs/docs/eprs/6.2/10_appendix/02_upgrading_to_xdb6_2/04_updating_sub_and_pub_ports.mdx @@ -4,26 +4,16 @@ title: "Updating the Publication and Subscription Server Ports" - -The newly installed publication server and subscription server of xDB Replication Server 6.2 are configured to use the default port numbers 9051 and 9052, respectively. These port numbers are set in the xDB Startup Configuration file as described in Section [xDB Replication Configuration File](../../02_overview/03_replication_server_components_and_architecture/#xdb_replication_conf_file). +The newly installed publication server and subscription server of xDB Replication Server 6.2 are configured to use the default port numbers 9051 and 9052, respectively. These port numbers are set in the xDB Startup Configuration file as described in Section [xDB Replication Configuration File](../../02_overview/03_replication_server_components_and_architecture/01_physical_components/#xdb_replication_conf_file). If your xDB Replication Server 6.1.x replication systems were running under port numbers other than 9051 and 9052, some of your settings in xDB Replication Server 6.2 must be adjusted to continue to use these existing replication systems. -
      - -
      - -Note - -
      - -The following changes regarding port 9052 and the subscription server are only needed if you are running a single-master replication system. If you are using only a multi-master replication system, then only the changes involving port 9051 and the publication server are needed. - -
      +!!! Note + The following changes regarding port 9052 and the subscription server are only needed if you are running a single-master replication system. If you are using only a multi-master replication system, then only the changes involving port 9051 and the publication server are needed. There are two methods to correct this as summarized by the following two points: -- To continue to use the old port numbers (other than 9051 and 9052) that were in use for xDB Replication Server 6.1.x, stop the publication and subscription servers. Change the settings of the `PUBPORT` and `SUBPORT` parameters in the xDB Startup Configuration file from 9051 and 9052 to the old port numbers used by xDB Replication Server 6.1.x. Restart the publication and subscription servers. Register the publication server and the subscription server with the old xDB Replication Server 6.1.x port numbers along with the admin user and password as described in sections [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server) and [Registering a Subscription Server](../../05_smr_operation/03_creating_subscription/#registering_subscription_server). -- To use the default port numbers 9051 and 9052 with the xDB Replication Server 6.1.x replication systems, you must replace the old port numbers with the default port numbers 9051 and 9052. Register the publication server and the subscription server with port numbers 9051 and 9052 along with the admin user and password as described in sections [Registering a Publication Server](../../05_smr_operation/02_creating_publication/#registering_publication_server) and [Registering a Subscription Server](../../05_smr_operation/03_creating_subscription/#registering_subscription_server). For single-master replication systems only, you then need to change the port numbers stored in the control schema from the old port numbers to 9051 and 9052. First, perform the procedure described in Section [Subscription Server Network Location](../../07_common_operations/06_managing_publication/#sub_server_network_loc), and then perform the procedure described in Section [Updating a Subscription](../../05_smr_operation/05_managing_subscription/#updating_subscription). +- To continue to use the old port numbers (other than 9051 and 9052) that were in use for xDB Replication Server 6.1.x, stop the publication and subscription servers. Change the settings of the `PUBPORT` and `SUBPORT` parameters in the xDB Startup Configuration file from 9051 and 9052 to the old port numbers used by xDB Replication Server 6.1.x. Restart the publication and subscription servers. Register the publication server and the subscription server with the old xDB Replication Server 6.1.x port numbers along with the admin user and password as described in sections [Registering a Publication Server](../../05_smr_operation/02_creating_publication/01_registering_publication_server/#registering_publication_server) and [Registering a Subscription Server](../../05_smr_operation/03_creating_subscription/01_registering_subscription_server/#registering_subscription_server). +- To use the default port numbers 9051 and 9052 with the xDB Replication Server 6.1.x replication systems, you must replace the old port numbers with the default port numbers 9051 and 9052. Register the publication server and the subscription server with port numbers 9051 and 9052 along with the admin user and password as described in sections [Registering a Publication Server](../../05_smr_operation/02_creating_publication/01_registering_publication_server/#registering_publication_server) and [Registering a Subscription Server](../../05_smr_operation/03_creating_subscription/01_registering_subscription_server/#registering_subscription_server). For single-master replication systems only, you then need to change the port numbers stored in the control schema from the old port numbers to 9051 and 9052. First, perform the procedure described in Section [Subscription Server Network Location](../../07_common_operations/06_managing_publication/01_updating_publication_server/#sub_server_network_loc), and then perform the procedure described in Section [Updating a Subscription](../../05_smr_operation/05_managing_subscription/03_updating_subscription/#updating_subscription). After making the changes as previously described, click the `Refresh` button of the xDB Replication Console. The replication tree of the xDB Replication Console should display the complete set of nodes for the replication systems. diff --git a/product_docs/docs/eprs/6.2/10_appendix/02_upgrading_to_xdb6_2/index.mdx b/product_docs/docs/eprs/6.2/10_appendix/02_upgrading_to_xdb6_2/index.mdx index c0645b29908..e724537a406 100644 --- a/product_docs/docs/eprs/6.2/10_appendix/02_upgrading_to_xdb6_2/index.mdx +++ b/product_docs/docs/eprs/6.2/10_appendix/02_upgrading_to_xdb6_2/index.mdx @@ -4,7 +4,6 @@ title: "Upgrading to xDB Replication Server 6.2" - This section describes the process of installing xDB Replication Server 6.2 when you have existing single-master or multi-master replication systems that are running under xDB Replication Server version 6.1.x or 6.0.x. It is assumed that you will be installing xDB Replication Server 6.2 on the same host machine that is currently running xDB Replication Server 6.1.x or 6.0.x, and that you will then manage the existing replication systems using xDB Replication Server 6.2. @@ -21,6 +20,6 @@ The following sections illustrate the upgrade process from xDB Replication Serve
      -permitted\_conf\_and\_permutations upgrading\_with\_gui\_installer upgrading\_with\_xdb\_rpm\_package updating\_sub\_and\_pub\_ports +permitted_conf_and_permutations upgrading_with_gui_installer upgrading_with_xdb_rpm_package updating_sub_and_pub_ports
      diff --git a/product_docs/docs/eprs/6.2/10_appendix/03_resolving_problems/01_error_messages.mdx b/product_docs/docs/eprs/6.2/10_appendix/03_resolving_problems/01_error_messages.mdx index 610bc7ff7a0..f3931347da2 100644 --- a/product_docs/docs/eprs/6.2/10_appendix/03_resolving_problems/01_error_messages.mdx +++ b/product_docs/docs/eprs/6.2/10_appendix/03_resolving_problems/01_error_messages.mdx @@ -4,10 +4,9 @@ title: "Error Messages" - The following section lists of certain error messages that can appear from the xDB Replication Console. The messages are listed in alphabetical order based on the first word in the message following `a, an,` or `the`. -When an error message is displayed by the xDB Replication Console, it may be followed by a specific reason as denoted by Reason: reason\_for\_failure as in the following example: +When an error message is displayed by the xDB Replication Console, it may be followed by a specific reason as denoted by Reason: reason_for_failure as in the following example: `Authentication failed. Reason: Invalid user name/password.` @@ -23,7 +22,7 @@ This table also lists only the messages that typically involve initial configura **Resolution** -Occurs when registering a publication server or subscription server. Verify the user name and password you enter matches the admin user name and password in the xDB Replication Configuration file on the host you are running the publication server or subscription server. See [xDB Replication Configuration File](../../02_overview/03_replication_server_components_and_architecture/#xdb_replication_conf_file). +Occurs when registering a publication server or subscription server. Verify the user name and password you enter matches the admin user name and password in the xDB Replication Configuration file on the host you are running the publication server or subscription server. See [xDB Replication Configuration File](../../02_overview/03_replication_server_components_and_architecture/01_physical_components/#xdb_replication_conf_file). **Problem** @@ -39,7 +38,7 @@ Only one publication database definition can be created for any given database. **Resolution** -Occurs whenever a Java RMI connection cannot be made to the publication server, the subscription server, or a database server. Can occur when registering a publication or subscription server, adding a publication database or a subscription database, or identifying the publication server for a new subscription. Verify you have entered the correct host IP address and port number of the server. Verify the server is running (see [Starting the Publication Server or Subscription Server](../../10_appendix/03_resolving_problems/#start_pub_or_sub_server)). If the server is running on Linux, verify that in the `/etc/hosts` file, the host name is mapped to the correct network IP address, which matches the IP address returned by the Linux `/sbin/ifconfig` command, and also matches the IP address you entered in the Host field of the dialog box. Alternatively, instead of modifying the /etc/hosts file, set configuration option `java.rmi.server.hostname` to the IP address of the publication or subscription server (see ref:Assigning an IP Address for Remote Method Invocation <assign\_ip\_adress\_for rmi>). Do not use the loopback address `127.\ *x*.\ *x*.\ *x*` for this entry. +Occurs whenever a Java RMI connection cannot be made to the publication server, the subscription server, or a database server. Can occur when registering a publication or subscription server, adding a publication database or a subscription database, or identifying the publication server for a new subscription. Verify you have entered the correct host IP address and port number of the server. Verify the server is running (see [Starting the Publication Server or Subscription Server](04_troubleshooting_areas/#start_pub_or_sub_server)). If the server is running on Linux, verify that in the `/etc/hosts` file, the host name is mapped to the correct network IP address, which matches the IP address returned by the Linux `/sbin/ifconfig` command, and also matches the IP address you entered in the Host field of the dialog box. Alternatively, instead of modifying the /etc/hosts file, set configuration option `java.rmi.server.hostname` to the IP address of the publication or subscription server (see ref:Assigning an IP Address for Remote Method Invocation <assign_ip_adress_for rmi>). Do not use the loopback address `127.\ *x*.\ *x*.\ *x*` for this entry. **Problem** @@ -55,7 +54,7 @@ Occurs when attempting to save a publication database definition. The publicatio **Resolution** -Occurs when attempting a snapshot replication from a publication database configured with the log-based method of synchronization replication (that is, WAL based logical replication), and the additional concurrent connection for logical replication exceeds the current setting, *n*, of the max\_wal\_senders configuration parameter in the postgresql.conf file. Increase the value of max\_wal\_senders in the postgresql.conf file of the database server running the publication database. Restart the database server containing the publication database. See [Synchronization Replication with the Log-Based Method](../../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#sync_replication_log_based). +Occurs when attempting a snapshot replication from a publication database configured with the log-based method of synchronization replication (that is, WAL based logical replication), and the additional concurrent connection for logical replication exceeds the current setting, *n*, of the max_wal_senders configuration parameter in the postgresql.conf file. Increase the value of max_wal_senders in the postgresql.conf file of the database server running the publication database. Restart the database server containing the publication database. See [Synchronization Replication with the Log-Based Method](../../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#sync_replication_log_based). **Problem** @@ -71,7 +70,7 @@ Occurs when attempting to create a subscription. If there are no publications in **Resolution** -The metadata database objects from a prior publication already exist in the schema under which the publication server is attempting to create new metadata database objects. Perform the operation described in Section [Deleting the Control Schema and Control Schema Objects](#del_control_schema_and%20objects). +The metadata database objects from a prior publication already exist in the schema under which the publication server is attempting to create new metadata database objects. Perform the operation described in Section [Deleting the Control Schema and Control Schema Objects](04_troubleshooting_areas/#del_control_schema_and%20objects). **Problem** @@ -79,7 +78,7 @@ The metadata database objects from a prior publication already exist in the sche **Resolution** -Make sure all publications subordinate to the publication database definition have been removed. If no publications appear under the Publication Database node in the xDB Replication Console replication tree and the error persists, there may be a problem with the control schema objects. Perform the operation described in Section [Deleting the Control Schema and Control Schema Objects](#del_control_schema_and%20objects). +Make sure all publications subordinate to the publication database definition have been removed. If no publications appear under the Publication Database node in the xDB Replication Console replication tree and the error persists, there may be a problem with the control schema objects. Perform the operation described in Section [Deleting the Control Schema and Control Schema Objects](04_troubleshooting_areas/#del_control_schema_and%20objects). **Problem** @@ -87,7 +86,7 @@ Database cannot be removed. Reason: Publication service failed to clean up repli **Resolution** -The control schema objects under the Oracle publication database user schema or under the Postgres or SQL Server schemas `\_edb_replicator_pub, \_edb_replicator_sub,` or `\_edb_scheduler` cannot be deleted by the publication server. The control schema objects or schemas may have already been deleted. The publication database definition cannot be removed using the xDB Replication Console. Perform the operation described in Section [Deleting the Control Schema and Control Schema Objects](#del_control_schema_and%20objects). +The control schema objects under the Oracle publication database user schema or under the Postgres or SQL Server schemas `\_edb_replicator_pub, \_edb_replicator_sub,` or `\_edb_scheduler` cannot be deleted by the publication server. The control schema objects or schemas may have already been deleted. The publication database definition cannot be removed using the xDB Replication Console. Perform the operation described in Section [Deleting the Control Schema and Control Schema Objects](04_troubleshooting_areas/#del_control_schema_and%20objects). **Problem** @@ -95,7 +94,7 @@ The control schema objects under the Oracle publication database user schema or **Resolution** -Occurs when attempting to remove the publication database currently set as the controller database. Select another publication database to be used as the controller database. Use the Set As Controller option in the publication databases’ context menu to set this database as the controller database. You can then remove the original publication database. See [Switching the Controller Database](../../07_common_operations/#switching_controller_db). +Occurs when attempting to remove the publication database currently set as the controller database. Select another publication database to be used as the controller database. Use the Set As Controller option in the publication databases’ context menu to set this database as the controller database. You can then remove the original publication database. See [Switching the Controller Database](../../07_common_operations/07_switching_controller_db/#switching_controller_db). **Problem** @@ -127,7 +126,7 @@ Occurs when attempting to save a subscription database definition. The subscript **Resolution** -Occurs when attempting to add a subscription database. Verify that the xDB Replication Configuration file on the host running the subscription server contains an entry for a valid controller database. Verify that a publication database has been defined under the publication server as the controller database and its connection information is recorded in the xDB Replication Configuration file. See [xDB Replication Configuration File](../../02_overview/03_replication_server_components_and_architecture/#xdb_replication_conf_file). +Occurs when attempting to add a subscription database. Verify that the xDB Replication Configuration file on the host running the subscription server contains an entry for a valid controller database. Verify that a publication database has been defined under the publication server as the controller database and its connection information is recorded in the xDB Replication Configuration file. See [xDB Replication Configuration File](../../02_overview/03_replication_server_components_and_architecture/01_physical_components/#xdb_replication_conf_file). **Problem** @@ -135,7 +134,7 @@ The database type for the selected database is different than that of the PDN da **Resolution** -All database servers in a multi-master replication system must be of the same type – either all PostgreSQL (or Advanced Server installed in PostgreSQL compatible configuration mode); or all Advanced Server installed in Oracle compatible configuration mode. This error message is displayed when attempting to add a primary node and the database server type differs from the database server type of the primary definition node. See [Permitted MMR Database Server Configurations](../../10_appendix/02_upgrading_to_xdb6_2/#permitted_mmr_db_server_conf). +All database servers in a multi-master replication system must be of the same type – either all PostgreSQL (or Advanced Server installed in PostgreSQL compatible configuration mode); or all Advanced Server installed in Oracle compatible configuration mode. This error message is displayed when attempting to add a primary node and the database server type differs from the database server type of the primary definition node. See [Permitted MMR Database Server Configurations](../02_upgrading_to_xdb6_2/01_permitted_conf_and_permutations/#permitted_mmr_db_server_conf). **Problem** @@ -143,7 +142,7 @@ All database servers in a multi-master replication system must be of the same ty **Resolution** -When a primary node of a multi-master replication system is deleted using the xDB Replication Console or the xDB Replication Server CLI, the control schema objects that were created in the primary node are also dropped. These include schemas `\_edb_replicator_pub, \_edb_replicator_sub,` and `\_edb_scheduler`. For the log-based method of synchronization replication there are shadow tables and triggers on the publication tables as well. If any of these control schema objects fail to be dropped, this error message is displayed. See [Dropping Replication Slots for Log-Based Synchronization Replication](../../10_appendix/03_resolving_problems/#drop_replication_slots_for_log_based) for directions on how to remove these control schema objects. +When a primary node of a multi-master replication system is deleted using the xDB Replication Console or the xDB Replication Server CLI, the control schema objects that were created in the primary node are also dropped. These include schemas `\_edb_replicator_pub, \_edb_replicator_sub,` and `\_edb_scheduler`. For the log-based method of synchronization replication there are shadow tables and triggers on the publication tables as well. If any of these control schema objects fail to be dropped, this error message is displayed. See [Dropping Replication Slots for Log-Based Synchronization Replication](04_troubleshooting_areas/#drop_replication_slots_for_log_based) for directions on how to remove these control schema objects. **Problem** @@ -199,7 +198,7 @@ Either the user does not have the trigger creation privilege or there is a datab **Resolution** -A database server of type *database\_type* cannot be used in a multi-master replication system. Only Advanced Server or PostgreSQL database servers may be used as primary nodes in a multi-master replication system. +A database server of type *database_type* cannot be used in a multi-master replication system. Only Advanced Server or PostgreSQL database servers may be used as primary nodes in a multi-master replication system. **Problem** @@ -223,7 +222,7 @@ Occurs when creating an Oracle publication or subscription database definition. **Resolution** -Occurs when attempting to add a second primary node to a multi-master replication system, but no publication has been defined under the primary definition node. Create a publication under the primary definition node, then add the additional primary nodes. See [Adding a Publication](../../06_mmr_operation/#add_pub_mmr). +Occurs when attempting to add a second primary node to a multi-master replication system, but no publication has been defined under the primary definition node. Create a publication under the primary definition node, then add the additional primary nodes. See [Adding a Publication](../../06_mmr_operation/02_creating_publication_mmr/#add_pub_mmr). **Problem** @@ -231,7 +230,7 @@ Occurs when attempting to add a second primary node to a multi-master replicatio **Resolution** -Synchronization replication failed due to the unavailability of a target database. See the publication server log file for details. See [Where to Look for Errors](../../10_appendix/03_resolving_problems/#where_to_look_for_errors). +Synchronization replication failed due to the unavailability of a target database. See the publication server log file for details. See [Where to Look for Errors](02_where_to_look_for_errors/#where_to_look_for_errors). **Problem** @@ -271,7 +270,7 @@ You cannot perform synchronization replication on a snapshot-only publication. P **Resolution** -Occurs when creating an Oracle or SQL Server publication database definition and the current controller database is not a Postgres database (that is, the controller database is an Oracle or SQL Server database). In order to create an Oracle or SQL Server publication database, create and designate a Postgres publication database as the controller database. See [Switching the Controller Database](../../07_common_operations/#switching_controller_db). +Occurs when creating an Oracle or SQL Server publication database definition and the current controller database is not a Postgres database (that is, the controller database is an Oracle or SQL Server database). In order to create an Oracle or SQL Server publication database, create and designate a Postgres publication database as the controller database. See [Switching the Controller Database](../../07_common_operations/07_switching_controller_db/#switching_controller_db). **Problem** @@ -319,7 +318,7 @@ Publication names must be unique within a publication server. Enter a different **Resolution** -Occurs when a table filter is attempted to be defined on a publication table used in a log-based replication system. Use the ALTER TABLE statement to change REPLICA IDENTITY to FULL. See [Table Settings and Restrictions for Table Filters](../../02_overview/02_replication_concepts_and_definitions/#table_settings_and_restrictions_for_table_filters). +Occurs when a table filter is attempted to be defined on a publication table used in a log-based replication system. Use the ALTER TABLE statement to change REPLICA IDENTITY to FULL. See [Table Settings and Restrictions for Table Filters](../../02_overview/02_replication_concepts_and_definitions/13_table_filters/#table_settings_and_restrictions_for_table_filters). **Problem** @@ -379,7 +378,7 @@ Remove the subscription, remove tables from the publication, then add the subscr **Resolution** -Occurs when attempting to create the publication database definition and the specified publication database user does not have the privilege to create a schema in database *db\_name*. Grant the `CREATE` privilege on the database to the publication database user +Occurs when attempting to create the publication database definition and the specified publication database user does not have the privilege to create a schema in database *db_name*. Grant the `CREATE` privilege on the database to the publication database user **Problem** @@ -387,7 +386,7 @@ Occurs when attempting to create the publication database definition and the spe **Resolution** -Verify that the publication server is running. See [Starting the Publication Server or Subscription Server](../../10_appendix/03_resolving_problems/#start_pub_or_sub_server). Verify that the database server hosting the controller database specified in the xDB Replication Configuration file is running and the publication server is connected to it. See [xDB Replication Configuration File](../../02_overview/03_replication_server_components_and_architecture/#xdb_replication_conf_file). +Verify that the publication server is running. See [Starting the Publication Server or Subscription Server](04_troubleshooting_areas/#start_pub_or_sub_server). Verify that the database server hosting the controller database specified in the xDB Replication Configuration file is running and the publication server is connected to it. See [xDB Replication Configuration File](../../02_overview/03_replication_server_components_and_architecture/01_physical_components/#xdb_replication_conf_file). **Problem** @@ -395,13 +394,13 @@ Verify that the publication server is running. See [Starting the Publication Ser **Resolution** -May be caused by characters in the publication data that are illegal for the character set of the subscription database. Check the snapshot replication failure log file or the database server log file. See [10.4.1.2 Replacing Null Characters](../../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/#replacing_null_characters). +May be caused by characters in the publication data that are illegal for the character set of the subscription database. Check the snapshot replication failure log file or the database server log file. See [10.4.1.2 Replacing Null Characters](../04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/02_replacing_null_characters/#replacing_null_characters). **Problem** `Replication server does not support Oracle to Oracle replication.` -**Resolution** See [Permitted Configurations and Combinations](../../10_appendix/02_upgrading_to_xdb6_2/#permitted_conf_and_permutations) for supported database server configurations. Use Oracle products for Oracle to Oracle replication. +**Resolution** See [Permitted Configurations and Combinations](../02_upgrading_to_xdb6_2/01_permitted_conf_and_permutations/#permitted_conf_and_permutations) for supported database server configurations. Use Oracle products for Oracle to Oracle replication. **Problem** @@ -409,7 +408,7 @@ May be caused by characters in the publication data that are illegal for the cha **Resolution** -Occurs when attempting to add a publication database definition with the log-based method of synchronization replication, and the max\_replication\_slots configuration parameter in the `postgresql.conf` file is not set to a large enough value to accommodate the additional database. Increase the value of the max\_replication\_slots parameter and restart the database server. See [Synchronization Replication with the Log-Based Method](../../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#sync_replication_log_based) for additional information. +Occurs when attempting to add a publication database definition with the log-based method of synchronization replication, and the max_replication_slots configuration parameter in the `postgresql.conf` file is not set to a large enough value to accommodate the additional database. Increase the value of the max_replication_slots parameter and restart the database server. See [Synchronization Replication with the Log-Based Method](../../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#sync_replication_log_based) for additional information. **Problem** @@ -435,13 +434,13 @@ Occurs when attempting to add a publication database definition with the log-bas `Subscription Service connection failure.` -**Resolution** Verify that the subscription server is running. See [Starting the Publication Server or Subscription Server](../../10_appendix/03_resolving_problems/#start_pub_or_sub_server) +**Resolution** Verify that the subscription server is running. See [Starting the Publication Server or Subscription Server](04_troubleshooting_areas/#start_pub_or_sub_server) **Problem** `Synchronize Publication process failed for one or more primary nodes. Please see logs for more details.` -**Resolution** Synchronization replication failed to complete for all target databases in the multi-master replication system due to the unavailability of some target database. See the publication server log file for details. See [Where to Look for Errors](../../10_appendix/03_resolving_problems/#where_to_look_for_errors). A table with large object type PK attribute cannot be published for (synchronize) incremental replication. +**Resolution** Synchronization replication failed to complete for all target databases in the multi-master replication system due to the unavailability of some target database. See the publication server log file for details. See [Where to Look for Errors](02_where_to_look_for_errors/#where_to_look_for_errors). A table with large object type PK attribute cannot be published for (synchronize) incremental replication. **Resolution** Oracle doesn’t log changes for a large object column. Such a column cannot be referenced in the triggers that log changes to the shadow tables. Use snapshot-only replication instead. @@ -487,7 +486,7 @@ Occurs when testing the connection of a publication or subscription database def **Resolution** -Occurs when attempting to add a publication database definition with the log-based method of synchronization replication (that is, WAL based logical replication), and there is no entry in the `pg_hba.conf` file where the DATABASE field is set to replication for *user\_name*. The `pg_hba.conf` file of the target database server must contain a replication entry for the publication database user name specified when creating the publication database definition. See [Synchronization Replication with the Log-Based Method](../../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#sync_replication_log_based). +Occurs when attempting to add a publication database definition with the log-based method of synchronization replication (that is, WAL based logical replication), and there is no entry in the `pg_hba.conf` file where the DATABASE field is set to replication for *user_name*. The `pg_hba.conf` file of the target database server must contain a replication entry for the publication database user name specified when creating the publication database definition. See [Synchronization Replication with the Log-Based Method](../../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#sync_replication_log_based). **Problem** @@ -495,7 +494,7 @@ Occurs when attempting to add a publication database definition with the log-bas `The target database server cannot be registered for WAL based logical replication. Reason: The database server is not configured for logical replication. Reason: FATAL: number of requested standby connections exceeds max_wal_senders (currently *n*)` -**Resolution** Occurs when attempting to add a publication database definition with the log-based method of synchronization replication (that is, WAL based logical replication), and the additional concurrent connection for logical replication exceeds the current setting, *n*, of the `max_wal_senders` configuration parameter in the `postgresql.conf` file. Increase the value of max\_wal\_senders in the `postgresql.conf` file of the database server running the publication database. Restart the database server containing the publication database. See [Synchronization Replication with the Log-Based Method](../../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#sync_replication_log_based). Test result: Failure +**Resolution** Occurs when attempting to add a publication database definition with the log-based method of synchronization replication (that is, WAL based logical replication), and the additional concurrent connection for logical replication exceeds the current setting, *n*, of the `max_wal_senders` configuration parameter in the `postgresql.conf` file. Increase the value of max_wal_senders in the `postgresql.conf` file of the database server running the publication database. Restart the database server containing the publication database. See [Synchronization Replication with the Log-Based Method](../../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#sync_replication_log_based). Test result: Failure The target database server cannot be registered for WAL based logical replication. Reason: The target database server version *x*.*x* does not support WAL logical decoding. @@ -507,7 +506,7 @@ Occurs when attempting to create a publication database definition with the log- `Unable to apply DDL changes.` -**Resolution** The DDL statements in the text file specified for the DDL change replication feature contain syntax errors or are not supported by the DDL change replication feature. See ref:Replicating DDL Changes <replicating\_ddl\_changes>. +**Resolution** The DDL statements in the text file specified for the DDL change replication feature contain syntax errors or are not supported by the DDL change replication feature. See ref:Replicating DDL Changes <replicating_ddl_changes>. **Problem** @@ -527,7 +526,7 @@ Occurs when attempting an operation such as performing synchronization replicati `DB-42501: com.edb.util.PSQLException: ERROR: permission denied for relation pg_class.` -**Resolution** Occurs when attempting to create an MMR publication database definition and the publication server is unable to create the control schema objects in the new publication database. This typically results when creating a second publication database definition and the publication server is unable to copy by snapshot the control schema objects from the controller database to the new publication database. The publication database user of the new publication database must be a superuser. In addition, in system catalog table pg\_catalog.pg\_authid, column rolcatupdate must be set to true for this superuser. See [Disabling Foreign Key Constraints for Snapshot Replications](../../10_appendix/04_miscellaneous_xdb_processing_topics/#disable_foreign_key_constraints_for_snapshot_replication). +**Resolution** Occurs when attempting to create an MMR publication database definition and the publication server is unable to create the control schema objects in the new publication database. This typically results when creating a second publication database definition and the publication server is unable to copy by snapshot the control schema objects from the controller database to the new publication database. The publication database user of the new publication database must be a superuser. In addition, in system catalog table pg_catalog.pg_authid, column rolcatupdate must be set to true for this superuser. See [Disabling Foreign Key Constraints for Snapshot Replications](../04_miscellaneous_xdb_processing_topics/04_disable_foreign_key_constraints_for_snapshot_replication/#disable_foreign_key_constraints_for_snapshot_replication). **Problem** @@ -551,7 +550,7 @@ Occurs when creating a subscription. The subscription server running on host *xx **Resolution** -The subscription database type is not supported for the intended publication database type. See [Permitted SMR Source and Target Configurations](../../10_appendix/02_upgrading_to_xdb6_2/#permitted_smr_source_and_target_conf) for a list of permitted source and target database server configurations. +The subscription database type is not supported for the intended publication database type. See [Permitted SMR Source and Target Configurations](../02_upgrading_to_xdb6_2/01_permitted_conf_and_permutations/#permitted_smr_source_and_target_conf) for a list of permitted source and target database server configurations. **Problem** @@ -563,9 +562,9 @@ Unable to create publication shadow tables. Unable to create subscription schema tables. -DB-42501: com.edb.util.PSQLException: ERROR: permission denied for relation pg\_class. +DB-42501: com.edb.util.PSQLException: ERROR: permission denied for relation pg_class. -**Resolution** Occurs when attempting to create an SMR publication database definition and the publication server is unable to create the control schema objects in the new publication database. This typically results when creating a second publication database definition and the publication server is unable to copy by snapshot the control schema objects from the controller database to the new publication database. The publication database user of the new publication database must be a superuser. In addition, in system catalog table pg\_catalog.pg\_authid, column rolcatupdate must be set to true for this superuser. See Section 10.4.4. +**Resolution** Occurs when attempting to create an SMR publication database definition and the publication server is unable to create the control schema objects in the new publication database. This typically results when creating a second publication database definition and the publication server is unable to copy by snapshot the control schema objects from the controller database to the new publication database. The publication database user of the new publication database must be a superuser. In addition, in system catalog table pg_catalog.pg_authid, column rolcatupdate must be set to true for this superuser. See Section 10.4.4. **Problem** @@ -573,19 +572,19 @@ DB-42501: com.edb.util.PSQLException: ERROR: permission denied for relation pg\_ **Resolution** -Occurs when attempting a snapshot replication. The database user of the database receiving the snapshot must be a superuser. In addition, in system catalog table pg\_catalog.pg\_authid, column rolcatupdate must be set to true for this superuser. See [Disabling Foreign Key Constraints for Snapshot Replications](../../10_appendix/04_miscellaneous_xdb_processing_topics/#disable_foreign_key_constraints_for_snapshot_replication). +Occurs when attempting a snapshot replication. The database user of the database receiving the snapshot must be a superuser. In addition, in system catalog table pg_catalog.pg_authid, column rolcatupdate must be set to true for this superuser. See [Disabling Foreign Key Constraints for Snapshot Replications](../04_miscellaneous_xdb_processing_topics/04_disable_foreign_key_constraints_for_snapshot_replication/#disable_foreign_key_constraints_for_snapshot_replication). **Problem** `Unable to perform snapshot for subscription *subscription_name*. Reason: org.postgresql.util.PSQLException: FATAL: no pg_hba.conf entry for host "*xxx*.\ *xxx*.\ *xx*.\ *xxx*", user "*user_name*", database "*db_name*", SSL off` -**Resolution** Occurs when attempting a snapshot replication. The publication server running on host *xxx*.*xxx*.*xx*.*xxx* could not access the subscription database. Verify that the `pg_hba.conf` file on the subscription database server permits access from the publication server host. Unable to synchronize. Reason: FATAL: no `pg_hba.conf` entry for host "*xxx*.*xxx*.*xx*.*xxx*", user "*user\_name*", database "*db\_name*", SSL off +**Resolution** Occurs when attempting a snapshot replication. The publication server running on host *xxx*.*xxx*.*xx*.*xxx* could not access the subscription database. Verify that the `pg_hba.conf` file on the subscription database server permits access from the publication server host. Unable to synchronize. Reason: FATAL: no `pg_hba.conf` entry for host "*xxx*.*xxx*.*xx*.*xxx*", user "*user_name*", database "*db_name*", SSL off *Reason:* Occurs during an implicit synchronization following snapshot replication. The publication server running on host *xxx*.*xxx*.*xx*.*xxx* could not access the subscription server’s controller database. Verify that the `pg_hba.conf` file on the subscription server permits access from the publication server host using network address *xxx*.*xxx*.*xx*.*xxx*. Unable to update publication database information. Reason: Publication control schema does not exist on target database. **Resolution** -The control schema objects in the publication database may have been deleted or corrupted. For an Oracle publication database the control schema objects are located in the publication database user’s schema. For a Postgres or SQL Server publication database the metadata database objects are located in schemas `\_edb_replicator_pub, \_edb_replicator_sub,` and `\_edb_scheduler`. See [Dropping Replication Slots for Log-Based Synchronization Replication](../../10_appendix/03_resolving_problems/#drop_replication_slots_for_log_based). +The control schema objects in the publication database may have been deleted or corrupted. For an Oracle publication database the control schema objects are located in the publication database user’s schema. For a Postgres or SQL Server publication database the metadata database objects are located in schemas `\_edb_replicator_pub, \_edb_replicator_sub,` and `\_edb_scheduler`. See [Dropping Replication Slots for Log-Based Synchronization Replication](04_troubleshooting_areas/#drop_replication_slots_for_log_based). **Problem** diff --git a/product_docs/docs/eprs/6.2/10_appendix/03_resolving_problems/02_where_to_look_for_errors.mdx b/product_docs/docs/eprs/6.2/10_appendix/03_resolving_problems/02_where_to_look_for_errors.mdx index b075dfde3c5..1a05857597c 100644 --- a/product_docs/docs/eprs/6.2/10_appendix/03_resolving_problems/02_where_to_look_for_errors.mdx +++ b/product_docs/docs/eprs/6.2/10_appendix/03_resolving_problems/02_where_to_look_for_errors.mdx @@ -4,12 +4,11 @@ title: "Where to Look for Errors" - There are a number of places to look to find more detailed information about a replication error that may have occurred. This section provides a guide as to where to look for various types of errors. ## General Replication Status -In the xDB Replication Console, view the replication history. See [Viewing Replication History](../../07_common_operations/#view_replication_history). +In the xDB Replication Console, view the replication history. See [Viewing Replication History](../../07_common_operations/04_view_replication_history/#view_replication_history). @@ -25,9 +24,9 @@ View the log file found in the following path: `POSTGRES_HOME\.enterprisedb\xdb\x.x\mtk.log` -`POSTGRES_HOME` is the home directory of the Windows postgres account (enterprisedb account for Advanced Server installed in Oracle compatible configuration mode). The specific location of POSTGRES\_HOME is dependent upon your version of Windows. The xDB Replication Server version number is represented by x.x. +`POSTGRES_HOME` is the home directory of the Windows postgres account (enterprisedb account for Advanced Server installed in Oracle compatible configuration mode). The specific location of POSTGRES_HOME is dependent upon your version of Windows. The xDB Replication Server version number is represented by x.x. -See Controlling Logging Level, Log File Sizes, and Rotation Count <controlling\_logging\_level> for more information on setting log file options. +See Controlling Logging Level, Log File Sizes, and Rotation Count <controlling_logging_level> for more information on setting log file options. ## Synchronization Replication Failures @@ -51,41 +50,23 @@ View the publication server and subscription server log files `pubserver.log[.n] `POSTGRES_HOME\.enterprisedb\xdb\x.x` -\[.n\] is an optional, integer suffix whose presence depends upon the logging.file.count configuration option described in Section 10.4.1.1. - -`POSTGRES_HOME` is the home directory of the Windows postgres account (enterprisedb account for Advanced Server installed in Oracle compatible configuration mode). The specific location of POSTGRES\_HOME is dependent upon your version of Windows. The xDB Replication Server version number is represented by x.x. - -
      - -
      - -Note - -
      - -The severity level of messages logged in these files can be controlled by a configuration option. See Controlling Logging Level, Log File Sizes, and Rotation Count <controlling\_logging\_level>. - -
      - -**For Linux only:** View the publication service and subscription service startup log files `edb-xdbpubserver.log` and `edb-xdbsubserver.log` as well as the service script log files edb-xdbpubserver\_script.log and edb-xdbsubserver\_script.log in directories /var/log/edb/xdbpubserver and /var/log/edb/xdbsubserver. These log files contain the output from the scripts used to start the publication server and subscription server, and can typically be used to confirm the port number on which the publication and subscription servers were started. - -
      - -
      +\[.n] is an optional, integer suffix whose presence depends upon the logging.file.count configuration option described in Section 10.4.1.1. -Note +`POSTGRES_HOME` is the home directory of the Windows postgres account (enterprisedb account for Advanced Server installed in Oracle compatible configuration mode). The specific location of POSTGRES_HOME is dependent upon your version of Windows. The xDB Replication Server version number is represented by x.x. -
      +!!! Note + The severity level of messages logged in these files can be controlled by a configuration option. See Controlling Logging Level, Log File Sizes, and Rotation Count <controlling_logging_level>. -The publication service and subscription service startup log files are not generated for Windows and Mac OS X operating systems. +**For Linux only:** View the publication service and subscription service startup log files `edb-xdbpubserver.log` and `edb-xdbsubserver.log` as well as the service script log files edb-xdbpubserver_script.log and edb-xdbsubserver_script.log in directories /var/log/edb/xdbpubserver and /var/log/edb/xdbsubserver. These log files contain the output from the scripts used to start the publication server and subscription server, and can typically be used to confirm the port number on which the publication and subscription servers were started. -
      +!!! Note + The publication service and subscription service startup log files are not generated for Windows and Mac OS X operating systems. If there is an entry for a controller database in the xDB Replication Configuration file, verify that this controller database is accessible with the designated connection information. The controller database parameters are host, port, type, user, and password. The following is an example of the content of an xDB Replication Configuration file with an Oracle database as the controller database: -``` text +```text #xDB Replication Server Configuration Properties #Tue May 26 13:45:37 GMT-05:00 2015 port=1521 @@ -98,7 +79,7 @@ database=xe host=192.168.2.23 ``` -See [xDB Replication Configuration File](../../02_overview/03_replication_server_components_and_architecture/#xdb_replication_conf_file) +See [xDB Replication Configuration File](../../02_overview/03_replication_server_components_and_architecture/01_physical_components/#xdb_replication_conf_file) for information on the xDB Replication Configuration file. Also check the database server log file of the controller database. @@ -115,7 +96,7 @@ The typical default location of these files is: For problems in Oracle, first find the directory locations of the log files by issuing the following commands in SQL\*Plus: -``` text +```text SQL> SHOW PARAMETER USER_DUMP_DEST; NAME TYPE VALUE @@ -126,7 +107,7 @@ user_dump_dest string /usr/lib/oracle/xe/app/oracle/ The directory given by parameter `USER_DUMP_DEST` contains errors given by user processes. -``` text +```text SQL> CONNECT system/password Connected. SQL> SHOW PARAMETER BACKGROUND_DUMP_DEST; diff --git a/product_docs/docs/eprs/6.2/10_appendix/03_resolving_problems/03_common_problems_checklist.mdx b/product_docs/docs/eprs/6.2/10_appendix/03_resolving_problems/03_common_problems_checklist.mdx index f73708e9243..e0b4894970c 100644 --- a/product_docs/docs/eprs/6.2/10_appendix/03_resolving_problems/03_common_problems_checklist.mdx +++ b/product_docs/docs/eprs/6.2/10_appendix/03_resolving_problems/03_common_problems_checklist.mdx @@ -4,24 +4,23 @@ title: "Common Problem Checklist" - Use the following checklist to verify that the proper configuration steps have been followed. Omission of one or more of these steps is a common source of errors. **Step 1:** Verify that the database server of the publication database, the database server of the subscription database (for single-master replication systems), and the database servers of the primary nodes (for multi-master replication systems) are all running. **Step 2:** When viewing information in the xDB Replication Console, click the Refresh icon in the toolbar to ensure you are viewing the most current information, especially after making a configuration change to your replication system. -**Step 3:** Verify that the publication server and the subscription server (for single-master replication systems) are running. If they are not running and cannot be started see [Starting the Publication Server or Subscription Server](../../10_appendix/03_resolving_problems/#start_pub_or_sub_server). +**Step 3:** Verify that the publication server and the subscription server (for single-master replication systems) are running. If they are not running and cannot be started see [Starting the Publication Server or Subscription Server](04_troubleshooting_areas/#start_pub_or_sub_server). **Step 4:** If you are using an Oracle publication or subscription database, verify that the Oracle JDBC driver file has been copied to the `XDB_HOME/lib/jdbc` directory. `XDB_HOME` is the location where you installed xDB Replication Server. -See [Enabling Access to Oracle](../../05_smr_operation/01_prerequisites/#enable_access_to_oracle). +See [Enabling Access to Oracle](../../05_smr_operation/01_prerequisites/03_enable_access_to_database/#enable_access_to_oracle). **Step 5:** Verify that the necessary privileges have been granted to the publication database user. For an Oracle publication database, verify that the publication database user has CONNECT, RESOURCE, and CREATE ANY TRIGGER privileges. -See [Oracle Publication Database](../../05_smr_operation/01_prerequisites/#oracle_pub_database). +See [Oracle Publication Database](../../05_smr_operation/01_prerequisites/04_preparing_pub_database/#oracle_pub_database). For a SQL Server publication database, verify the following: @@ -32,18 +31,18 @@ For a SQL Server publication database, verify the following: - For the same database user discussed in the prior paragraph, verify that this database user has ALTER privilege on the publication tables. - For any database user that will be updating the publication tables, verify that these database users have `EXECUTE, SELECT`, and `INSERT` privileges on the schema containing the xDB Replication Server metadata database objects. -See [SQL Server Publication Database](../../05_smr_operation/01_prerequisites/#sql_server_pub_db). +See [SQL Server Publication Database](../../05_smr_operation/01_prerequisites/04_preparing_pub_database/#sql_server_pub_db). -For a Postgres publication database in a single-master replication system, verify that the publication database user is a superuser and has the privilege to modify pg\_catalog tables. See [Postgres Publication Database](../../05_smr_operation/01_prerequisites/#postgres_pub_db). +For a Postgres publication database in a single-master replication system, verify that the publication database user is a superuser and has the privilege to modify pg_catalog tables. See [Postgres Publication Database](../../05_smr_operation/01_prerequisites/04_preparing_pub_database/#postgres_pub_db). -For the primary definition node in a multi-master replication system, verify that the publication database user is a superuser and has the privilege to modify pg\_catalog tables. See Section [Preparing the Primary definition node](../../06_mmr_operation/#prepare_pdn). +For the primary definition node in a multi-master replication system, verify that the publication database user is a superuser and has the privilege to modify pg_catalog tables. See Section [Preparing the Primary definition node](../../06_mmr_operation/01_pre_steps/#prepare_pdn). -For a primary node other than the primary definition node in a multi-master replication system, verify that the primary node database user is a superuser and has the privilege to modify pg\_catalog tables. See [Preparing Additional Primary nodes](../../06_mmr_operation/#prepare_add_pdn). +For a primary node other than the primary definition node in a multi-master replication system, verify that the primary node database user is a superuser and has the privilege to modify pg_catalog tables. See [Preparing Additional Primary nodes](../../06_mmr_operation/01_pre_steps/#prepare_add_pdn). **Step 6:** Verify that the necessary privileges have been granted to the subscription database user. For an Oracle subscription database, verify that the subscription database user has `CONNECT` and `RESOURCE` privileges. -For a Postgres subscription database, verify that the subscription database user is a superuser and has the privilege to modify pg\_catalog tables. See [Preparing the Subscription Database](../../05_smr_operation/01_prerequisites/#preparing_sub_database). +For a Postgres subscription database, verify that the subscription database user is a superuser and has the privilege to modify pg_catalog tables. See [Preparing the Subscription Database](../../05_smr_operation/01_prerequisites/05_preparing_sub_database/#preparing_sub_database). -**Step 7 (For Linux only):** Verify that the network IP address returned by the `/sbin/ifconfig` command either matches the IP address associated with the host name in the /etc/hosts file (see [Network IP Addresses](../../05_smr_operation/01_prerequisites/#network_ip)), or matches the IP address specified with the `java.rmi.server.hostname` configuration option in the publication and subscription server configuration files (see [Assigning an IP Address for Remote Method Invocation](../../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/#assign_ip_adress_for_rmi)). +**Step 7 (For Linux only):** Verify that the network IP address returned by the `/sbin/ifconfig` command either matches the IP address associated with the host name in the /etc/hosts file (see [Network IP Addresses](../../05_smr_operation/01_prerequisites/06_verifying_host_accessibility/#network_ip)), or matches the IP address specified with the `java.rmi.server.hostname` configuration option in the publication and subscription server configuration files (see [Assigning an IP Address for Remote Method Invocation](../04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/07_assign_ip_adress_for_rmi/#assign_ip_adress_for_rmi)). diff --git a/product_docs/docs/eprs/6.2/10_appendix/03_resolving_problems/04_troubleshooting_areas.mdx b/product_docs/docs/eprs/6.2/10_appendix/03_resolving_problems/04_troubleshooting_areas.mdx index 50a6d4a003d..bc69c0868d0 100644 --- a/product_docs/docs/eprs/6.2/10_appendix/03_resolving_problems/04_troubleshooting_areas.mdx +++ b/product_docs/docs/eprs/6.2/10_appendix/03_resolving_problems/04_troubleshooting_areas.mdx @@ -4,18 +4,17 @@ title: "Troubleshooting Areas" - The following topics provide information on specific problem areas you may encounter. ## Java Runtime Errors -If errors are encountered regarding the Java Runtime Environment such as the Java program cannot be found or Java heap space errors, check the parameters set in the xDB Startup Configuration file `xdbReplicationServer-xx.config`. See [xDB Replication Configuration File](../../02_overview/03_replication_server_components_and_architecture/#xdb_replication_conf_file) for information on the xDB Startup Configuration file. +If errors are encountered regarding the Java Runtime Environment such as the Java program cannot be found or Java heap space errors, check the parameters set in the xDB Startup Configuration file `xdbReplicationServer-xx.config`. See [xDB Replication Configuration File](../../02_overview/03_replication_server_components_and_architecture/01_physical_components/#xdb_replication_conf_file) for information on the xDB Startup Configuration file. The following is an example of the content of the xDB Startup Configuration file: -``` text +```text #!/bin/sh JAVA_EXECUTABLE_PATH="/usr/bin/java" @@ -32,17 +31,8 @@ If you make any changes to the parameters in the xDB Startup Configuration file, ## Starting the Publication Server or Subscription Server -
      - -
      - -Note - -
      - -The subscription server only applies to single-master replication systems. - -
      +!!! Note + The subscription server only applies to single-master replication systems. If you cannot start the publication server or the subscription server perform the following steps: @@ -80,9 +70,9 @@ In the preceding example, subscription database `subdb` contains a control schem The instructions in this section describe how to completely remove all control schema objects created by the xDB Replication Server product leaving just your original publication tables and any replicated subscription tables or publication tables of multi-master system nodes. Hence, the definition and framework for all existing single-master and multi-master replication systems are deleted. In effect, this simulates the situation when you have installed the xDB Replication Server product for the first time. -After you have performed this deletion process, single-master replication systems must then be recreated following the directions in sections [Creating a Publication](../../05_smr_operation/02_creating_publication/#creating_publication) onward. A multi-master replication system must be recreated following the directions in sections [Creating a Publication](../../05_smr_operation/02_creating_publication/../../06_mmr_operation/#creating_publication_mmr) onward. +After you have performed this deletion process, single-master replication systems must then be recreated following the directions in sections [Creating a Publication](../../05_smr_operation/02_creating_publication/#creating_publication) onward. A multi-master replication system must be recreated following the directions in sections [Creating a Publication](../../06_mmr_operation/02_creating_publication_mmr/#creating_publication_mmr) onward. -Warning: Do not attempt this if any replication systems are running in production. All replication systems will become inoperable. This section describes what to look for in order to tell if the control schema is not complete, and if so, what must be deleted to completely remove the replication system. This section does not discuss the internal contents of the control schema objects. If all of the control schema objects are present, then review the checklist in Section [Common Problem Checklist](../../10_appendix/03_resolving_problems/#common_problems_checklist) before proceeding with deletion of the control schema as it is fairly unlikely that the content of a control schema table becomes corrupted. +Warning: Do not attempt this if any replication systems are running in production. All replication systems will become inoperable. This section describes what to look for in order to tell if the control schema is not complete, and if so, what must be deleted to completely remove the replication system. This section does not discuss the internal contents of the control schema objects. If all of the control schema objects are present, then review the checklist in Section [Common Problem Checklist](03_common_problems_checklist/#common_problems_checklist) before proceeding with deletion of the control schema as it is fairly unlikely that the content of a control schema table becomes corrupted. If you decide that you must delete all of the control schema objects, follow the steps as discussed in the following: @@ -92,11 +82,11 @@ If you decide that you must delete all of the control schema objects, follow the **Step 3:** Look for the control schema objects contained within a publication database. In the example used in this section, pubuser is the publication database user name. The publication consists of two tables – dept and emp. -**For Oracle only:** See [Oracle Control Schema Objects](../../05_smr_operation/02_creating_publication/#ora_control_schema_objects) for a list of Oracle control schema objects. +**For Oracle only:** See [Oracle Control Schema Objects](../../05_smr_operation/02_creating_publication/04_control_schema_objects_created_for_publication/#ora_control_schema_objects) for a list of Oracle control schema objects. -**For SQL Server only:** See [SQL Control Schema Objects](../../05_smr_operation/02_creating_publication/#sql_control_schema_objects) for a list of SQL Server control schema objects. +**For SQL Server only:** See [SQL Control Schema Objects](../../05_smr_operation/02_creating_publication/04_control_schema_objects_created_for_publication/#sql_control_schema_objects) for a list of SQL Server control schema objects. -**For Postgres only:** See [PostgreSQL Control Schema Objects](../../05_smr_operation/02_creating_publication/#postgres_control_schema_objects) for a list of Postgres control schema objects. +**For Postgres only:** See [PostgreSQL Control Schema Objects](../../05_smr_operation/02_creating_publication/04_control_schema_objects_created_for_publication/#postgres_control_schema_objects) for a list of Postgres control schema objects. **Step 4:** If the schema that is supposed to contain the control schema objects (the publication database user name for Oracle, or the control schema you created or selected when configuring a SQL Server publication database along with `_edb_replicator_pub`, `_edb_replicator_sub`, and `_edb_scheduler`, or `_edb_replicator_pub, _edb_replicator_sub`, and `_edb_scheduler` for Postgres) is missing, or there are missing database objects under the control schema, then you may need to complete the process of removing all remaining control schema objects. @@ -104,7 +94,7 @@ If you decide to undergo this procedure, you must remove the control schema obje If the control schema objects look intact, repeat Step 3 for all other publication databases. If the control schema objects of all publication databases appear intact, then proceed with Step 5. -**Step 5:** For single-master replication systems, the subscription database contains a single control schema object in the form of a table named rrep\_txset\_health. See [Subscription Metadata Object](../../05_smr_operation/03_creating_subscription/#subscription_metadata_object) for a listing of this control schema object for each type of subscription database. +**Step 5:** For single-master replication systems, the subscription database contains a single control schema object in the form of a table named rrep_txset_health. See [Subscription Metadata Object](../../05_smr_operation/03_creating_subscription/04_subscription_metadata_object/#subscription_metadata_object) for a listing of this control schema object for each type of subscription database. For each subscription database, verify the presence of this subscription metadata object. @@ -116,7 +106,7 @@ If it was determined that incomplete control schema objects exist, and you decid **For Oracle only:** If the publication user name still exists, then log onto SQL\*Plus or any other Oracle database administration utility and drop all control schema objects owned by the publication user. Alternatively, you can drop the publication database user along with its database objects using the cascade option, but the publication database user must be recreated and privileges reassigned if you intend to rebuild your replication systems. See Section 5.1.4 for directions on creating the publication database user. The following example illustrates use of the cascade option: -``` text +```text SQL> CONNECT system/password Connected. SQL> DROP USER pubuser CASCADE; @@ -128,7 +118,7 @@ User dropped. The following example shows how to delete the jobs in the `msdb` database: -``` text +```text 1> USE msdb; 2> GO Changed database context to 'msdb'. @@ -151,7 +141,7 @@ Changed database context to 'edb'. The control schema objects under the `_edb_replicator_pub` schema are dropped as shown by the following: -``` text +```text 1> USE edb; 2> GO Changed database context to 'edb'. @@ -186,7 +176,7 @@ Changed database context to 'edb'. **For SQL Server 2008 only:** Drop the following control schema objects when the publication database is SQL Server 2008: -``` text +```text 1> USE edb; 2> GO Changed database context to 'edb'. @@ -201,7 +191,7 @@ Changed database context to 'edb'. **For SQL Server 2012, 2014 only:** Drop the following control schema objects when the publication database is SQL Server 2012 or 2014: -``` text +```text 1> USE edb; 2> GO Changed database context to 'edb'. @@ -213,44 +203,35 @@ Changed database context to 'edb'. Drop the `_edb_replicator_pub` control schema: -> 1> USE edb; 2> GO +> 1> USE edb; 2> GO > > Changed database context to `edb`. > -> 1> DROP SCHEMA \_edb\_replicator\_pub; 2> GO +> 1> DROP SCHEMA \_edb_replicator_pub; 2> GO The control schema objects under the`_edb_replicator_sub` schema as well as the schema itself are dropped as shown by the following. -
      - -
      - -Note +!!! Note + **(For SQL Server 2012, 2014):** When the publication database is SQL Server 2012 or 2014, the first table in the following list, `rrep_common_seq`, does not exist. Therefore do not issue the first `DROP TABLE` -
      - -**(For SQL Server 2012, 2014):** When the publication database is SQL Server 2012 or 2014, the first table in the following list, `rrep_common_seq`, does not exist. Therefore do not issue the first `DROP TABLE` - -`_edb_replicator_sub.rrep_common_seq` command. - -``` text -1> USE edb; -2> GO -Changed database context to 'edb'. -1> DROP TABLE _edb_replicator_sub.rrep_common_seq; -2> DROP TABLE _edb_replicator_sub.xdb_sub_database; -3> DROP TABLE _edb_replicator_sub.xdb_subscription_tables; -4> DROP TABLE _edb_replicator_sub.xdb_subscriptions; -5> DROP TABLE _edb_replicator_sub.xdb_tables; -6> DROP SCHEMA _edb_replicator_sub; -7> GO -``` + `_edb_replicator_sub.rrep_common_seq` command. -
      + ```text + 1> USE edb; + 2> GO + Changed database context to 'edb'. + 1> DROP TABLE _edb_replicator_sub.rrep_common_seq; + 2> DROP TABLE _edb_replicator_sub.xdb_sub_database; + 3> DROP TABLE _edb_replicator_sub.xdb_subscription_tables; + 4> DROP TABLE _edb_replicator_sub.xdb_subscriptions; + 5> DROP TABLE _edb_replicator_sub.xdb_tables; + 6> DROP SCHEMA _edb_replicator_sub; + 7> GO + ``` The control schema objects under the `_edb_scheduler` schema as well as the schema itself are dropped as shown by the following: -``` text +```text 1> USE edb; 2> GO Changed database context to 'edb'. @@ -284,7 +265,7 @@ Changed database context to 'edb'. The control schema objects under the `pubuser` schema are dropped as shown by the following: -``` text +```text 1> USE edb; 2> GO Changed database context to 'edb'. @@ -310,7 +291,7 @@ Changed database context to 'edb'. **For Postgres only:** If any of the schemas `_edb_replicator_pub, _edb_replicator_sub,` or`_edb_scheduler` still exist in the publication database, drop the schema and all of its database objects. The following example shows a connection established in psql to the publication database edb. The `DROP SCHEMA CASCADE` statement is then used to drop the schemas. -``` text +```text edb=# \c edb enterprisedb You are now connected to database "edb" as user "enterprisedb". @@ -344,7 +325,7 @@ DROP SCHEMA For synchronization replication with the trigger-based method, in the schema containing the publication tables, drop the triggers and trigger functions associated with the publication tables: -``` text +```text edb=# SET search_path TO edb; SET edb=# DROP FUNCTION rrpd_edb_dept_tgfunc() CASCADE; @@ -369,13 +350,13 @@ DROP FUNCTION **Step 8:** Repeat this step for every subscription database to delete its control schema and control schema object. -For single-master replication systems, the subscription database contains a single control schema object in the form of a table named rrep\_txset\_health. Delete this table in all subscription databases. For SQL Server and Postgres subscription databases, delete the parent schema \_edb\_replicator\_sub as well. +For single-master replication systems, the subscription database contains a single control schema object in the form of a table named rrep_txset_health. Delete this table in all subscription databases. For SQL Server and Postgres subscription databases, delete the parent schema \_edb_replicator_sub as well. For Oracle subscription databases, the parent schema is not generated by xDB Replication Server, so it your decision as to whether to keep or delete the parent schema. **For Oracle only:** The `RREP_TXSET_HEALTH` table is created in the subscription database user’s schema. Drop this table. -``` text +```text SQL> CONNECT subuser/password Connected. SQL> DROP TABLE rrep_txset_health; @@ -383,9 +364,9 @@ SQL> DROP TABLE rrep_txset_health; Table dropped. ``` -**For SQL Server only:** The `rrep_txset_health` table is created in the schema named \_edb\_replicator\_sub. Drop this table and schema. +**For SQL Server only:** The `rrep_txset_health` table is created in the schema named \_edb_replicator_sub. Drop this table and schema. -``` text +```text 1> USE subdb; 2> GO Changed database context to 'subdb'. @@ -397,7 +378,7 @@ Changed database context to 'subdb'. **For Postgres only:** The `rrep_txset_health` table is created in the schema named `_edb_replicator_sub`. Drop this table and schema. -``` text +```text edb=# \c subdb enterprisedb You are now connected to database "subdb" as user "enterprisedb". subdb=# DROP SCHEMA _edb_replicator_sub CASCADE; @@ -407,15 +388,15 @@ DROP SCHEMA **Step 9:** In the xDB Replication Configuration file, delete the lines containing the following parameters: user, password, host, port, database, and type. -Keep the lines with the following parameters: admin\_user, admin\_password, and license\_key (if it exists). +Keep the lines with the following parameters: admin_user, admin_password, and license_key (if it exists). -See [xDB Replication Configuration File](../../02_overview/03_replication_server_components_and_architecture/#xdb_replication_conf_file) for information on the xDB Replication Configuration file. See [Post Installation Host Environment](../../03_installation/#post_installation_host_environment) for the file system location of the xDB Replication Configuration file. +See [xDB Replication Configuration File](../../02_overview/03_replication_server_components_and_architecture/01_physical_components/#xdb_replication_conf_file) for information on the xDB Replication Configuration file. See [Post Installation Host Environment](../../03_installation/05_post_installation_host_environment/#post_installation_host_environment) for the file system location of the xDB Replication Configuration file. The absence of these parameters prevents the publication server and subscription server from attempting to connect to this database upon publication and subscription server startup. The xDB Replication Configuration file should appear as follows without the controller database connection and authentication information: -``` text +```text #xDB Replication Server Configuration Properties #Fri Jan 30 17:34:06 GMT-05:00 2015 admin_password=ygJ9AxoJEX854elcVIJPTw\=\= @@ -432,13 +413,13 @@ admin_user=enterprisedb All the nodes under the SMR and MMR type nodes beneath the Publication Server node, and under the Subscription Server node no longer appear. -**Step 13:** You will need to recreate the replication system as described in sections [Creating a Publication](../../05_smr_operation/02_creating_publication/#creating_publication) onward for a single-master replication system. See sections [Creating a Publication](../../05_smr_operation/02_creating_publication/../../06_mmr_operation/#creating_publication_mmr) onward for a multi-master replication system. +**Step 13:** You will need to recreate the replication system as described in sections [Creating a Publication](../../05_smr_operation/02_creating_publication/#creating_publication) onward for a single-master replication system. See sections [Creating a Publication](../../06_mmr_operation/02_creating_publication_mmr/#creating_publication_mmr) onward for a multi-master replication system. ## Dropping Replication Slots for Log-Based Synchronization Replication -As described in Section [Logical Replication Slots](../../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/#logical_replication_slots) logical replication slots are used for the log-based method of synchronization replication. While a log-based replication system is in use, these replication slots remain connected to the Postgres databases. When the replication system is removed, these replication slots are also deleted. +As described in Section [Logical Replication Slots](../../02_overview/02_replication_concepts_and_definitions/10_sync_replication_log_based/02_logical_replication_slots/#logical_replication_slots) logical replication slots are used for the log-based method of synchronization replication. While a log-based replication system is in use, these replication slots remain connected to the Postgres databases. When the replication system is removed, these replication slots are also deleted. There may be circumstances where it is desired to drop a Postgres database used in a replication system, but the replication system could not be removed according to the normal procedure of using the xDB Replication Console or the xDB Replication Server CLI. @@ -450,7 +431,7 @@ Warning: Do not attempt this if any replication systems are running in productio Replication slots can be displayed by the following query on the database server containing the databases to be dropped: -``` text +```text edb=# SELECT slot_name, slot_type, database, active, active_pid FROM pg_replication_slots; slot_name | slot_type | database | active | active_pid -------------+-----------+----------+--------+------------ @@ -463,7 +444,7 @@ The active column indicates whether or not the replication slot is active. To de If the replication slot is still active, then you can deactivate it by terminating the process shown in the `active_pid` column with the following command: -``` text +```text edb=# SELECT pg_terminate_backend(5327); pg_terminate_backend ---------------------- @@ -471,9 +452,9 @@ edb=# SELECT pg_terminate_backend(5327); (1 row) ``` -The following now shows that replication slot xdb\_79910\_5 for database MMRnode has been deactivated: +The following now shows that replication slot xdb_79910_5 for database MMRnode has been deactivated: -``` text +```text edb=# SELECT slot_name, slot_type, database, active, active_pid FROM pg_replication_slots; slot_name | slot_type | database | active | active_pid -------------+-----------+----------+--------+------------ @@ -484,7 +465,7 @@ edb=# SELECT slot_name, slot_type, database, active, active_pid FROM pg_replicat Drop the replication slot with the following command by specifying the slot name: -``` text +```text edb=# SELECT pg_drop_replication_slot('xdb_79910_5'); pg_drop_replication_slot -------------------------- @@ -492,9 +473,9 @@ edb=# SELECT pg_drop_replication_slot('xdb_79910_5'); (1 row) ``` -Now, the dropped replication slot does not appear when the pg\_replication\_slots directory is queried: +Now, the dropped replication slot does not appear when the pg_replication_slots directory is queried: -``` text +```text edb=# SELECT slot_name, slot_type, database, active, active_pid FROM pg_replication_slots; slot_name | slot_type | database | active | active_pid -------------+-----------+----------+--------+------------ @@ -504,14 +485,14 @@ edb=# SELECT slot_name, slot_type, database, active, active_pid FROM pg_replicat The database can now be successfully dropped: -``` text +```text edb=# DROP DATABASE MMRnode; DROP DATABASE ``` In addition, replication origins can be displayed with the following command: -``` text +```text edb=# SELECT * FROM pg_replication_origin; roident | roname ---------+----------------------- @@ -522,7 +503,7 @@ edb=# SELECT * FROM pg_replication_origin; The following command can be used to remove a replication origin: -``` text +```text edb=# SELECT pg_replication_origin_drop('xdb_MMRnode_emp_pub_1'); pg_replication_origin_drop ---------------------------- @@ -532,7 +513,7 @@ edb=# SELECT pg_replication_origin_drop('xdb_MMRnode_emp_pub_1'); The following shows this replication origin has been removed: -``` text +```text edb=# SELECT * FROM pg_replication_origin; roident | roname ---------+----------------------- @@ -544,4 +525,4 @@ For additional information on logical decoding functions see Section 9.26.6 `Rep > -After performing this process, it is unlikely that removal of the entire replication system can be done with the xDB Replication Console or the xDB Replication Server CLI. Complete removal of the remaining replication system components must be done manually. Part of this process is removing the control schema and control schema objects from the publication databases. See Section [Dropping Replication Slots for Log-Based Synchronization Replication](../../10_appendix/03_resolving_problems/#drop_replication_slots_for_log_based) for information on this procedure. +After performing this process, it is unlikely that removal of the entire replication system can be done with the xDB Replication Console or the xDB Replication Server CLI. Complete removal of the remaining replication system components must be done manually. Part of this process is removing the control schema and control schema objects from the publication databases. See Section [Dropping Replication Slots for Log-Based Synchronization Replication](#drop_replication_slots_for_log_based) for information on this procedure. diff --git a/product_docs/docs/eprs/6.2/10_appendix/03_resolving_problems/index.mdx b/product_docs/docs/eprs/6.2/10_appendix/03_resolving_problems/index.mdx index 3caceac4d5c..fb308e31ac5 100644 --- a/product_docs/docs/eprs/6.2/10_appendix/03_resolving_problems/index.mdx +++ b/product_docs/docs/eprs/6.2/10_appendix/03_resolving_problems/index.mdx @@ -4,11 +4,10 @@ title: "Resolving Problems" - This section contains tips for locating and correcting various problems that may occur.
      -error\_messages where\_to\_look\_for\_errors common\_problems\_checklist troubleshooting\_areas +error_messages where_to_look_for_errors common_problems_checklist troubleshooting_areas
      diff --git a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/01_controlling_logging_level.mdx b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/01_controlling_logging_level.mdx index 4861e0ac8b9..79adb05be35 100644 --- a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/01_controlling_logging_level.mdx +++ b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/01_controlling_logging_level.mdx @@ -4,24 +4,14 @@ title: "Controlling Logging Level, Log File Sizes, and Rotation Count" - -
      - -
      - -Note - -
      - -The options described in this section apply to the publication server and the subscription server unless otherwise specified. - -
      +!!! Note + The options described in this section apply to the publication server and the subscription server unless otherwise specified. The following options control various aspects of message logging in the publication server log file, the subscription server log file, and the Migration Toolkit log file. -See [Publication and Subscription Server Startup Failures](../../../10_appendix/03_resolving_problems/#pub_and_sub_startup_failures) for additional information on the publication and subscription server log files. +See [Publication and Subscription Server Startup Failures](../../03_resolving_problems/02_where_to_look_for_errors/#pub_and_sub_startup_failures) for additional information on the publication and subscription server log files. -See [Snapshot Replication Failures](../../../10_appendix/03_resolving_problems/#snapshot_replication_failures) for additional information on the Migration Toolkit log file. +See [Snapshot Replication Failures](../../03_resolving_problems/02_where_to_look_for_errors/#snapshot_replication_failures) for additional information on the Migration Toolkit log file. **logging.level** @@ -35,17 +25,8 @@ The default value is `WARNING`. Set the `logging.file.size` option to control the maximum file size (in megabytes) of the publication server log file and the subscription server log file. -
      - -
      - -Note - -
      - -If logging.file.count is set to 0, the setting of logging.file.size is ignored. The log file is allowed to grow without limit. - -
      +!!! Note + If logging.file.count is set to 0, the setting of logging.file.size is ignored. The log file is allowed to grow without limit. `logging.file.size=n` @@ -61,17 +42,8 @@ The default value for n is 20. A non-zero value of n specifies the maximum number of log files that are to be created. -
      - -
      - -Note - -
      - -In the remaining discussion the publication server log file named `pubserver.log` is used as an example. For the subscription server, the log file is named `subserver.log`. - -
      +!!! Note + In the remaining discussion the publication server log file named `pubserver.log` is used as an example. For the subscription server, the log file is named `subserver.log`. - Specify a value of 0 to disable log file rotation and create a single, unlimited size log file named `pubserver.log`. This log file will grow to an unlimited size ignoring any setting of logging.file.size. - Specify a value of 1 to disable log file rotation and create a single, limited size log file named `pubserver.log`. The log file is deleted and a new one is created each time the log file reaches the size limit set by `logging.file.size`. @@ -87,17 +59,8 @@ When log file rotation is enabled and the current, active log file (pubserver.lo **mtk.logging.file.size** -
      - -
      - -Note - -
      - -This option applies to the publication server only. - -
      +!!! Note + This option applies to the publication server only. Set the `mtk.logging.file.size` option to control the maximum file size (in megabytes) of the Migration Toolkit log file. @@ -107,17 +70,8 @@ The default value is 50 megabytes. **mtk.logging.file.count** -
      - -
      - -Note - -
      - -This option applies to the publication server only. - -
      +!!! Note + This option applies to the publication server only. Set the `mtk.logging.file.count` option to control the number of files in the log file rotation history of the Migration Toolkit log file. diff --git a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/02_replacing_null_characters.mdx b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/02_replacing_null_characters.mdx index e53b32d55bb..39d40d2107b 100644 --- a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/02_replacing_null_characters.mdx +++ b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/02_replacing_null_characters.mdx @@ -4,24 +4,14 @@ title: "Replacing Null Characters" - -
      - -
      - -Note - -
      - -The options described in this section apply to the publication server only. - -
      +!!! Note + The options described in this section apply to the publication server only. A character consisting of binary zeros (also called the null character string) and represented as 000 in octal or 0x00 in hexadecimal can result in errors when attempting to load such data into a Postgres character column. You may get the following error in the Migration Toolkit log file when performing a snapshot replication of an Oracle table that contains the null character string: -``` text +```text Loading Table Data in 8 MB batches... Disabling FK constraints & triggers on edb.null_test before truncate... Truncating table NULL_TEST before data load... @@ -33,7 +23,7 @@ Error Loading Data into Table: NULL_TEST: ERROR: invalid byte sequence for encod The same circumstance may also produce the following error in the Migration Toolkit log file: -``` text +```text Loading Table Data in 8 MB batches... Disabling FK constraints & triggers on edb.null_clob before truncate... Disabling indexes on edb.null_clob before data load... @@ -44,17 +34,8 @@ com.edb.util.PSQLException: Zero bytes may not occur in string parameters., Skip If any of these errors occur, you can set an option that will convert each null character encountered in character columns of the source tables to a space character, or to any other character of your choice, before loading the target tables. -
      - -
      - -Note - -
      - -This option does not alter null characters encountered in columns with binary data types such as Oracle RAW and BLOB data types. - -
      +!!! Note + This option does not alter null characters encountered in columns with binary data types such as Oracle RAW and BLOB data types. Set the following option: @@ -64,7 +45,7 @@ This option results in the substitution of a space character for each null chara `nullReplacementChar=char` -char is a single character you want to substitute for the null character. For example, the following combination will replace each null character with the hash symbol \#. +char is a single character you want to substitute for the null character. For example, the following combination will replace each null character with the hash symbol #. `replaceNullChar=true` diff --git a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/03_schema_migration_options.mdx b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/03_schema_migration_options.mdx index 72e1b8d1b42..b637ea8af8e 100644 --- a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/03_schema_migration_options.mdx +++ b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/03_schema_migration_options.mdx @@ -4,18 +4,8 @@ title: "Schema Migration Options" - -
      - -
      - -Note - -
      - -The option described in this section applies to the subscription server only. - -
      +!!! Note + The option described in this section applies to the subscription server only. The option in this section controls how certain aspects of the publication database schema are migrated to the subscription database. diff --git a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/04_replicate_oracle_partitioned_tables.mdx b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/04_replicate_oracle_partitioned_tables.mdx index eaca5178ffb..8375e3c78ba 100644 --- a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/04_replicate_oracle_partitioned_tables.mdx +++ b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/04_replicate_oracle_partitioned_tables.mdx @@ -4,30 +4,11 @@ title: "Replicating Oracle Partitioned Tables" +!!! Note + The option described in this section must be set to the same value for both the publication server and the subscription server. -
      - -
      - -Note - -
      - -The option described in this section must be set to the same value for both the publication server and the subscription server. - -
      - -
      - -
      - -Note - -
      - -This feature applies only for subscriptions in an Advanced Server database. It does not apply to subscriptions in a PostgreSQL database. - -
      +!!! Note + This feature applies only for subscriptions in an Advanced Server database. It does not apply to subscriptions in a PostgreSQL database. In Oracle, table partitioning provides the capability to store table rows in different physical locations (tablespaces) according to a rule defined on the table. @@ -37,17 +18,8 @@ The most common types of Oracle table partitioning are the following: - List Partitioning. A list of values defined on a column determines which tablespace a row is stored. - Hash Partitioning. An algorithm on a column generates a hash key, which determines which tablespace a row is stored. -
      - -
      - -Note - -
      - -If you are using Advanced Server, table partitioning using Oracle compatible table partitioning syntax is an available feature. See the section on table partitioning in the Database Compatibility for Oracle Developer’s Guide for information. See [Replicating Postgres Partitioned Tables](../../../07_common_operations/#replicating_postgres_partitioned_tables) for information on including Postgres partitioned tables in a replication system. The `importPartitionAsTable` option described in this section applies only to table partitioning in an Oracle database. - -
      +!!! Note + If you are using Advanced Server, table partitioning using Oracle compatible table partitioning syntax is an available feature. See the section on table partitioning in the Database Compatibility for Oracle Developer’s Guide for information. See [Replicating Postgres Partitioned Tables](../../../07_common_operations/10_replicating_postgres_partitioned_tables/#replicating_postgres_partitioned_tables) for information on including Postgres partitioned tables in a replication system. The `importPartitionAsTable` option described in this section applies only to table partitioning in an Oracle database. The `importPartitionAsTable` option controls what happens when an Oracle partitioned table is part of the publication. @@ -67,17 +39,8 @@ When `importPartitionAsTable=false` (the default setting), the following occurs: - A range partitioned table is replicated as a set of inherited Advanced Server tables. - A hash partitioned table is not replicated to Advanced Server, and an error message is written to the Migration Toolkit log file. -
      - -
      - -Note - -
      - -If there are subscription tables created as sets of Advanced Server inherited tables, then you must also set the `enableConstBeforeDataLoad` option in the publication server configuration file to true. See [Specifying a Custom URL for an Oracle JDBC Connection](../../../10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/#specify_custom_url_for_oracle_jdbc) for information on the `enableConstBeforeDataLoad` option. - -
      +!!! Note + If there are subscription tables created as sets of Advanced Server inherited tables, then you must also set the `enableConstBeforeDataLoad` option in the publication server configuration file to true. See [Specifying a Custom URL for an Oracle JDBC Connection](05_specify_custom_url_for_oracle_jdbc/#specify_custom_url_for_oracle_jdbc) for information on the `enableConstBeforeDataLoad` option. When `importPartitionAsTable=true`, the following occurs: diff --git a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/05_specify_custom_url_for_oracle_jdbc.mdx b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/05_specify_custom_url_for_oracle_jdbc.mdx index 710794366aa..72353b9f75e 100644 --- a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/05_specify_custom_url_for_oracle_jdbc.mdx +++ b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/05_specify_custom_url_for_oracle_jdbc.mdx @@ -4,18 +4,8 @@ title: "Specifying a Custom URL for an Oracle JDBC Connection" - -
      - -
      - -Note - -
      - -The option described in this section applies to the publication server only. - -
      +!!! Note + The option described in this section applies to the publication server only. By default the xDB Replication Server supports the basic thin client URL pattern for an Oracle JDBC connection. If there is a requirement to specify custom connectivity credentials, specify the advanced URL using the following option. @@ -23,8 +13,8 @@ By default the xDB Replication Server supports the basic thin client URL pattern The following is an example of custom connectivity to an Oracle database. -``` text +```text oraJDBCCustomURL=jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=$HOST)(PORT=$PORT))(CONNECT_DATA=(SERVICE_NAME =$SERVICE_NAME)(SERVER=DEDICATED))) ``` -The parameters prefixed with a dollar sign ($) are dynamically replaced based on the actual connection values specified when adding the Oracle publication database (see [Adding a Publication Database](../../../05_smr_operation/02_creating_publication/#adding_pub_database)). Alternatively, the parameters prefixed with a dollar sign can be replaced by hardcoded values in the URL string in which case these hardcoded values override what is specified when adding the publication database. +The parameters prefixed with a dollar sign ($) are dynamically replaced based on the actual connection values specified when adding the Oracle publication database (see [Adding a Publication Database](../../../05_smr_operation/02_creating_publication/02_adding_pub_database/#adding_pub_database)). Alternatively, the parameters prefixed with a dollar sign can be replaced by hardcoded values in the URL string in which case these hardcoded values override what is specified when adding the publication database. diff --git a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/06_snapshot_replication_options.mdx b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/06_snapshot_replication_options.mdx index 08d3db26e38..3c523d3c297 100644 --- a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/06_snapshot_replication_options.mdx +++ b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/06_snapshot_replication_options.mdx @@ -4,18 +4,8 @@ title: "Snapshot Replication Options" - -
      - -
      - -Note - -
      - -The options described in this section apply to the publication server only unless otherwise specified. - -
      +!!! Note + The options described in this section apply to the publication server only unless otherwise specified. The server configuration options discussed in this section apply to snapshot replications. diff --git a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/07_assign_ip_adress_for_rmi.mdx b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/07_assign_ip_adress_for_rmi.mdx index 9dd6197c5ea..336eb091ae5 100644 --- a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/07_assign_ip_adress_for_rmi.mdx +++ b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/07_assign_ip_adress_for_rmi.mdx @@ -4,22 +4,12 @@ title: "Assigning an IP Address for Remote Method Invocation" - -
      - -
      - -Note - -
      - -The option described in this section applies to the publication server and the subscription server. - -
      +!!! Note + The option described in this section applies to the publication server and the subscription server. **For Linux only:** -An alternative method to modifying the /etc/hosts file so that the host name is associated with a non-loopback IP address as discussed in Section [Network IP Addressese](../../../05_smr_operation/01_prerequisites/#network_ip) is to specify the network IP address using the java.rmi.server.hostname option. +An alternative method to modifying the /etc/hosts file so that the host name is associated with a non-loopback IP address as discussed in Section [Network IP Addressese](../../../05_smr_operation/01_prerequisites/06_verifying_host_accessibility/#network_ip) is to specify the network IP address using the java.rmi.server.hostname option. In the publication server configuration file, set this option to the network IP address of the host running the publication server. @@ -29,14 +19,14 @@ In the subscription server configuration file, set this option to the network IP For example, instead of modifying the /etc/hosts file to look like the following for a publication or subscription server running on host 192.168.2.19: -``` text +```text #127.0.0.1 localhost.localdomain localhost 192.168.2.19 localhost.localdomain localhost ``` You can set the IP address in the server configuration file as shown by the following: -``` text +```text #On Linux machines, the localhost to real IP may not give correct results. Hence #users are advised to override the following property with server IP address java.rmi.server.hostname=192.168.2.19 diff --git a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/08_using_pgagent_job_scheduling.mdx b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/08_using_pgagent_job_scheduling.mdx index 9b74add2ce0..289974d2626 100644 --- a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/08_using_pgagent_job_scheduling.mdx +++ b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/08_using_pgagent_job_scheduling.mdx @@ -4,48 +4,20 @@ title: "Using pgAgent Job Scheduling" +!!! Note + The option described in this section applies to the publication server only. -
      +!!! Note + Using pgAgent job scheduling has significance only if Postgres is the publication database. -
      - -Note - -
      - -The option described in this section applies to the publication server only. - -
      - -
      - -
      - -Note - -
      - -Using pgAgent job scheduling has significance only if Postgres is the publication database. - -
      - -
      - -
      - -Note - -
      - -You must have pgAgent installed and running on the host where the publication database resides. - -
      +!!! Note + You must have pgAgent installed and running on the host where the publication database resides. When the pgdbschedule option is set to true, xDB Replication Server uses the pgAgent job scheduler instead of the default Quartz job scheduler. When activated, pgAgent takes over the following scheduling tasks from Quartz: -- Scheduling shadow table history cleanup in the publication database. See [Scheduling Shadow Table History Cleanup](../../../07_common_operations/#schedule_shadow_table_history_cleanup) for information on scheduling shadow table history cleanup. +- Scheduling shadow table history cleanup in the publication database. See [Scheduling Shadow Table History Cleanup](../../../07_common_operations/05_managing_history/#schedule_shadow_table_history_cleanup) for information on scheduling shadow table history cleanup. - Scheduling transaction set creation. A transaction set creation job is scheduled to run every hour to create transaction sets from the updates on the source tables. Transaction sets are applied to the target tables. Unlike the Quartz scheduler, pgAgent can still run and perform its tasks even if the publication server is not running. diff --git a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/09_forcing_shadow_table_cleanup.mdx b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/09_forcing_shadow_table_cleanup.mdx index a99d9622663..9123eab7205 100644 --- a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/09_forcing_shadow_table_cleanup.mdx +++ b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/09_forcing_shadow_table_cleanup.mdx @@ -4,20 +4,10 @@ title: "Forcing Immediate Shadow Table Cleanup" +!!! Note + The option described in this section applies to the publication server only. -
      - -
      - -Note - -
      - -The option described in this section applies to the publication server only. - -
      - -A cleanup job is provided that can be run on demand or on a schedule to remove dead (processed) tuples from the shadow tables (see [Managing History](../../../07_common_operations/#managing_history)). +A cleanup job is provided that can be run on demand or on a schedule to remove dead (processed) tuples from the shadow tables (see [Managing History](../../../07_common_operations/05_managing_history/#managing_history)). However, to perform even quicker cleanup scheduling, turn on this option to force the cleanup of shadow tables after every synchronization replication. diff --git a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/10_setting_event_history_cleanup.mdx b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/10_setting_event_history_cleanup.mdx index 4cf93039620..eb130715506 100644 --- a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/10_setting_event_history_cleanup.mdx +++ b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/10_setting_event_history_cleanup.mdx @@ -4,12 +4,11 @@ title: "Setting Event History Cleanup Threshold" - The event history cleanup job is scheduled to run every day at 12 AM to remove completed, historical, event and replication history data from the control schema `xdb_events`, `xdb_events_status`, `xdb_pub_replog`, and `xdb_pub_table_replog` tables that are older than n days. By default the history data older than seven days is removed. Specify a value of 0 to cleanup all, completed, event history and replication history data, regardless of its age. -See [Cleaning Up Event History](../../../07_common_operations/#clean_event_history) for information on cleaning up event and replication history. +See [Cleaning Up Event History](../../../07_common_operations/05_managing_history/#clean_event_history) for information on cleaning up event and replication history. `historyCleanupDaysThreshold=n` diff --git a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/11_ddl_change_replication_table_locking.mdx b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/11_ddl_change_replication_table_locking.mdx index cbed4ced4b5..93f8a1043e8 100644 --- a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/11_ddl_change_replication_table_locking.mdx +++ b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/11_ddl_change_replication_table_locking.mdx @@ -4,18 +4,8 @@ title: "DDL Change Replication Table Locking" - -
      - -
      - -Note - -
      - -The option described in this section applies to the publication server only. - -
      +!!! Note + The option described in this section applies to the publication server only. When the DDL change replication process is invoked, each affected table in the replication system is acquired in turn with an exclusive lock before the DDL change is applied to the table. diff --git a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/12_persisting_zero_txn_replication_hist.mdx b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/12_persisting_zero_txn_replication_hist.mdx index fc7cb763269..71a6cabca16 100644 --- a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/12_persisting_zero_txn_replication_hist.mdx +++ b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/12_persisting_zero_txn_replication_hist.mdx @@ -4,18 +4,8 @@ title: "Persisting Zero Transaction Count Replication History" - -
      - -
      - -Note - -
      - -The option described in this section applies to the publication server only. - -
      +!!! Note + The option described in this section applies to the publication server only. If you wish to maintain zero transaction count records in the replication history after the publication server is restarted, set persistZeroTxRepEvent to true. Otherwise, zero transaction count records are no longer available once the publication server is restarted. diff --git a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/13_skipping_grants_of_table_level_user_privileges_on_mmr.mdx b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/13_skipping_grants_of_table_level_user_privileges_on_mmr.mdx index 288b7e3045f..ea86e00900b 100644 --- a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/13_skipping_grants_of_table_level_user_privileges_on_mmr.mdx +++ b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/13_skipping_grants_of_table_level_user_privileges_on_mmr.mdx @@ -4,18 +4,8 @@ title: "Skipping Grants of Table Level User Privileges on MMR Target Tables" - -
      - -
      - -Note - -
      - -This option applies to the publication server only. - -
      +!!! Note + This option applies to the publication server only. When creating non-PDN nodes in a multi-master replication system, the publication server creates the publication tables and their corresponding shadow tables in the non-PDN node database. @@ -23,7 +13,7 @@ When `skipTablePrivileges` is set to false, which is the default value, the data The required privileges are also granted to these database users on the corresponding shadow tables in the non-PDN node so these database users can perform updates on the publication tables and the changes are recorded in the corresponding shadow tables. This enables proper synchronization replication of any such changes. -This granting of privileges occurs only for database users with privileges on the primary definition node publication tables at the time the non-PDN node is defined using the xDB Replication Console or the xDB Replication Server CLI. If you do not want the publication server to grant these database user privileges to the non-PDN publication tables and shadow tables when defining the non-PDN node, set skipTablePrivileges to true. In this case, you must explicitly grant the privileges on the publication tables and corresponding shadow tables in the non-PDN node for any database user that you wish to provide update access to on these tables. See Step 2 of Section [Postgres Publication Database](../../../05_smr_operation/01_prerequisites/#postgres_pub_db) for information regarding the required privileges. +This granting of privileges occurs only for database users with privileges on the primary definition node publication tables at the time the non-PDN node is defined using the xDB Replication Console or the xDB Replication Server CLI. If you do not want the publication server to grant these database user privileges to the non-PDN publication tables and shadow tables when defining the non-PDN node, set skipTablePrivileges to true. In this case, you must explicitly grant the privileges on the publication tables and corresponding shadow tables in the non-PDN node for any database user that you wish to provide update access to on these tables. See Step 2 of Section [Postgres Publication Database](../../../05_smr_operation/01_prerequisites/04_preparing_pub_database/#postgres_pub_db) for information regarding the required privileges. This usage would typically be for the case where different database users are to access the non-PDN node publication tables than the database users who access the primary definition node publication tables. diff --git a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/14_applying_grants_of_table_level_user_privileges_on_smr.mdx b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/14_applying_grants_of_table_level_user_privileges_on_smr.mdx index d394438d8be..b0196bfecd9 100644 --- a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/14_applying_grants_of_table_level_user_privileges_on_smr.mdx +++ b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/14_applying_grants_of_table_level_user_privileges_on_smr.mdx @@ -4,34 +4,15 @@ title: "Applying Grants of Table Level User Privileges on SMR Target Tables" +!!! Note + This option applies to the subscription server only. -
      - -
      - -Note - -
      - -This option applies to the subscription server only. - -
      - -
      - -
      - -Note - -
      - -This option applies only when both the publication database and the subscription database are Postgres databases. - -
      +!!! Note + This option applies only when both the publication database and the subscription database are Postgres databases. When creating a subscription in a single-master replication system, the subscription server creates the subscription tables in the subscription database. -When `skipTablePrivileges` is set to true, which is the default value, no database user privileges are granted on these subscription tables to any database user. By default the subscription database user specified when the subscription database definition is created (see [Adding a Subscription Database](../../../05_smr_operation/03_creating_subscription/#adding_subscription_database)) is the owner of the subscription tables. +When `skipTablePrivileges` is set to true, which is the default value, no database user privileges are granted on these subscription tables to any database user. By default the subscription database user specified when the subscription database definition is created (see [Adding a Subscription Database](../../../05_smr_operation/03_creating_subscription/02_adding_subscription_database/#adding_subscription_database)) is the owner of the subscription tables. This is the typical, expected scenario since the data in subscription tables should not be updated by user applications other than the xDB Replication Server. diff --git a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/15_log_based_sync_options.mdx b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/15_log_based_sync_options.mdx index 41f883b5415..7eceaa212bb 100644 --- a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/15_log_based_sync_options.mdx +++ b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/15_log_based_sync_options.mdx @@ -4,18 +4,8 @@ title: "Log-Based Method of Synchronization Options" - -
      - -
      - -Note - -
      - -This option applies to the publication server only. - -
      +!!! Note + This option applies to the publication server only. **walTxSetCreationInterval** @@ -33,7 +23,7 @@ If the TPM rate is on a lower end, the option should be set to a higher value to The `walStreamQueueLimit` option defines the upper limit for the number of WAL entries that can be held in the queue pending for processing at a point in time. Once the queue becomes full, the WAL stream receiver blocks additions until space becomes available in the queue as transaction entries are popped out of the queue for processing. -A value of 0 indicates there will be no upper limit. Note that too high a setting may result in Java heap space out of memory errors. See [Setting Heap Memory Size for the Publication and Subscription Servers](../../../05_smr_operation/01_prerequisites/#setting_heap_size_for_pub_and_sub) for information on adjusting the Java heap memory size. +A value of 0 indicates there will be no upper limit. Note that too high a setting may result in Java heap space out of memory errors. See [Setting Heap Memory Size for the Publication and Subscription Servers](../../../05_smr_operation/01_prerequisites/01_setting_heap_size_for_pub_and_sub/#setting_heap_size_for_pub_and_sub) for information on adjusting the Java heap memory size. `walStreamQueueLimit=n` @@ -43,7 +33,7 @@ The default value is 10000. The `pendingTxSetThreshold` option defines the upper threshold limit for the number of pending transaction sets that when reached, causes the extraction of transaction data from the WAL stream and its parsing to be put on hold until the pending transactions are processed. -This is to avoid a situation where the data is continuously pushed over the WAL stream channel, but is not being processed and applied due to some failure or lack of scheduling of the synchronization process. This may result in a Java heap space out of heap memory error. See [Setting Heap Memory Size for the Publication and Subscription Servers](../../../05_smr_operation/01_prerequisites/#setting_heap_size_for_pub_and_sub) for information on adjusting the Java heap memory size. +This is to avoid a situation where the data is continuously pushed over the WAL stream channel, but is not being processed and applied due to some failure or lack of scheduling of the synchronization process. This may result in a Java heap space out of heap memory error. See [Setting Heap Memory Size for the Publication and Subscription Servers](../../../05_smr_operation/01_prerequisites/01_setting_heap_size_for_pub_and_sub/#setting_heap_size_for_pub_and_sub) for information on adjusting the Java heap memory size. `pendingTxSetThreshold=n` diff --git a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/16_setting_apache_dbcp_connection_validation_query.mdx b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/16_setting_apache_dbcp_connection_validation_query.mdx index a3c58707183..5f830f3f007 100644 --- a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/16_setting_apache_dbcp_connection_validation_query.mdx +++ b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/16_setting_apache_dbcp_connection_validation_query.mdx @@ -4,18 +4,8 @@ title: "Setting the Apache DBCP Connection Validation Query Timeout" - -
      - -
      - -Note - -
      - -This option applies to the publication server only. - -
      +!!! Note + This option applies to the publication server only. The Apache Commons Database Connection Pooling (DBCP) component is the Apache pooling framework used by the publication server for establishing JDBC connections. diff --git a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/index.mdx b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/index.mdx index 07fa439e58d..78ebdf8fbfd 100644 --- a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/index.mdx +++ b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/01_publications_and_subscriptions_server_conf_options/index.mdx @@ -4,16 +4,15 @@ title: "Publication and Subscription Server Configuration Options" - The publication server and the subscription server support various configuration options for purposes such as the following: -- Optimize synchronization performance based on the types of transactions affecting the publication. (See [Optimizing Synchronization Replication](../../05_smr_operation/08_optimizing_performance/02_optimize_sync_replication/#optimize_sync_replication) for details on these particular options.) -- Utilize alternate loading methods in snapshot replications. (See [Optimizing Snapshot Replication](../../05_smr_operation/08_optimizing_performance/#optimizing_snapshot_replication) for details on these particular options.) -- Special configuration options for multi-master replication. (See [Optimizing Performance](../../06_mmr_operation/#optimizing_performance_mmr) for details on these particular options.) +- Optimize synchronization performance based on the types of transactions affecting the publication. (See [Optimizing Synchronization Replication](../../../05_smr_operation/08_optimizing_performance/02_optimize_sync_replication/#optimize_sync_replication) for details on these particular options.) +- Utilize alternate loading methods in snapshot replications. (See [Optimizing Snapshot Replication](../../../05_smr_operation/08_optimizing_performance/01_optimizing_snapshot_replication/#optimizing_snapshot_replication) for details on these particular options.) +- Special configuration options for multi-master replication. (See [Optimizing Performance](../../../06_mmr_operation/12_optimizing_performance_mmr/#optimizing_performance_mmr) for details on these particular options.) - Adjust memory usage and transaction size for replications. - Replicate certain Oracle partitioned table types. - Replicate special characters found in publication data. -- Special configuration options for the log-based method of synchronization replication. (See [Quoted Identifiers and Default Case Translation](../../10_appendix/04_miscellaneous_xdb_processing_topics/#quoted_identifiers) for details on these particular options.) +- Special configuration options for the log-based method of synchronization replication. (See [Quoted Identifiers and Default Case Translation](../05_quoted_identifiers/#quoted_identifiers) for details on these particular options.) Most options apply to the publication server only, although a few are used by the subscription server. @@ -21,19 +20,19 @@ The configuration options for the publication server are set and passed in a tex The configuration options for the subscription server are set and passed in a text file called the subscription server configuration file with file name `xdb_subserver.conf.` -See [Post Installation Host Environment](../../03_installation/#post_installation_host_environment) for the directory locations of these files. +See [Post Installation Host Environment](../../../03_installation/05_post_installation_host_environment/#post_installation_host_environment) for the directory locations of these files. -Modified publication server configuration options take effect after the publication server is restarted. Similarly, modified subscription server configuration options take effect after the subscription server is restarted. The configuration options that have been explicitly put into effect by overriding their defaults in the configuration files are logged in the publication server log file and the subscription server log file. Section [Post Installation Host Environment](../../03_installation/#post_installation_host_environment) contains the directory locations of these log files. +Modified publication server configuration options take effect after the publication server is restarted. Similarly, modified subscription server configuration options take effect after the subscription server is restarted. The configuration options that have been explicitly put into effect by overriding their defaults in the configuration files are logged in the publication server log file and the subscription server log file. Section [Post Installation Host Environment](../../../03_installation/05_post_installation_host_environment/#post_installation_host_environment) contains the directory locations of these log files. The following is a description of how to set the configuration options. This is followed by sections describing the purpose of each option. **Step 1:** The publication and subscription server configuration files are created during xDB Replication Server installation and already contain all of the configuration options as comments with their default settings. -To change the setting of a configuration option, edit the publication server or subscription server configuration file by removing the comment symbol (\#) from the option and substituting the desired value in place of the currently coded value. +To change the setting of a configuration option, edit the publication server or subscription server configuration file by removing the comment symbol (#) from the option and substituting the desired value in place of the currently coded value. The following example shows a portion of the publication server configuration file where replacement of null characters in the publication data has been activated and the replacement character has been set to the question mark character. -``` text +```text replaceNullChar = true #Null Replacement Character @@ -54,6 +53,6 @@ The following sections provide additional detail on the server configuration opt
      -controlling\_logging\_level replacing\_null\_characters schema\_migration\_options replicate\_oracle\_partitioned\_tables specify\_custom\_url\_for\_oracle\_jdbc snapshot\_replication\_options assign\_ip\_adress\_for\_rmi using\_pgagent\_job\_scheduling forcing\_shadow\_table\_cleanup setting\_event\_history\_cleanup ddl\_change\_replication\_table\_locking persisting\_zero\_txn\_replication\_hist skipping\_grants\_of\_table\_level\_user\_privileges\_on\_mmr applying\_grants\_of\_table\_level\_user\_privileges\_on\_smr log\_based\_sync\_options setting\_apache\_dbcp\_connection\_validation\_query +controlling_logging_level replacing_null_characters schema_migration_options replicate_oracle_partitioned_tables specify_custom_url_for_oracle_jdbc snapshot_replication_options assign_ip_adress_for_rmi using_pgagent_job_scheduling forcing_shadow_table_cleanup setting_event_history_cleanup ddl_change_replication_table_locking persisting_zero_txn_replication_hist skipping_grants_of_table_level_user_privileges_on_mmr applying_grants_of_table_level_user_privileges_on_smr log_based_sync_options setting_apache_dbcp_connection_validation_query
      diff --git a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/02_encrypt_password_inconf_file.mdx b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/02_encrypt_password_inconf_file.mdx index 4ce78905341..30ca43c1487 100644 --- a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/02_encrypt_password_inconf_file.mdx +++ b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/02_encrypt_password_inconf_file.mdx @@ -4,24 +4,23 @@ title: "Encrypting the Password in the xDB Replication Configuration File" - If you need to change the password in the xDB Replication Configuration file, you must first encrypt the password. Use the encrypt command of the xDB Replication Server CLI to generate the encrypted form of the password from its plain text form given in an input file. **Step 1:** Create a text file with the password you wish to encrypt. Do not leave any white space before or after the password. The following example shows the text newpassword in the input file passfile: -``` text +```text $ cat passfile newpassword $ ``` -**Step 2:** Use the `edb-repcli.jar` file to execute the xDB Replication Server CLI with the encrypt command by first including the Java bin directory in your PATH environment variable and making XDB\_HOME/bin your current working directory. +**Step 2:** Use the `edb-repcli.jar` file to execute the xDB Replication Server CLI with the encrypt command by first including the Java bin directory in your PATH environment variable and making XDB_HOME/bin your current working directory. For example, assuming `/usr/bin` contains the java executable program and xDB Replication Server is installed into the `POSTGRES_INSTALL_HOME` directory, perform the following: -``` text +```text $ export PATH=/usr/bin:$PATH $ cd /opt/PostgresPlus/9.4AS/bin $ java -jar edb-repcli.jar -encrypt -input ~/passfile -output ~/encrypted @@ -33,7 +32,7 @@ $ **Step 3:** Copy and paste the encrypted password into the xDB Replication Configuration file. -``` text +```text #xDB Replication Server Configuration Properties #Thu Sep 03 11:13:27 GMT-05:00 2015 admin_password=4mKq/4jQQoV2IypCSmPpTQ== diff --git a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/03_writing_cron_exp.mdx b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/03_writing_cron_exp.mdx index 26fded52082..d4c5ada2317 100644 --- a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/03_writing_cron_exp.mdx +++ b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/03_writing_cron_exp.mdx @@ -4,7 +4,6 @@ title: "Writing a Cron Expression" - A cron expression is a text string used to express a schedule of dates and times. The Linux cron tool uses a cron expression to schedule the execution of a job. xDB Replication Server uses the Quartz job scheduling system for scheduling replications. When creating a schedule for an xDB Replication Server replication system, a cron expression can be specified. There are a number of formats for cron expressions. You must use the cron expression format supported by Quartz. @@ -16,7 +15,7 @@ A Quartz cron expression consists of six mandatory fields, followed by one optio `ss mi hr dd mm dow [ yyyy ]` | | | | -|--------|-------------------------|---------------------------------------------------------------------------------------------------------------------------------------| +| ------ | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | | Field | Values | Description | | ss | 0 - 59 | Second of the minute | | *mi* | 0 - 59 | Minute of the hour | @@ -30,25 +29,25 @@ A Quartz cron expression consists of six mandatory fields, followed by one optio There are a number of characters that have special meaning that can be utilized in all fields unless noted. -| | | | -|------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Character | Meaning | Example | -| , | Separates a list of values | MON,WED,FRI – Every Monday, Wednesday, and Friday | -| \- | Separates the low and high end of a range of values | MON-FRI – Every Monday through Friday | -| \* | Allows all legal values for the field | 0 10 14 \* \* ? – Every day of every month at 2:10 PM | -| *x*/*i* | Specifies an increment, *i*, starting with *x* | 0 0/10 \* \* \* ? – Every 10 minutes starting on the hour for every day of every month (e.g., 8:00:00, 8:10:00, 8:20:00) | -| L | When used in the day of the month (dd) field, means the last day of the month | 0 30 15 L 8 ? – Every August 31st at 3:30 PM | -| L | When used by itself in the day of the week field (dow), means Saturday | 30 0 12 ? AUG L – The next Saturday in August at 30 seconds past 12:00 noon | -| *xxx*L | When used in the day of the week field (dow) following a day of the week, means the last *xxx* day of the month | 30 0 12 ? AUG 6L – The last Friday in August at 30 seconds past 12:00 noon | -| *x*W | Used in the day of the month field (dd) following a day of the month, *x*, to specify the weekday closest to *x* without going over into the next or previous month. | 1W – The weekday closest to the 1st of the month. If the 1st is a Wednesday, the result is Wednesday the 1st. If the 1st is a Sunday, the result is Monday the 2nd. If the 1st is a Saturday, the result is Monday the 3rd because the result does not go into the previous or following month. | -| *xxx*\#*n* | Used in the day of the week field (dow) to specify the *n*th *xxx* day of the month | 2\#3 – The third Monday of the month (2 = Monday, 3 = third occurrence) | +| | | | +| --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Character | Meaning | Example | +| , | Separates a list of values | MON,WED,FRI – Every Monday, Wednesday, and Friday | +| - | Separates the low and high end of a range of values | MON-FRI – Every Monday through Friday | +| \* | Allows all legal values for the field | 0 10 14 \* \* ? – Every day of every month at 2:10 PM | +| *x*/*i* | Specifies an increment, *i*, starting with *x* | 0 0/10 \* \* \* ? – Every 10 minutes starting on the hour for every day of every month (e.g., 8:00:00, 8:10:00, 8:20:00) | +| L | When used in the day of the month (dd) field, means the last day of the month | 0 30 15 L 8 ? – Every August 31st at 3:30 PM | +| L | When used by itself in the day of the week field (dow), means Saturday | 30 0 12 ? AUG L – The next Saturday in August at 30 seconds past 12:00 noon | +| *xxx*L | When used in the day of the week field (dow) following a day of the week, means the last *xxx* day of the month | 30 0 12 ? AUG 6L – The last Friday in August at 30 seconds past 12:00 noon | +| *x*W | Used in the day of the month field (dd) following a day of the month, *x*, to specify the weekday closest to *x* without going over into the next or previous month. | 1W – The weekday closest to the 1st of the month. If the 1st is a Wednesday, the result is Wednesday the 1st. If the 1st is a Sunday, the result is Monday the 2nd. If the 1st is a Saturday, the result is Monday the 3rd because the result does not go into the previous or following month. | +| *xxx*#*n* | Used in the day of the week field (dow) to specify the *n*th *xxx* day of the month | 2#3 – The third Monday of the month (2 = Monday, 3 = third occurrence) | **Cron Expression Special Characters** The following illustrates some examples of cron expressions. | | | -|--------------------------|----------------------------------------------------------------------------------------------------------------------------------------------| +| ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------- | | Cron Expression | Meaning | | 0 0 12 20 AUG ? 2009 | 12:00:00 noon on August 20, 2009 | | 0 15 13 ? AUG WED | 1:15:00 PM every Wednesday in August | @@ -58,6 +57,6 @@ The following illustrates some examples of cron expressions. | 0 0 9 ? 9 L | 9:00:00 AM each Saturday in September | | 0 0 1 ? \* MonL | 1:00:00 AM on the last Monday of the month of every month | | 0 30 16 15W sep ? | 4:30:00 PM on the weekday of September closest to the 15th | -| 0 30 16 ? \* WED\#2 | 4:30:00 PM on the second Wednesday of every month | +| 0 30 16 ? \* WED#2 | 4:30:00 PM on the second Wednesday of every month | **Cron Expression Examples** diff --git a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/04_disable_foreign_key_constraints_for_snapshot_replication.mdx b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/04_disable_foreign_key_constraints_for_snapshot_replication.mdx index 4dc651ed912..834c01f64b9 100644 --- a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/04_disable_foreign_key_constraints_for_snapshot_replication.mdx +++ b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/04_disable_foreign_key_constraints_for_snapshot_replication.mdx @@ -4,7 +4,6 @@ title: "Disabling Foreign Key Constraints for Snapshot Replications" - In a snapshot replication, the publication server calls EnterpriseDB’s Migration Toolkit, which disables foreign key constraints on tables so it can truncate the target tables before loading rows. In Postgres, foreign key constraints are implemented using triggers, so in actuality, the Migration Toolkit disables triggers on the target tables by setting column `relhastriggers` of `pg_catalog.pg_class` to false for each target table. No user (not even a superuser) is allowed to directly modify the data in a Postgres system catalog table unless the following conditions are satisfied: diff --git a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/05_quoted_identifiers.mdx b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/05_quoted_identifiers.mdx index 588723bfd23..d7c6dbf29a9 100644 --- a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/05_quoted_identifiers.mdx +++ b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/05_quoted_identifiers.mdx @@ -4,7 +4,6 @@ title: "Quoted Identifiers and Default Case Translation" - A quoted identifier is an identifier created with its name enclosed within double quote characters ("). The text enclosed within double quotes is stored as the object identifier name exactly as given with no default case translation of alphabetic characters. Quoted identifiers occur in both Oracle and Postgres. For example, `CREATE TABLE "MyTable"` … produces a table name that is stored in the database system’s data dictionary as MyTable. References to this table must be made using an uppercase M, an uppercase T, and lowercase letters for the rest of the name. diff --git a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/06_replicating_sql_server_sql_variant_data_type.mdx b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/06_replicating_sql_server_sql_variant_data_type.mdx index fd026515013..e02050173f3 100644 --- a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/06_replicating_sql_server_sql_variant_data_type.mdx +++ b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/06_replicating_sql_server_sql_variant_data_type.mdx @@ -4,23 +4,22 @@ title: "Replicating the SQL Server SQL_VARIANT Data Type" - This section discusses how to replicate a table containing the SQL Server `SQL_VARIANT` data type. -The `SQL_VARIANT` data type defines a column so that the individual values in that column may be of different data types. For example, the same SQL\_VARIANT column can store values that have been explicitly cast as character, integer, numeric, and date/time. +The `SQL_VARIANT` data type defines a column so that the individual values in that column may be of different data types. For example, the same SQL_VARIANT column can store values that have been explicitly cast as character, integer, numeric, and date/time. -However, if a table containing a SQL\_VARIANT column is to be replicated to a Postgres database, the usage of the column in Postgres is restricted to a single data type to which all the values in the SQL\_VARIANT column are implicitly convertible (that is, without the use of explicit casting). For example, an integer value is implicitly convertible to a FLOAT data type, but a floating point value is not implicitly convertible to an INTEGER data type. +However, if a table containing a SQL_VARIANT column is to be replicated to a Postgres database, the usage of the column in Postgres is restricted to a single data type to which all the values in the SQL_VARIANT column are implicitly convertible (that is, without the use of explicit casting). For example, an integer value is implicitly convertible to a FLOAT data type, but a floating point value is not implicitly convertible to an INTEGER data type. -The following restrictions apply in order to use replication on tables with the SQL\_VARIANT data type: +The following restrictions apply in order to use replication on tables with the SQL_VARIANT data type: -- The values stored within the SQL\_VARIANT columns of the table to be replicated must be implicitly convertible to the same data type in Postgres. +- The values stored within the SQL_VARIANT columns of the table to be replicated must be implicitly convertible to the same data type in Postgres. - If there is more than one table with `SQL_VARIANT` columns to be replicated to the same Postgres database, then all such `SQL_VARIANT` columns must contain values that are implicitly convertible to the same data type in Postgres. -In the Postgres subscription database, you define a domain named `sql_variant` that maps to an underlying data type to which all values in the SQL\_VARIANT columns are implicitly convertible. +In the Postgres subscription database, you define a domain named `sql_variant` that maps to an underlying data type to which all values in the SQL_VARIANT columns are implicitly convertible. The following example shows how to set up replication for a table containing a `SQL_VARIANT` data type used to store numeric values, but of different data types. The SQL Server table definition is the following: -``` text +```text CREATE TABLE variant_tbl ( f1 INTEGER PRIMARY KEY, f2 SQL_VARIANT @@ -32,9 +31,9 @@ INSERT INTO variant_tbl VALUES (3, CAST('4321' AS CHAR(4))); GO ``` -The following query uses a function named SQL\_VARIANT\_PROPERTY to show the values stored in column f2 and their data types. +The following query uses a function named SQL_VARIANT_PROPERTY to show the values stored in column f2 and their data types. -``` text +```text 1> SELECT *, 2> SQL_VARIANT_PROPERTY(f2,'BaseType') AS basetype, 3> SQL_VARIANT_PROPERTY(f2,'Precision') AS precision, @@ -50,15 +49,15 @@ f1 f2 basetype precision scale (3 rows affected) ``` -In the Postgres subscription database, create a domain named `sql_variant` with an underlying data type that is compatible with the values that are stored in the SQL Server SQL\_VARIANT column: +In the Postgres subscription database, create a domain named `sql_variant` with an underlying data type that is compatible with the values that are stored in the SQL Server SQL_VARIANT column: -``` text +```text CREATE DOMAIN sql_variant AS NUMERIC(6, 2); ``` -After replication occurs, the subscription table is created using the `sql_variant` domain in place of the SQL\_VARIANT data type of the publication table. +After replication occurs, the subscription table is created using the `sql_variant` domain in place of the SQL_VARIANT data type of the publication table. -At the bottom of the following Object Browser window, note the presence of the sql\_variant domain under the Domains node of the public schema. +At the bottom of the following Object Browser window, note the presence of the sql_variant domain under the Domains node of the public schema. > `CREATE TABLE MyTable …` would result in an object identifier name of mytable. > diff --git a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/index.mdx b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/index.mdx index 433da0bd91a..2253c1adb15 100644 --- a/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/index.mdx +++ b/product_docs/docs/eprs/6.2/10_appendix/04_miscellaneous_xdb_processing_topics/index.mdx @@ -4,7 +4,6 @@ title: "Miscellaneous xDB Replication Server Processing Topics" - This section contains various topics covering the following: - Handling special characters in replication data @@ -15,6 +14,6 @@ This section contains various topics covering the following:
      -publications\_and\_subscriptions\_server\_conf\_options encrypt\_password\_in conf\_file writing\_cron\_exp disable\_foreign\_key\_constraints\_for\_snapshot\_replication quoted\_identifiers replicating\_sql\_server\_sql\_variant\_data\_type +publications_and_subscriptions_server_conf_options encrypt_password_in conf_file writing_cron_exp disable_foreign_key_constraints_for_snapshot_replication quoted_identifiers replicating_sql_server_sql_variant_data_type
      diff --git a/product_docs/docs/eprs/6.2/10_appendix/05_service_pack_maintenance.mdx b/product_docs/docs/eprs/6.2/10_appendix/05_service_pack_maintenance.mdx index 0cf67cd7d93..a73c67d7831 100644 --- a/product_docs/docs/eprs/6.2/10_appendix/05_service_pack_maintenance.mdx +++ b/product_docs/docs/eprs/6.2/10_appendix/05_service_pack_maintenance.mdx @@ -4,7 +4,6 @@ title: "Service Pack Maintenance" - Maintenance items (bug fixes and enhancements) that have been added to this version of xDB Replication Server are listed below. 1. Registering your xDB Replication Server product with an EnterpriseDB product license key is no longer required. Thus, all components related to registering the product have been removed. The following are the removed components: diff --git a/product_docs/docs/eprs/6.2/10_appendix/index.mdx b/product_docs/docs/eprs/6.2/10_appendix/index.mdx index 0f1f1eb7d88..ab3fa0c7718 100644 --- a/product_docs/docs/eprs/6.2/10_appendix/index.mdx +++ b/product_docs/docs/eprs/6.2/10_appendix/index.mdx @@ -4,11 +4,10 @@ title: "Appendix" - This chapter discusses various miscellaneous topics.
      -permitted\_conf\_and\_permutations upgrading\_to\_xdb6\_2 resolving\_problems miscellaneous\_xdb\_processing\_topics service\_pack\_maintenance +permitted_conf_and_permutations upgrading_to_xdb6_2 resolving_problems miscellaneous_xdb_processing_topics service_pack_maintenance
      diff --git a/product_docs/docs/eprs/6.2/index.mdx b/product_docs/docs/eprs/6.2/index.mdx index 32efefb751a..f112a65a7b6 100644 --- a/product_docs/docs/eprs/6.2/index.mdx +++ b/product_docs/docs/eprs/6.2/index.mdx @@ -5,4 +5,4 @@ directoryDefaults: --- EDB Postgres Replication Server (EPRS) provides a robust data platform that replicates between PostgreSQL databases -in single-master or multi-master mode, or from non-PostgreSQL databases to PostgreSQL in single-master mode. \ No newline at end of file +in single-master or multi-master mode, or from non-PostgreSQL databases to PostgreSQL in single-master mode. From 6456eb23a69bd970fced3e870c0c4902078a263d Mon Sep 17 00:00:00 2001 From: Evan Barger Date: Thu, 18 Mar 2021 16:02:00 -0400 Subject: [PATCH 20/28] Make legacy redirects permanent, clean up options Former-commit-id: 74da8d3ee89c90684bf55507317b03bb2c8b0cee --- src/constants/gatsby-node-utils.js | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/constants/gatsby-node-utils.js b/src/constants/gatsby-node-utils.js index ef6d0950181..fa8b04bccef 100644 --- a/src/constants/gatsby-node-utils.js +++ b/src/constants/gatsby-node-utils.js @@ -293,18 +293,14 @@ const configureLegacyRedirects = ({ actions.createRedirect({ fromPath, toPath: toPath, - redirectInBrowser: false, - isPermanent: false, - force: true, + isPermanent: true, }); if (toLatestPath) { actions.createRedirect({ fromPath: convertLegacyDocsPathToLatest(fromPath), toPath: toLatestPath, - redirectInBrowser: false, - isPermanent: false, - force: true, + isPermanent: true, }); } }); From 889b708b13146634d6a669833727f732290d694b Mon Sep 17 00:00:00 2001 From: Evan Barger Date: Thu, 18 Mar 2021 16:04:45 -0400 Subject: [PATCH 21/28] Clean up redirects comment in gatsby-node-utils Former-commit-id: 8c656ea2f53108cce1ff0d80b4f9187346bb276c --- src/constants/gatsby-node-utils.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/constants/gatsby-node-utils.js b/src/constants/gatsby-node-utils.js index fa8b04bccef..837e45626bb 100644 --- a/src/constants/gatsby-node-utils.js +++ b/src/constants/gatsby-node-utils.js @@ -281,13 +281,9 @@ const configureLegacyRedirects = ({ /* Three kinds of redirects - redirects from versioned path to new versioned path, not latest version - - these should be made permanent - redirects from versioned path to new versioned path, latest version - - should these be permanent or temporary? - latest versioned path will redirect to /latest, meaning you would have two redirects - - if the first redirect is permanent, will we have issues when this is no longer the latest version? - redirects from latest path to new latest path - - these should be permanent right? */ actions.createRedirect({ From 60136f08f08c6e7b06b16f41531166d6c7b87db9 Mon Sep 17 00:00:00 2001 From: Evan Barger Date: Thu, 18 Mar 2021 17:01:22 -0400 Subject: [PATCH 22/28] Change back button to go home Former-commit-id: 770162f98b393ad9d254f4f05582b37b2a771c59 --- src/components/back-button.js | 39 ++++++++++++---------------------- src/components/left-nav.js | 2 +- src/templates/katacoda-page.js | 2 +- 3 files changed, 15 insertions(+), 28 deletions(-) diff --git a/src/components/back-button.js b/src/components/back-button.js index 34a9988a364..d060c8d57a6 100644 --- a/src/components/back-button.js +++ b/src/components/back-button.js @@ -2,31 +2,18 @@ import React from 'react'; import { Link } from './'; import Icon, { iconNames } from './icon/'; -const BackButton = ({ path, currentPath }) => { - let url = path; - if (!url && currentPath) { - const splitPath = currentPath.split('/'); - url = - splitPath.length > 4 - ? splitPath.slice(0, splitPath.length - 2).join('/') + '/' - : '/'; - } else if (!url) { - url = '/'; - } - - return ( -
    • - - - Back - -
    • - ); -}; +const BackButton = () => ( +
    • + + + Back + +
    • +); export default BackButton; diff --git a/src/components/left-nav.js b/src/components/left-nav.js index 8c46a0030e1..2bea7626851 100644 --- a/src/components/left-nav.js +++ b/src/components/left-nav.js @@ -71,7 +71,7 @@ const LeftNav = ({ }) => { return (
        - + {versionArray ? ( {
          - +
        From 42079a98006bc69c18e4e0b8a6fc0fcba8344f97 Mon Sep 17 00:00:00 2001 From: Evan Barger Date: Thu, 18 Mar 2021 17:04:42 -0400 Subject: [PATCH 23/28] Remove extra slash from katacodaPage paths Former-commit-id: c7497297902bc023f87c99a3f8bad573fb44c0dd --- gatsby-node.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gatsby-node.js b/gatsby-node.js index d4747102f8f..e0d4d4b993b 100644 --- a/gatsby-node.js +++ b/gatsby-node.js @@ -340,7 +340,7 @@ const createAdvocacy = (navTree, prevNext, doc, learn, actions) => { ); } - const path = `${doc.fields.path}/${katacodaPage.scenario}`; + const path = `${doc.fields.path}${katacodaPage.scenario}`; actions.createPage({ path: path, component: require.resolve('./src/templates/katacoda-page.js'), From 095be692579e87a73ad541bef8bbb259eacfe356 Mon Sep 17 00:00:00 2001 From: Josh Heyer <63653723+josh-heyer@users.noreply.github.com> Date: Thu, 18 Mar 2021 15:56:18 -0600 Subject: [PATCH 24/28] ensure that Katacoda won't try to load before the page content (#1090) Former-commit-id: d1b5b7af7c583abe2ceb64173f77d302082b2317 --- src/components/katacoda-panel.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/components/katacoda-panel.js b/src/components/katacoda-panel.js index d0a3ba99bc1..17a0efb9072 100644 --- a/src/components/katacoda-panel.js +++ b/src/components/katacoda-panel.js @@ -133,7 +133,10 @@ const KatacodaPanel = ({ katacodaPanelData }) => { return ( <> -