ODTUG Aggregator ODTUG Blogs http://localhost:8080 Tue, 12 Dec 2017 08:46:24 +0000 http://aggrssgator.com/ 10 reasons NOT to implement Blockchain now https://technology.amis.nl/2017/12/12/10-reasons-not-to-implement-blockchain-now/ <p>A secure distributed ledger with smart contract capabilities not requiring a bank as an intermediary! Also a single source of truth with complete traceability. Definitely something we want! Blockchain technology promises to make this possible. Blockchain became famous through cryptocurrency like Bitcoin and Ethereum. The technology could also be considered to replace B2B functionality. With new technologies it is not a bad idea to look at pro&#8217;s and con&#8217;s before starting an implementation. Blockchain is the new kid on the block and there is not much experience yet on how well he will play with others and will mature. In this blog I summarize some of my concerns concerning blockchain of which I hope will be solved in due time.</p> <p>Regarding new/emerging technologies in the integration space, I&#8217;m quite open to investigate the potential value which they can offer. I&#8217;m a great proponent of for example Kafka, the highly scalable streaming platform and Docker to host microservices. However, I&#8217;ve been to several conferences and did some research online regarding blockchain and I&#8217;m sceptical. I definitely don&#8217;t claim to be an expert on this subject so please correct me if I&#8217;m wrong! Also, this is my personal opinion. It might deviate from my employers and customers views.</p> <p>Most of the issues discussed here are valid for public blockchains. Private blockchains are of course more flexible since they can be managed by companies themselves. You can for example more easily migrate private blockchains to a new blockchain technology or fix issues with broken smart contracts. These do require management tooling, scripts and enough developers / operations people around your private blockchain though. I don&#8217;t think it is a deploy and go solution just yet.</p> <p><span id="more-47103"></span></p> <h2>1 Immutable is really immutable!</h2> <p>A pure public blockchain (not taking into account sidechains and off chain code) is an immutable chain. Every block uses a hashed value of the previous block in its encryption. You cannot alter a block which is already on the chain. This makes sure things you put on the chain cannot suddenly appear or disappear. There is traceability. Thus you cannot accidentally create money for example on a distributed ledger (unless you create immutable smart contracts to provide you with that functionality). Security and immutability are great things but they require you to work in a certain way we are not that used to yet. For example, you cannot cancel a confirmed transaction. You have to do a new transaction counteracting the effects of the previous one you want to cancel. If you have an unconfirmed transaction, you can &#8216;cancel&#8217; it by creating a new transaction with the same inputs and a higher transaction fee (at least on a public blockchain). See for example <a href="https://bitcoin.stackexchange.com/questions/23090/how-do-i-cancel-my-blockchain-transaction-still-unconfirmed">here</a>. Also if you put a smart contract on a public chain and it has a code flaw someone can abuse, you&#8217;re basically screwed. If the issue is big enough, public blockchains can fork (if &#8216;the community&#8217; agrees). See for example the <a href="https://www.coindesk.com/understanding-dao-hack-journalists/">DAO hack on Etherium</a>. In an enterprise environment with a private blockchain, you can fork the chain and replay the transactions after the issue you want corrected on the chain. This however needs to be performed for every serious enough issue and can be a time consuming operation. In this case it helps (in your private blockchain) if you have a &#8216;shadow administration&#8217; of transactions. You do have to take into account however that transactions can have different results based on what has changed since the fork. Being careful here is probably required.</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/immutable-defined.png?ssl=1"><img data-attachment-id="47114" data-permalink="https://technology.amis.nl/2017/12/12/10-reasons-not-to-implement-blockchain-now/immutable-defined/" data-orig-file="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/immutable-defined.png?fit=851%2C311&amp;ssl=1" data-orig-size="851,311" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="immutable-defined" data-image-description="" data-medium-file="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/immutable-defined.png?fit=300%2C110&amp;ssl=1" data-large-file="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/immutable-defined.png?fit=702%2C257&amp;ssl=1" class="aligncenter size-medium wp-image-47114" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/immutable-defined.png?resize=300%2C110&#038;ssl=1" alt="" width="300" height="110" srcset="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/immutable-defined.png?resize=300%2C110&amp;ssl=1 300w, https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/immutable-defined.png?resize=768%2C281&amp;ssl=1 768w, https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/immutable-defined.png?w=851&amp;ssl=1 851w" sizes="(max-width: 300px) 100vw, 300px" data-recalc-dims="1" /></a></p> <h2>2 Smart Contracts</h2> <p>Smart contracts! It is really cool you can also put a contract on the chain. Execution of the contract can be verified by nodes on the chain which have permission and the contract is immutable. This is a cool feature!</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/how-smart-contracts-work.png?ssl=1"><img data-attachment-id="47113" data-permalink="https://technology.amis.nl/2017/12/12/10-reasons-not-to-implement-blockchain-now/how-smart-contracts-work/" data-orig-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/how-smart-contracts-work.png?fit=481%2C215&amp;ssl=1" data-orig-size="481,215" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="how-smart-contracts-work" data-image-description="" data-medium-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/how-smart-contracts-work.png?fit=300%2C134&amp;ssl=1" data-large-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/how-smart-contracts-work.png?fit=481%2C215&amp;ssl=1" class="aligncenter size-medium wp-image-47113" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/how-smart-contracts-work.png?resize=300%2C134&#038;ssl=1" alt="" width="300" height="134" srcset="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/how-smart-contracts-work.png?resize=300%2C134&amp;ssl=1 300w, https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/how-smart-contracts-work.png?w=481&amp;ssl=1 481w" sizes="(max-width: 300px) 100vw, 300px" data-recalc-dims="1" /></a></p> <p>However there are some challenges when implementing smart contracts. A lot becomes possible and this freedom creates sometimes unwanted side-effects.</p> <h3>CryptoKitties</h3> <p>You can lookup <a href="https://www.cryptokitties.co/">CryptoKitties</a>, a game implemented by using Smart Contracts on Etherium. <a href="https://www.coindesk.com/loveable-digital-kittens-clogging-ethereums-blockchain/">They can clog</a> a public blockchain and cause transactions to take a really long time. This is not the first time blockchain congestion occurs (see for example <a href="https://www.cryptocoinsnews.com/ethereum-congested-time-start-looking-ico-platforms/">here</a>). This is a clear sign there are scalability issues, especially with public blockchains. When using private blockchains, these scalability issues are also likely to occur eventually if the number of transactions increases (of course you can prevent CryptoKitties on a private blockchain). The <a href="https://spectrum.ieee.org/energy/policy/the-ridiculous-amount-of-energy-it-takes-to-run-bitcoin">Bitcoin / VISA comparison</a> is an often quoted one, although there is much discussion on the validity of the comparison.</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/2017-12-10-11_35_37-CryptoKitties-_-Collect-and-breed-digital-cats.png?ssl=1"><img data-attachment-id="47106" data-permalink="https://technology.amis.nl/2017/12/12/10-reasons-not-to-implement-blockchain-now/2017-12-10-11_35_37-cryptokitties-_-collect-and-breed-digital-cats/" data-orig-file="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/2017-12-10-11_35_37-CryptoKitties-_-Collect-and-breed-digital-cats.png?fit=407%2C373&amp;ssl=1" data-orig-size="407,373" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="2017-12-10 11_35_37-CryptoKitties _ Collect and breed digital cats!" data-image-description="" data-medium-file="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/2017-12-10-11_35_37-CryptoKitties-_-Collect-and-breed-digital-cats.png?fit=300%2C275&amp;ssl=1" data-large-file="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/2017-12-10-11_35_37-CryptoKitties-_-Collect-and-breed-digital-cats.png?fit=407%2C373&amp;ssl=1" class="aligncenter size-medium wp-image-47106" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/2017-12-10-11_35_37-CryptoKitties-_-Collect-and-breed-digital-cats.png?resize=300%2C275&#038;ssl=1" alt="" width="300" height="275" srcset="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/2017-12-10-11_35_37-CryptoKitties-_-Collect-and-breed-digital-cats.png?resize=300%2C275&amp;ssl=1 300w, https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/2017-12-10-11_35_37-CryptoKitties-_-Collect-and-breed-digital-cats.png?w=407&amp;ssl=1 407w" sizes="(max-width: 300px) 100vw, 300px" data-recalc-dims="1" /></a></p> <h3>Immutable software. HelloWorld forever!</h3> <p>Smart contracts are implemented in code and code contains bugs and those bugs, depending on the implementation, sometimes cannot be fixed since the code on the chain is immutable. Especially since blockchain is a new technology, many people will put buggy code on public blockchains and that code will remain there forever. If you create <a href="https://en.wikipedia.org/wiki/The_DAO_(organization)">DAO</a>&#8216;s (decentralized autonomous organizations) on a blockchain, this becomes even more challenging since the codebase is larger. See for example the Etherium DAO hack.</p> <p>Because the code is immutable, it will remain on the chain forever. Every hello world tryout, every CryptoKitten from everyone will remain there. Downloading the chain and becoming a node will thus become more difficult as the amount of code on the chain increases, which it undoubtedly will.</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/build-a-helloworld-smart-contract-today.png?ssl=1"><img data-attachment-id="47111" data-permalink="https://technology.amis.nl/2017/12/12/10-reasons-not-to-implement-blockchain-now/build-a-helloworld-smart-contract-today/" data-orig-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/build-a-helloworld-smart-contract-today.png?fit=1024%2C379&amp;ssl=1" data-orig-size="1024,379" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="build-a-helloworld-smart-contract-today" data-image-description="" data-medium-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/build-a-helloworld-smart-contract-today.png?fit=300%2C111&amp;ssl=1" data-large-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/build-a-helloworld-smart-contract-today.png?fit=702%2C260&amp;ssl=1" class="aligncenter size-medium wp-image-47111" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/build-a-helloworld-smart-contract-today.png?resize=300%2C111&#038;ssl=1" alt="" width="300" height="111" srcset="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/build-a-helloworld-smart-contract-today.png?resize=300%2C111&amp;ssl=1 300w, https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/build-a-helloworld-smart-contract-today.png?resize=768%2C284&amp;ssl=1 768w, https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/build-a-helloworld-smart-contract-today.png?w=1024&amp;ssl=1 1024w" sizes="(max-width: 300px) 100vw, 300px" data-recalc-dims="1" /></a></p> <h3>Business people creating smart contracts?</h3> <p>A smart contract might give the idea a business person or lawyer should be able to design/create them. If they can create deterministic error free contracts which will be on the blockchain forever, that is of course possible. It is a question though how realistic that is. It seems like a similar idea that business people could create business rules in business rule engines (&#8216;citizen developers&#8217;). In my experience technical people need to do that in a controlled, tested manner.</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/71a08d7a016d7c62e1cd3b9736f774eb.jpg?ssl=1"><img data-attachment-id="47105" data-permalink="https://technology.amis.nl/2017/12/12/10-reasons-not-to-implement-blockchain-now/71a08d7a016d7c62e1cd3b9736f774eb/" data-orig-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/71a08d7a016d7c62e1cd3b9736f774eb.jpg?fit=1000%2C1250&amp;ssl=1" data-orig-size="1000,1250" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="71a08d7a016d7c62e1cd3b9736f774eb" data-image-description="" data-medium-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/71a08d7a016d7c62e1cd3b9736f774eb.jpg?fit=240%2C300&amp;ssl=1" data-large-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/71a08d7a016d7c62e1cd3b9736f774eb.jpg?fit=702%2C878&amp;ssl=1" class="aligncenter size-medium wp-image-47105" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/71a08d7a016d7c62e1cd3b9736f774eb.jpg?resize=240%2C300&#038;ssl=1" alt="" width="240" height="300" srcset="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/71a08d7a016d7c62e1cd3b9736f774eb.jpg?resize=240%2C300&amp;ssl=1 240w, https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/71a08d7a016d7c62e1cd3b9736f774eb.jpg?resize=768%2C960&amp;ssl=1 768w, https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/71a08d7a016d7c62e1cd3b9736f774eb.jpg?resize=819%2C1024&amp;ssl=1 819w, https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/71a08d7a016d7c62e1cd3b9736f774eb.jpg?w=1000&amp;ssl=1 1000w" sizes="(max-width: 240px) 100vw, 240px" data-recalc-dims="1" /></a></p> <h2>3 There is no intermediary and no guarantees</h2> <p>There is no bank in between you and the (public) blockchain. This can be a good thing since a bank eats money. However in case of for example the blockchain loses popularity, steeply drops in value or has been hacked (compare with a bank going bankrupt, e.g. <a href="https://en.wikipedia.org/wiki/Icesave_dispute">Icesave</a>) than you won&#8217;t have any guarantees like for example t<a href="https://ec.europa.eu/info/business-economy-euro/banking-and-finance/financial-supervision-and-risk-management/managing-risks-banks-and-financial-institutions/deposit-guarantee-schemes_en">he deposit guarantee schemes</a> in the EU. Your money might be gone.</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/Int-1.png?ssl=1"><img data-attachment-id="47115" data-permalink="https://technology.amis.nl/2017/12/12/10-reasons-not-to-implement-blockchain-now/int-1/" data-orig-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/Int-1.png?fit=500%2C313&amp;ssl=1" data-orig-size="500,313" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Int-1" data-image-description="" data-medium-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/Int-1.png?fit=300%2C188&amp;ssl=1" data-large-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/Int-1.png?fit=500%2C313&amp;ssl=1" class="aligncenter size-medium wp-image-47115" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/Int-1.png?resize=300%2C188&#038;ssl=1" alt="" width="300" height="188" srcset="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/Int-1.png?resize=300%2C188&amp;ssl=1 300w, https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/Int-1.png?w=500&amp;ssl=1 500w" sizes="(max-width: 300px) 100vw, 300px" data-recalc-dims="1" /></a></p> <h2>4 Updating the code of a blockchain</h2> <p>Updating the core code of a running blockchain is due to its distributed nature, quite the challenge. This often leads to forks. See for example Bitcoin forks like <a href="https://www.bitcoincash.org/">Bitcoin Cash</a> and <a href="https://arstechnica.com/tech-policy/2017/11/bitcoin-gold-the-latest-bitcoin-fork-explained/">Bitcoin Gold</a> and an Etherium fork like <a href="https://www.coindesk.com/ethereums-byzantium-hard-fork-is-running-smoothly-developers-say/">Byzantium</a>. The issue with forks is that it makes the entire cryptocurrency landscape crowded. It is like Europe in the past when every country had their own coin. You have to exchange coins if you want to spend in a certain country (using the intermediaries everyone wants to avoid) or have a stack of each of them. Forks, especially hard forks come with security challenges such as <a href="https://coinsutra.com/what-are-replay-attacks/">replay attacks</a> (transactions which can be valid on different chains). Some reasons you might want to update the code is because transactions are slow, security becomes an issue in the future (quantum computing) or new features are required (e.g. related to smart contracts).</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/Update-640x400.jpeg?ssl=1"><img data-attachment-id="47120" data-permalink="https://technology.amis.nl/2017/12/12/10-reasons-not-to-implement-blockchain-now/update-640x400/" data-orig-file="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/Update-640x400.jpeg?fit=640%2C400&amp;ssl=1" data-orig-size="640,400" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Update-640&#215;400" data-image-description="" data-medium-file="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/Update-640x400.jpeg?fit=300%2C188&amp;ssl=1" data-large-file="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/Update-640x400.jpeg?fit=640%2C400&amp;ssl=1" class="aligncenter size-medium wp-image-47120" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/Update-640x400.jpeg?resize=300%2C188&#038;ssl=1" alt="" width="300" height="188" srcset="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/Update-640x400.jpeg?resize=300%2C188&amp;ssl=1 300w, https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/Update-640x400.jpeg?resize=640%2C400&amp;ssl=1 640w" sizes="(max-width: 300px) 100vw, 300px" data-recalc-dims="1" /></a></p> <h2>5 Blockchain and privacy legislation (GDPR)</h2> <h3><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/GDPR.png?ssl=1"><img data-attachment-id="47112" data-permalink="https://technology.amis.nl/2017/12/12/10-reasons-not-to-implement-blockchain-now/gdpr/" data-orig-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/GDPR.png?fit=800%2C300&amp;ssl=1" data-orig-size="800,300" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="GDPR" data-image-description="" data-medium-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/GDPR.png?fit=300%2C113&amp;ssl=1" data-large-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/GDPR.png?fit=702%2C263&amp;ssl=1" class="aligncenter size-medium wp-image-47112" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/GDPR.png?resize=300%2C113&#038;ssl=1" alt="" width="300" height="113" srcset="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/GDPR.png?resize=300%2C113&amp;ssl=1 300w, https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/GDPR.png?resize=768%2C288&amp;ssl=1 768w, https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/GDPR.png?w=800&amp;ssl=1 800w" sizes="(max-width: 300px) 100vw, 300px" data-recalc-dims="1" /></a></h3> <h3>Security</h3> <p>Security is one of the strong points of blockchain technology and helps with the security by design and by default GDPR requirements. There are some other things to think about though.</p> <h3>The right to be forgotten</h3> <p>Things put on a blockchain are permanent. You cannot delete them afterwards, although you might be able to make then inaccessible in certain cases. This conflicts with <a href="https://gdpr-info.eu/art-17-gdpr/">the GDPR right to be forgotten</a>.</p> <h3>Data localization requirements</h3> <p>Every node has the entire blockchain and thus all the data. This might cause issues with legislation. For example requirements to have data contained within the same country. This becomes more of a challenge when running blockchain in a cloud environment. In Europe with many relatively small countries, this will be more of an issue compared to for example the US, Russia or China.</p> <h3>Blockchain in the cloud</h3> <p>It is really dependent on the types of services the blockchain cloud provider offers and how much they charge for it. It could be similar to using a bank, requiring you to pay per transaction. In that case, why not stick to a bank? Can you enforce the nodes being located in your country? If you need to fix a broken smart contract, will there be a service request and will the cloud provider fork and replay transactions for you? Will you get access to the blockchain itself? Will they provide a transaction manager? Will they guarantee a max transactions per second in their SLA? A lot of questions for which there are probably answers (which differ per provider) and based on those answers, you can make a cost calculation if it will be worthwhile to use the cloud blockchain. In the cloud, the challenges with being GDPR compliant are even greater (especially for European governments and banks).</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/blockchain-cloud-service.png?ssl=1"><img data-attachment-id="47110" data-permalink="https://technology.amis.nl/2017/12/12/10-reasons-not-to-implement-blockchain-now/blockchain-cloud-service/" data-orig-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/blockchain-cloud-service.png?fit=703%2C257&amp;ssl=1" data-orig-size="703,257" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="blockchain cloud service" data-image-description="" data-medium-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/blockchain-cloud-service.png?fit=300%2C110&amp;ssl=1" data-large-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/blockchain-cloud-service.png?fit=702%2C257&amp;ssl=1" class="aligncenter size-medium wp-image-47110" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/blockchain-cloud-service.png?resize=300%2C110&#038;ssl=1" alt="" width="300" height="110" srcset="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/blockchain-cloud-service.png?resize=300%2C110&amp;ssl=1 300w, https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/blockchain-cloud-service.png?resize=702%2C257&amp;ssl=1 702w, https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/blockchain-cloud-service.png?w=703&amp;ssl=1 703w" sizes="(max-width: 300px) 100vw, 300px" data-recalc-dims="1" /></a></p> <h2>6 Lost your private key?</h2> <p>If you have lost your private key or lost access to your wallet (more business friendly name of a keystore) containing your private key, you might have lost your assets on the blockchain. Luckily a blockchain is secure and there is no easy way to fix this. If you have a wallet which is being managed by a 3rd party, they might be able to help you with recovering it. Those 3rd parties however are hacked quite often (a lot of value can be obtained from such a hack). See for example <a href="https://www.businessinsider.nl/nicehash-bitcoin-wallet-hacked-contents-stolen-in-security-breach-2017-12/?international=true&amp;r=US">here</a>, <a href="https://www.reddit.com/r/Bitcoin/comments/79nbei/my_387_bitcoins_got_hacked_and_stolen/?st=jaz8g8ai&amp;sh=2b7cdf99">here</a> and <a href="https://medium.com/@CodyBrown/how-to-lose-8k-worth-of-bitcoin-in-15-minutes-with-verizon-and-coinbase-com-ba75fb8d0bac">here</a>.</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/key-clipart-lost-key-2.png?ssl=1"><img data-attachment-id="47116" data-permalink="https://technology.amis.nl/2017/12/12/10-reasons-not-to-implement-blockchain-now/key-clipart-lost-key-2/" data-orig-file="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/key-clipart-lost-key-2.png?fit=282%2C256&amp;ssl=1" data-orig-size="282,256" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="key-clipart-lost-key-2" data-image-description="" data-medium-file="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/key-clipart-lost-key-2.png?fit=282%2C256&amp;ssl=1" data-large-file="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/key-clipart-lost-key-2.png?fit=282%2C256&amp;ssl=1" class="aligncenter size-full wp-image-47116" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/key-clipart-lost-key-2.png?resize=282%2C256&#038;ssl=1" alt="" width="282" height="256" data-recalc-dims="1" /></a></p> <h2>7 A blockchain transaction manager is required</h2> <p>A transaction is put on the blockchain. The transaction is usually verified by several several nodes before it is distributed to all nodes and becomes part of the chain. Verification can fail or might take a while. This can be hours on some public blockchains. It could be the transaction has been caught up by another transaction with higher priority. In the software which is integrated with a blockchain solution, you have to keep track on the state of transactions since you want to know what the up to date value is of your assets. This causes an integration challenge and you might have to introduce a product which has a blockchain transaction manager feature.</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/7690686912-9366c721e1-b.jpeg?ssl=1"><img data-attachment-id="47107" data-permalink="https://technology.amis.nl/2017/12/12/10-reasons-not-to-implement-blockchain-now/7690686912-9366c721e1-b/" data-orig-file="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/7690686912-9366c721e1-b.jpeg?fit=680%2C296&amp;ssl=1" data-orig-size="680,296" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="7690686912-9366c721e1-b" data-image-description="" data-medium-file="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/7690686912-9366c721e1-b.jpeg?fit=300%2C131&amp;ssl=1" data-large-file="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/7690686912-9366c721e1-b.jpeg?fit=680%2C296&amp;ssl=1" class="aligncenter size-medium wp-image-47107" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/7690686912-9366c721e1-b.jpeg?resize=300%2C131&#038;ssl=1" alt="" width="300" height="131" srcset="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/7690686912-9366c721e1-b.jpeg?resize=300%2C131&amp;ssl=1 300w, https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/7690686912-9366c721e1-b.jpeg?w=680&amp;ssl=1 680w" sizes="(max-width: 300px) 100vw, 300px" data-recalc-dims="1" /></a></p> <h2>8 Resource inefficient; not good for the environment</h2> <p>Blockchain requires large amounts of resources when compared to classic integration.<br /> Everyone node has the complete chain so everyone can verify transactions. This is a good thing since if a single node is hacked, other nodes will overrule the transactions which this node offers to the chain if they are invalid in whatever way. However this means every transaction is distributed to all nodes (network traffic) and every verification is performed on every node (CPU). Also when the chain becomes larger, every node has a complete copy and thus diskspace is not used efficiently. See for example some research on blockchain electricity usage <a href="https://motherboard.vice.com/en_us/article/aek3za/bitcoin-could-consume-as-much-electricity-as-denmark-by-2020">here</a>. Another example is that a single Bitcoin transaction (4 can be processed per second) requires the same amount of electricity as 5000 <a href="https://spectrum.ieee.org/energy/policy/the-ridiculous-amount-of-energy-it-takes-to-run-bitcoin">VISA transactions</a> (while VISA can do 4000 transactions per second, see <a href="https://en.bitcoin.it/wiki/Scalability">here</a>). Of course there is <a href="https://hackernoon.com/the-bitcoin-vs-visa-electricity-consumption-fallacy-8cf194987a50">discussion on the validity of such a comparison</a> and in the future this will most likely change. Also an indication blockchains are still in the early stages.</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/1459265477370211.jpg?ssl=1"><img data-attachment-id="47108" data-permalink="https://technology.amis.nl/2017/12/12/10-reasons-not-to-implement-blockchain-now/attachment/1459265477370211/" data-orig-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/1459265477370211.jpg?fit=1050%2C429&amp;ssl=1" data-orig-size="1050,429" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="1459265477370211" data-image-description="" data-medium-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/1459265477370211.jpg?fit=300%2C123&amp;ssl=1" data-large-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/1459265477370211.jpg?fit=702%2C287&amp;ssl=1" class="aligncenter size-medium wp-image-47108" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/1459265477370211.jpg?resize=300%2C123&#038;ssl=1" alt="" width="300" height="123" srcset="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/1459265477370211.jpg?resize=300%2C123&amp;ssl=1 300w, https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/1459265477370211.jpg?resize=768%2C314&amp;ssl=1 768w, https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/1459265477370211.jpg?resize=1024%2C418&amp;ssl=1 1024w, https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/1459265477370211.jpg?w=1050&amp;ssl=1 1050w" sizes="(max-width: 300px) 100vw, 300px" data-recalc-dims="1" /></a></p> <h2>9 Maturity</h2> <p>Blockchain is relatively new and new implementations appear almost daily. There is little standardisation. The below picture was taken from a slide at the UKOUG Apps17 conference in Birmingham this year (the presentation was given by David Haimes).</p> <p>Even with this many (partially open source) products, it seems every implementation requires a new product. For example the Estonian government has implemented their own blockchain flavor; <a href="https://e-estonia.com/solutions/security-and-safety/ksi-blockchain/">KSI Blockchain</a>. It is likely that eventually there will be a most common used product which will hopefully be the one that works best (not like what happened in <a href="https://en.wikipedia.org/wiki/Videotape_format_war">the videotape format wars</a>).</p> <h3>Which product?</h3> <p>If you choose a product now to implement, you will most likely not choose the product which will be most popular in a couple of years time. Improvements to the technology/products will quite quickly catch up to you. This will probably mean you would have to start migration projects.</p> <h3>Standards?</h3> <p>For example in case of webservice integrations, there are many internationally acknowledged standards such as the WS-* standards and SOAP. For REST services there is JOSE, JWT and of course JSON. What is there for blockchain? Every product uses its own protocol. Like in the times when Microsoft conjured up its own HTML/JavaScript standards causing cross browser compatibility issues. Only this time there are hundreds of Microsofts.</p> <h2>10 Quantum computing</h2> <p>Most of the blockchain implementations are based on ECDSA signatures. Elliptic curve cryptography is vulnerable to a modified Shor&#8217;s algorithm for solving the discrete logarithm problem on elliptic curves. This potentially makes it possible to obtain a user&#8217;s private key from their public key when performing a transaction (see <a href="https://security.stackexchange.com/questions/34940/is-ecdsa-breakable-by-quantum-computers">here</a> and <a href="https://singularityhub.com/2017/11/05/is-quantum-computing-an-existential-threat-to-blockchain-technology/#sm.0001q2mddl2nsevzqrl27myqhdcuk">here</a>). Of course this will be fixed, but how? By forking the public blockchains? By introducing new blockchains? As indicated before, updating the technology of a blockchain can be challenging.</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/Quantum-Computing-05.png?ssl=1"><img data-attachment-id="47118" data-permalink="https://technology.amis.nl/2017/12/12/10-reasons-not-to-implement-blockchain-now/quantum-computing-05/" data-orig-file="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/Quantum-Computing-05.png?fit=1289%2C990&amp;ssl=1" data-orig-size="1289,990" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Quantum-Computing-05" data-image-description="" data-medium-file="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/Quantum-Computing-05.png?fit=300%2C230&amp;ssl=1" data-large-file="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/Quantum-Computing-05.png?fit=702%2C539&amp;ssl=1" class="aligncenter size-medium wp-image-47118" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/Quantum-Computing-05.png?resize=300%2C230&#038;ssl=1" alt="" width="300" height="230" srcset="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/Quantum-Computing-05.png?resize=300%2C230&amp;ssl=1 300w, https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/Quantum-Computing-05.png?resize=768%2C590&amp;ssl=1 768w, https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/Quantum-Computing-05.png?resize=1024%2C786&amp;ssl=1 1024w, https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/Quantum-Computing-05.png?w=1289&amp;ssl=1 1289w" sizes="(max-width: 300px) 100vw, 300px" data-recalc-dims="1" /></a></p> <h1>How to deal with these challenges?</h1> <p>You can jump on the wagon and hope the ride will not carry you off a cliff. I would be a bit careful when implementing blockchain. I would not expect in an enterprise to quickly get something to production which will actually be worthwhile in use without requiring a lot of expertise to work on all the challenges.</p> <p>Companies will gain experience with this technology and architectures which mitigate these challenges will undoubtedly emerge. A new development could also be that the base assumptions the blockchain technology is based on, are not practical in enterprise environments and another technology arises to fill the gap.</p> <h2>Alternatives</h2> <h3>Not really</h3> <p>To be honest, a solid alternative which covers all the use cases of blockchain is not easily found. This might also help in explaining the popularity of blockchain. Although there are many technical challenges, in absence of a solid alternative, where should you go to implement those use cases?</p> <h3>SWIFT?</h3> <p>Exchanging value internationally has been done by using the <a href="https://en.wikipedia.org/wiki/Society_for_Worldwide_Interbank_Financial_Telecommunication">SWIFT network</a> (usually by using a B2B application to provide a bridge). This however often requires manual interventions (at least in my experience) and there are security considerations. <a href="https://en.wikipedia.org/wiki/2015%E2%80%932016_SWIFT_banking_hack">SWIFT has been hacked</a> for example.</p> <h3>Kafka?</h3> <p>The idea of having a consortium which guards a shared truth has been around for quite a while in the B2B world. The technology such a consortium uses can just as well for example be a collection of Kafka topics. It would require a per use-case study if all the blockchain features can be implemented. It will perform way better, the order of messages (like in a blockchain) can be guaranteed, a message put on a topic is immutable and you can use compacted topics to get the latest value of something. Kafka has been designed to be easily scalable. It might be worthwhile to explore if you can create a blockchain like setup which does not have its drawbacks.</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/logo.png?ssl=1"><img data-attachment-id="47117" data-permalink="https://technology.amis.nl/2017/12/12/10-reasons-not-to-implement-blockchain-now/logo-2/" data-orig-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/logo.png?fit=975%2C291&amp;ssl=1" data-orig-size="975,291" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="logo" data-image-description="" data-medium-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/logo.png?fit=300%2C90&amp;ssl=1" data-large-file="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/logo.png?fit=702%2C210&amp;ssl=1" class="aligncenter size-medium wp-image-47117" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/logo.png?resize=300%2C90&#038;ssl=1" alt="" width="300" height="90" srcset="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/logo.png?resize=300%2C90&amp;ssl=1 300w, https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/logo.png?resize=768%2C229&amp;ssl=1 768w, https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/logo.png?w=975&amp;ssl=1 975w" sizes="(max-width: 300px) 100vw, 300px" data-recalc-dims="1" /></a></p> <h2>Off-chain transactions and sidechains</h2> <p>Some blockchain issues can be mitigated by using so-called off-chain transactions and code. See for example <a href="https://en.bitcoin.it/wiki/Off-Chain_Transactions">here</a>. Sidechains are extensions to existing blockchains, enhancing their privacy and functionality by adding features like smart contracts and confidential transactions.</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/sidechains.jpg?ssl=1"><img data-attachment-id="47119" data-permalink="https://technology.amis.nl/2017/12/12/10-reasons-not-to-implement-blockchain-now/sidechains/" data-orig-file="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/sidechains.jpg?fit=673%2C362&amp;ssl=1" data-orig-size="673,362" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="sidechains" data-image-description="" data-medium-file="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/sidechains.jpg?fit=300%2C161&amp;ssl=1" data-large-file="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/sidechains.jpg?fit=673%2C362&amp;ssl=1" class="aligncenter size-medium wp-image-47119" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/sidechains.jpg?resize=300%2C161&#038;ssl=1" alt="" width="300" height="161" srcset="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/sidechains.jpg?resize=300%2C161&amp;ssl=1 300w, https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/sidechains.jpg?w=673&amp;ssl=1 673w" sizes="(max-width: 300px) 100vw, 300px" data-recalc-dims="1" /></a></p> <h1>Finally</h1> <p>It might not seem like it, from the above, but I&#8217;m excited about this new technology. Currently however in my opinion, it is still immature. It lacks standardization, performance and the immutable nature of a blockchain might be difficult to deal with in an actual enterprise. With this blog I tried to create some awareness on things you might think about when considering an implementation. Currently implementations (still?) require much consultancy on the development and operations side, to make it work. This is of course a good thing in my line of work!</p> <p>The post <a rel="nofollow" href="https://technology.amis.nl/2017/12/12/10-reasons-not-to-implement-blockchain-now/">10 reasons NOT to implement Blockchain now</a> appeared first on <a rel="nofollow" href="https://technology.amis.nl">AMIS Oracle and Java Blog</a>.</p> Maarten Smeets https://technology.amis.nl/?p=47103 Tue Dec 12 2017 07:35:46 GMT-0500 (EST) Docker : My First Steps https://oracle-base.com/blog/2017/12/12/docker-my-first-steps/ <p><img class="alignleft wp-image-7760" src="https://oracle-base.com/blog/wp-content/uploads/2017/12/docker.png" alt="" width="200" height="171" />In a <a href="/blog/2017/11/02/oracle-openworld-2017-feedback/">blog post</a> after OpenWorld I mentioned I might not be writing so much for a while as something at work was taking a lot of my &#8220;home time&#8221;, which might result in some articles, but then again might not&#8230; Well, that something was Docker&#8230;</p> <p>After spending a couple of years saying I was going to start looking at Docker, in June I wrote a couple of articles, put them on the website, but didn&#8217;t mention them to anyone.  I was finding it quite hard to focus on Docker because of all the fun I was having with <a href="/articles/misc/articles-misc#ords">ORDS</a>. More recently it became apparent that we have a couple of use-cases for Docker at work, one of which involved ORDS, so it reignited my interest. There&#8217;s nothing like actually needing to use something to make you knuckle down and learn it&#8230; <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p> <p>Having gone back to revisit Docker, I realised the two articles I wrote were terrible, which wasn&#8217;t surprising considering how little time I had spent using Docker at that point. The more I used Docker, the more I realised I had totally missed the point. I had come to it with too many preconceptions, mostly relating to virtualization, that were leading me astray. I reached out to a few people (<a href="https://twitter.com/GeraldVenzl">Gerald Venzl</a>, <a href="https://twitter.com/brunoborges">Bruno Borges</a> &amp; <a href="https://twitter.com/AviAtOracle">Avi Miller</a>) for help and advice, which got me back on track&#8230;</p> <p>I&#8217;ve been playing around with Docker a lot lately, which has resulted in a few articles, with some more on the way. I&#8217;m not trying to make out I&#8217;m &#8220;the Docker guy&#8221; now, because I&#8217;m clearly not. I&#8217;m not suggesting you use my Docker builds, because there are better ones around, like <a href="https://github.com/oracle/docker-images">these</a>. I&#8217;m just trying to learn this stuff and I do that by playing and writing. If other people find that useful and want to follow me on the journey, that&#8217;s great. If you prefer to go straight to the source (<a href="https://docs.docker.com/">docs.docker.com</a>) that&#8217;s probably a better idea. <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p> <p>I do a lot of rewrites of articles on my website in general. This is especially true of these Docker articles, which seem to be in a permanent state of flux at the moment. Part of me wanted to wait until I was a little more confident about it all, because I didn&#8217;t want to make all my mistakes in public, then part of me thought, &#8220;sod it!&#8221;</p> <p>If you want to see what I&#8217;ve been doing all the articles are on my website and the Dockerfiles on Github.</p> <ul> <li><a href="/articles/linux/articles-linux#docker">Docker Articles</a></li> <li><a href="https://github.com/oraclebase/dockerfiles">Dockerfiles on GitHub</a></li> </ul> <p>I&#8217;m having a lot of fun playing around with Docker. You could say, I&#8217;m having a &#8220;whale&#8221; of a time! (I&#8217;ll get my coat&#8230;)</p> <p>Cheers</p> <p>Tim&#8230;</p> <hr style="border-top:black solid 1px" /><a href="https://oracle-base.com/blog/2017/12/12/docker-my-first-steps/">Docker : My First Steps</a> was first posted on December 12, 2017 at 8:51 am.<br />©2012 "<a href="http://www.oracle-base.com/blog">The ORACLE-BASE Blog</a>". Use of this feed is for personal non-commercial use only. If you are not reading this article in your feed reader, then the site is guilty of copyright infringement.<br /> Tim... https://oracle-base.com/blog/?p=7759 Tue Dec 12 2017 02:51:02 GMT-0500 (EST) ORA-00600 Kcratr_nab_less_than_odr While Starting The Database http://oracle-help.com/oracle-11g/ora-00600-kcratr_nab_less_than_odr-starting-database/ <p><span style="font-family: 'comic sans ms', sans-serif">While opening the database, if you are getting below ORA-0600 error. Whenever an ORA-0600 error is raised, a trace file is generated and an entry is written to the alert.log with details of the trace file location. As of Oracle 11g, the database includes an advanced fault diagnosability infrastructure to manage trace data. </span></p> <p><span style="font-family: 'comic sans ms', sans-serif"><strong>Problem:</strong></span></p> <p><span style="font-family: 'comic sans ms', sans-serif">ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr]</span></p> <p><strong>Solution:</strong></p> <p><strong><span style="font-family: 'comic sans ms', sans-serif">1. Check the Alert Log</span></strong></p> <p><span style="font-family: 'comic sans ms', sans-serif">The alert log may indicate additional errors or other internal errors at the time of the problem. Focus your analysis of the problem on the first internal error in the sequence. There are some exceptions, but often additional internal errors are side-effects of the first error condition.</span></p> <p><span style="font-family: 'comic sans ms', sans-serif">The associated trace file may be truncated if the MAX_DUMP_FILE_SIZE parameter is not </span>setup<span style="font-family: 'comic sans ms', sans-serif"> high enough or </span>to<span style="font-family: 'comic sans ms', sans-serif"> „unlimited‟. If you see a message at the end of the trace file</span></p> <p><strong><span style="font-family: 'comic sans ms', sans-serif">&#8220;MAX DUMP FILE SIZE EXCEEDED&#8221;</span></strong></p> <p><span style="font-family: 'comic sans ms', sans-serif">there could be vital diagnostic information missing in the file and finding the root issue may be very difficult. Set the MAX_DUMP_FILE_SIZE appropriately and regenerate the error for complete trace information.</span></p> <p><strong><span style="font-family: 'comic sans ms', sans-serif">2. Search 600/7445 Lookup Tool</span></strong></p> <p><span style="font-family: 'comic sans ms', sans-serif">Visit My Oracle Support to access the ORA-00600 Lookup tool (Note 600.1). The ORA-600/ORA-7445 Lookup tool may lead you to applicable content in My Oracle Support on the problem and can be used to investigate the problem with argument data from the error message or you can pull out key stack pointers from the associated trace file to match up against known bugs.</span></p> <p><strong><span style="font-family: 'comic sans ms', sans-serif">3. Investigate reference material on the error</span></strong></p> <p><span style="font-family: 'comic sans ms', sans-serif">In the search tool from above, choose Error Code ORA-600 and enter the first argument number or character string. Click on „Lookup error‟ button to review the reference note for your error. The reference note will provide a description of the error and may point to specific notes or bugs that possibly cause the error.</span></p> <p><strong>5.</strong></p> <p><span style="font-family: 'comic sans ms', sans-serif">SQL&gt;startup</span><br /> <span style="font-family: 'comic sans ms', sans-serif">ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance</span><br /> <span style="font-family: 'comic sans ms', sans-serif">ORACLE instance started.</span></p> <p><span style="font-family: 'comic sans ms', sans-serif">Total System Global Area 8754618368 bytes</span><br /> <span style="font-family: 'comic sans ms', sans-serif">Fixed Size 4646288 bytes</span><br /> <span style="font-family: 'comic sans ms', sans-serif">Variable Size 4160756336 bytes</span><br /> <span style="font-family: 'comic sans ms', sans-serif">Database Buffers 4429185024 bytes</span><br /> <span style="fonfamily: 'comic sans ms', sans-serif">Redo Buffers 160030720 bytes</span><br /> <span style="font-family: 'comic sans ms', sans-serif">Database mounted.</span><br /> <span style="font-family: 'comic sans ms', sans-serif">ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr]</span></p> <p><span style="font-family: 'comic sans ms', sans-serif"><strong>Solution:</strong></span></p> <h5><span style="font-family: 'comic sans ms', sans-serif">1. start the database in mount stage:</span></h5> <p>&nbsp;</p> <p><span style="font-family: 'comic sans ms', sans-serif">SQL&gt;Startup mount ;</span><br /> <span style="font-family: 'comic sans ms', sans-serif">ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance</span><br /> <span style="font-family: 'comic sans ms', sans-serif">ORACLE instance started.</span><br /> <span style="font-family: 'comic sans ms', sans-serif">Total System Global Area 8754618368 bytes</span><br /> <span style="font-family: 'comic sans ms', sans-serif">Fixed Size 4646288 bytes</span><br /> <span style="font-family: 'comic sans ms', sans-serif">Variable Size 4160756336 bytes</span><br /> <span style="font-family: 'comic sans ms', sans-serif">Database Buffers 4429185024 bytes</span><br /> <span style="font-family: 'comic sans ms', sans-serif">Redo Buffers 160030720 bytes</span><br /> <span style="font-family: 'comic sans ms', sans-serif">Database mounted.</span></p> <h5><span style="font-family: 'comic sans ms', sans-serif">2. Get </span>controlfile<span style="font-family: 'comic sans ms', sans-serif"> and redo file location:</span></h5> <p><span style="font-family: 'comic sans ms', sans-serif">SQL[SYS@BBCRMST1]SQL&gt;&gt;]Show parameter control_files</span></p> <p><span style="font-family: 'comic sans ms', sans-serif">NAME TYPE VALUE</span><br /> <span style="font-family: 'comic sans ms', sans-serif">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</span><br /> <span style="font-family: 'comic sans ms', sans-serif">control_files string /u03/oracle/oradata/BBCRMST1/control01.ctl, /u03/oracle/orad</span><br /> <span style="font-family: 'comic sans ms', sans-serif">ata/BBCRMST1/control02.ctl</span></p> <p><span style="font-family: 'comic sans ms', sans-serif">SQL[SYS@BBCRMST1]SQL&gt;&gt;] select a.member, a.group#, b.status from v$logfile a ,v$log b where a.group#=b.group# and b.status=&#8217;CURRENT&#8217;;</span></p> <p><span style="font-family: 'comic sans ms', sans-serif">MEMBER GROUP# STATUS</span><br /> <span style="font-family: 'comic sans ms', sans-serif">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;-</span><br /> <span style="font-family: 'comic sans ms', sans-serif">/u03/oracle/oradata/BBCRMST1/redo06.log 6 CURRENT</span></p> <h5><span style="font-family: 'comic sans ms', sans-serif">3. shutdown the database and take physical backup of </span>controlfile</h5> <p><span style="font-family: 'comic sans ms', sans-serif">shutdown abort</span></p> <p><span style="font-family: 'comic sans ms', sans-serif">cp /u03/oracle/oradata/BBCRMST1/control01.ctl /u03/oracle/oradata/BBCRMST1/control01.ctl_bkup</span><br /> <span style="font-family: 'comic sans ms', sans-serif">cp /u03/oracle/oradata/BBCRMST1/control02.ctl /u03/oracle/oradata/BBCRMST1/control02.ctl_bkup</span></p> <h5><span style="font-family: 'comic sans ms', sans-serif">4. startup mount</span></h5> <p><span style="font-family: 'comic sans ms', sans-serif"><span class="crayon-e">Startup </span><span class="crayon-i">mount</span> <span class="crayon-sy">;</span></span></p> <h5><span style="font-family: 'comic sans ms', sans-serif">5. Recover the database by applying current logfile: </span></h5> <p><span style="font-family: 'comic sans ms', sans-serif">recover database using backup controlfile until cancel ;</span><br /> <span style="font-family: 'comic sans ms', sans-serif">/u03/oracle/oradata/BBCRMST1/redo06.log</span></p> <p><span style="font-family: 'comic sans ms', sans-serif">SQL&gt; Alter database open </span>resetlogs<span style="font-family: 'comic sans ms', sans-serif"> ;</span></p> <p>&nbsp;</p> <div id="crayon-5a2f6596f23a7525062424" class="crayon-syntax crayon-theme-github crayon-font-monaco crayon-os-pc print-yes notranslate"> <div class="crayon-plain-wrap"><span style="font-family: 'comic sans ms', sans-serif"> </span></div> </div> <p>The post <a rel="nofollow" href="http://oracle-help.com/oracle-11g/ora-00600-kcratr_nab_less_than_odr-starting-database/">ORA-00600 Kcratr_nab_less_than_odr While Starting The Database</a> appeared first on <a rel="nofollow" href="http://oracle-help.com">ORACLE-HELP</a>.</p> Anuradha Mudgal http://oracle-help.com/?p=2727 Tue Dec 12 2017 00:27:43 GMT-0500 (EST) ORA-27054: NFS File System Where The File Is Created While Expdp http://oracle-help.com/oracle-11g/ora-27054-nfs-file-system-file-created-expdp/ <p>This post explains about the steps which is used by DBA while facing error <strong>ORA-27054</strong>. For beginners, we have few lines that explain about the technical view of <strong>NFS.</strong></p> <p><a href="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/9.jpg"><img data-attachment-id="2725" data-permalink="http://oracle-help.com/oracle-11g/ora-27054-nfs-file-system-file-created-expdp/attachment/9-18/" data-orig-file="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/9.jpg?fit=225%2C225" data-orig-size="225,225" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="9" data-image-description="" data-medium-file="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/9.jpg?fit=225%2C225" data-large-file="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/9.jpg?fit=225%2C225" class="alignnone wp-image-2725" src="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/9.jpg?resize=341%2C341" alt="" width="341" height="341" srcset="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/9.jpg?w=225 225w, https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/9.jpg?resize=150%2C150 150w, https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/9.jpg?resize=60%2C60 60w" sizes="(max-width: 341px) 100vw, 341px" data-recalc-dims="1" /></a></p> <p><strong>Network File System (NFS)</strong> is a distributed file system protocol originally developed by Sun Microsystems in 1984, allowing a user on a client computer to access files over a computer network much like local storage is accessed. NFS, like many other protocols, builds on the Open Network Computing Remote Procedure Call (ONC RPC) system. The NFS is an open standard defined in Request for Comments (RFC), allowing anyone to implement the protocol.<strong> </strong></p> <p><strong>While doing expdp  the dumpfile to an NFS mount point, you may receive below error.</strong></p> <p><strong>Error:</strong></p> <div id="crayon-5a2f62ece2dbc649002983" class="crayon-syntax crayon-theme-github crayon-font-monaco crayon-os-pc print-yes notranslate"> <div class="crayon-plain-wrap"> Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 &#8211; 64bit Production<br /> With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,<br /> Data Mining and Real Application Testing options<br /> ORA-39001: invalid argument value<br /> ORA-39000: bad dump file specification<br /> ORA-31641: unable to create dump file &#8220;/expdmp/LOY900/exp_loy_900_crmpre_01.dmp&#8221;<br /> ORA-27054: NFS file system where the file is created or resides is not mounted with correct options<br /> Additional information: 3<br /> Additional information: 18</div> </div> <p><strong>Cause:</strong> The file was on an NFS partition and either reading the mount tab file failed or the partition was not mounted with the correct mount option.</p> <div class="crayon-plain-wrap"></div> <div> <h5>Solution:</h5> <p>Run the below statement as sysdba</p> <p>SQL&gt; alter system set events &#8216;10298 trace name context forever, level 32&#8217;;</p> <p>System altered</p> <p>Now trigger the expdp again.</p> <p>oracle@crmcpredb1:/expdmp/LOY900$ expdp parfile=exp_loy_900_crmpre.par</p> <p>Export: Release 11.2.0.4.0 &#8211; Production on Mon Apr 18 12:39:34 2016</p> <p>Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.</p> <p>Username: / as sysdba</p> <p>Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 &#8211; 64bit Production<br /> With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,<br /> Data Mining and Real Application Testing options<br /> Starting &#8220;SYS&#8221;.&#8221;SYS_EXPORT_TABLE_08&#8243;: /******** AS SYSDBA parfile=exp_loy_900_crmpre.par<br /> An estimate of progress using BLOCKS method&#8230;</p> <p>&nbsp;</p> <p>&nbsp;</p> </div> <p>The post <a rel="nofollow" href="http://oracle-help.com/oracle-11g/ora-27054-nfs-file-system-file-created-expdp/">ORA-27054: NFS File System Where The File Is Created While Expdp</a> appeared first on <a rel="nofollow" href="http://oracle-help.com">ORACLE-HELP</a>.</p> Anuradha Mudgal http://oracle-help.com/?p=2723 Tue Dec 12 2017 00:14:21 GMT-0500 (EST) ORA-00240: control file enqueue held for more than 120 seconds 12c http://www.fahdmirza.com/2017/12/ora-00240-control-file-enqueue-held-for.html <div dir="ltr" style="text-align: left;" trbidi="on">Occasionally, In Oracle 12c database, you may get&nbsp;ORA-00240: control file enqueue held for more than 120 seconds&nbsp; error in the alert log file.<br /><br /><a name='more'></a><br />Well, as this error contains the word control file so it looks scary but if you are getting it infrequently and the instance stays up and running then there is no need to worry and this can be ignored as a fleeting glitch.<br /><br />But if it starts happening too often and worst case if it hangs or crashes the instance then more than likely its&nbsp; a bug and you need to apply either the latest PSU or any one-off patch available from Oracle support after raising SR.<br /><br />There have been some occurances where this error occured due to high number of sessions and conflicting with the ulimit of the operating system resulting in hanging of ASM and RDBMS. Some time it could be due to shared pool latch contention as per few MOS documents.<br /><br />So if its rare, then ignore it and move on with the life as there are other plenty of things to worry about. If its frequent and a show-stopper then by all means raise a SEV-1 SR with Oracle support as soon as possible.</div> Fahd Mirza tag:blogger.com,1999:blog-3496259157130184660.post-5588376271400773203 Mon Dec 11 2017 23:30:00 GMT-0500 (EST) How to use Catalog start with command http://oracle-help.com/backup-and-recovery/use-catalog-start-command/ <p>Recovery Manager(<strong>RMAN</strong>) is an Oracle Database client that performs backup  and recovery tasks on your databases and automates administration of your backup strategies.</p> <p>It greatly simplifies backing up,restoring and recovering database files.</p> <p>If you have backup files in <strong>non-FRA</strong> location  , you can catalog your backup using catalog start with command of <strong>RMAN</strong>.</p> <p><strong>Note</strong> : All backup pieces should be under one common location .</p> <p>Login to <strong>rman</strong> :</p><pre class="crayon-plain-tag">C:\Windows\system32&gt;rman target sys/oracle Recovery Manager: Release 11.2.0.4.0 - Production on Fri Dec 8 20:00:42 2017 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. connected to target database: DBTEST (DBID=1353774893, not open)</pre><p>Check backup available to rman using list backup :</p><pre class="crayon-plain-tag">RMAN&gt; list backup; using target database control file instead of recovery catalog specification does not match any backup in the repository RMAN&gt;</pre><p>we can see here , no backups are available to rman but I have physical backup available in <strong>d:\oracle\backup\DBTEST\</strong> folder.</p> <p>So using catalog start with command we can <strong>catalog</strong> that files to rman.</p><pre class="crayon-plain-tag">RMAN&gt; catalog start with 'd:\oracle\backup\DBTEST\'; searching for all files that match the pattern d:\oracle\backup\DBTEST\ List of Files Unknown to the Database ===================================== File Name: D:\ORACLE\BACKUP\DBTEST\AUTOBACKUP\2017_11_24\O1_MF_S_960913571_F1HYPDOZ_.BKP File Name: D:\ORACLE\BACKUP\DBTEST\AUTOBACKUP\2017_11_24\O1_MF_S_960916783_F1J1TTCV_.BKP File Name: D:\ORACLE\BACKUP\DBTEST\AUTOBACKUP\2017_12_08\O1_MF_S_962220655_F2O6RSGH_.BKP File Name: D:\ORACLE\BACKUP\DBTEST\BACKUPSET\2017_11_24\O1_MF_NNNDF_TAG20171124T162515_F1HYNNBX_.BKP Do you really want to catalog the above files (enter YES or NO)? Enter yes or use catalog start with 'd:\oracle\backup\DBTEST\</pre><p>If you don&#8217;t want to get prompt for each file use <strong>noprompt</strong></p><pre class="crayon-plain-tag">RMAN&gt; catalog start with 'd:\oracle\backup\DBTEST\' noprompt; using target database control file instead of recovery catalog searching for all files that match the pattern d:\oracle\backup\DBTEST\ List of Files Unknown to the Database ===================================== File Name: D:\ORACLE\BACKUP\DBTEST\AUTOBACKUP\2017_11_24\O1_MF_S_960913571_F1HYPDOZ_.BKP File Name: D:\ORACLE\BACKUP\DBTEST\AUTOBACKUP\2017_11_24\O1_MF_S_960916783_F1J1TTCV_.BKP File Name: D:\ORACLE\BACKUP\DBTEST\AUTOBACKUP\2017_12_08\O1_MF_S_962220655_F2O6RSGH_.BKP File Name: D:\ORACLE\BACKUP\DBTEST\BACKUPSET\2017_11_24\O1_MF_NNNDF_TAG20171124T162515_F1HYNNBX_.BKP cataloging files... cataloging done List of Cataloged Files ======================= File Name: D:\ORACLE\BACKUP\DBTEST\AUTOBACKUP\2017_11_24\O1_MF_S_960913571_F1HYPDOZ_.BKP File Name: D:\ORACLE\BACKUP\DBTEST\AUTOBACKUP\2017_11_24\O1_MF_S_960916783_F1J1TTCV_.BKP File Name: D:\ORACLE\BACKUP\DBTEST\AUTOBACKUP\2017_12_08\O1_MF_S_962220655_F2O6RSGH_.BKP File Name: D:\ORACLE\BACKUP\DBTEST\BACKUPSET\2017_11_24\O1_MF_NNNDF_TAG20171124T162515_F1HYNNBX_.BKP RMAN&gt;</pre><p>Thank you for giving your valuable time to read the above information.</p> <p><span class="s1">If you want to be updated with all our articles s</span>end us the Invitation or Follow us:</p> <p><span class="s1"><span class="s2"><strong>Skant Gupta’s</strong> LinkedIn: <a class="jive-link-external-small" href="http://www.linkedin.com/in/skantali/" rel="nofollow">www.linkedin.com/in/skantali/</a></span></span></p> <p class="p4"><span class="s1"><strong>Joel Perez’s</strong> LinkedIn: <a href="http://www.linkedin.com/in/SirDBaaSJoelPerez"><strong>Joel Perez’s Profile</strong></a></span></p> <p><strong>Anuradha’s </strong><span class="s1">LinkedIn: <strong><a href="https://www.linkedin.com/in/dbaanuradhamudgal/">Anuradha’s Profile</a></strong></span></p> <p>LinkedIn Group: <em><strong><a class="js-entity-name entity-name" href="https://www.linkedin.com/groups/12065270" data-app-link="">Oracle Cloud DBAAS</a></strong></em></p> <p>Facebook Page: <em><strong><a href="https://www.facebook.com/oraclehelp">OracleHelp</a></strong></em></p> <p>The post <a rel="nofollow" href="http://oracle-help.com/backup-and-recovery/use-catalog-start-command/">How to use Catalog start with command</a> appeared first on <a rel="nofollow" href="http://oracle-help.com">ORACLE-HELP</a>.</p> Jagruti Jasleniya http://oracle-help.com/?p=2713 Mon Dec 11 2017 12:25:46 GMT-0500 (EST) Log mining a Redo log file / Archive log file on a remote database http://oracledba.blogspot.com/2017/12/log-mining-redo-log-file-archive-log.html <div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"><a href="https://3.bp.blogspot.com/-79tHfwSrJ1s/WhFVqHCmymI/AAAAAAAFjvo/2HXd1ik27kw-SxTo1SKzjCf4Od8j6IvFwCEwYBhgL/s1600/Miner_Transparent.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="251" data-original-width="254" src="https://3.bp.blogspot.com/-79tHfwSrJ1s/WhFVqHCmymI/AAAAAAAFjvo/2HXd1ik27kw-SxTo1SKzjCf4Od8j6IvFwCEwYBhgL/s1600/Miner_Transparent.png" /></a></div><h3>At the source site&nbsp;&nbsp;</h3><div>Enable the database to write to a directory you choose, in this example I use /tmp</div><blockquote class="tr_bq">alter system set utl_file_dir='/tmp' scope=spfile;&nbsp;</blockquote>Restart of the database is required in order for the parameter&nbsp;utl_file_dir be active<br />Extract the LogMiner dictionary to a flat file called dictionary.ora<br /><blockquote class="tr_bq">EXECUTE DBMS_LOGMNR_D.BUILD('dictionary.ora', '/tmp/', DBMS_LOGMNR_D.STORE_IN_FLAT_FILE);&nbsp;</blockquote><h4>Copy redo log file from source to target:</h4><ul><li>Copy redo log file from ASM to the operating system</li></ul><blockquote class="tr_bq">asmcmd cp '+DATA/PDB/ONLINELOG/group_1.259.919359545' /tmp/&nbsp;</blockquote><ul><li>Copy the the redo log file to the target host&nbsp;</li></ul><blockquote class="tr_bq">scp /tmp/dictionary.ora /tmp/group_1.259.919359545 target_host:/tmp&nbsp;</blockquote><ul><li>Copy the dictionary file from source to target&nbsp;</li></ul><blockquote class="tr_bq">scp /tmp/dictionary.ora /tmp/group_1.259.919359545 target_host:/tmp&nbsp;</blockquote><h3>On target db&nbsp;</h3><blockquote class="tr_bq">alter system set utl_file_dir='/tmp' scope=spfile;&nbsp;</blockquote>Restart of the database is required in order for the parameter&nbsp;utl_file_dir be active<br />Add the first redo log file for LogMiner to process<br /><blockquote class="tr_bq">EXECUTE DBMS_LOGMNR.ADD_LOGFILE( LOGFILENAME =&gt; '/tmp/group_1.259.919359545', OPTIONS =&gt; DBMS_LOGMNR.NEW);&nbsp;</blockquote>Add additional&nbsp;&nbsp;redo log file/s&nbsp;&nbsp;to the existing list for LogMiner to process<br /><blockquote class="tr_bq">EXECUTE DBMS_LOGMNR.ADD_LOGFILE(LOGFILENAME =&gt; '/tmp/group_2.261.919359549',OPTIONS =&gt; DBMS_LOGMNR.ADDFILE);&nbsp;</blockquote>Start LogMiner&nbsp;using the dictionary file<br /><blockquote class="tr_bq">BEGIN<br />&nbsp; &nbsp; DBMS_LOGMNR.START_LOGMNR (<br />&nbsp; &nbsp; &nbsp; &nbsp; DictFileName =&gt; '/tmp/dictionary.ora'<br />&nbsp; &nbsp; );<br />END;<br />/&nbsp;</blockquote>If dictionary does not exist , you can omit it like this<br /><blockquote class="tr_bq">BEGIN<br />&nbsp; &nbsp; DBMS_LOGMNR.START_LOGMNR;<br />end;<br />/&nbsp;</blockquote>Within the current LogMiner<b>&nbsp;</b>session run the following query<br /><br /><blockquote class="tr_bq">select * from V$LOGMNR_CONTENTS where RBASQN=33 and RBABLK &gt; 57190;&nbsp;</blockquote>RBASQN - redo log sequence<br />RBABLK - block number Yossi Nixon tag:blogger.com,1999:blog-6061714.post-6742196448968473217 Mon Dec 11 2017 12:00:00 GMT-0500 (EST) An Interview with Oracle-Base’s Tim Hall https://www.thatjeffsmith.com/archive/2017/12/an-interview-with-oracle-bases-tim-hall/ <p>Mixing things up today with a quick Q&#038;A with the guy that that generates most of the Google results to your pressing Oracle &#8216;how do I&#8230;?&#8217; questions.</p> <p>Tim isn&#8217;t just a walking website, he&#8217;s also a great communicator. If you haven&#8217;t had a chance to see him speak at an Oracle conference, it&#8217;s probably because you don&#8217;t go to Oracle conferences &#8211; he gets around! Make sure you follow him on Twitter, subscribe to his <a href="https://oracle-base.com/blog/" rel="noopener" target="_blank">blog</a>, and all that jazz.</p> <p><a href="https://twitter.com/oraclebase?ref_src=twsrc%5Etfw" class="twitter-follow-button" data-show-count="false">Follow @oraclebase</a><script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></p> <p>I asked Tim if he&#8217;d answer a few questions, and he politely obliged. I think Tim is the rare bird that can both explore all the newest stuff in great detail, AND always tie it in to what&#8217;s actually going on in the real world. It&#8217;s almost like he&#8217;s got two jobs&#8230;anyways, without further ado:</p> <h4>Q: How often do you find yourself reading your own articles for help/refresher on a problem or project? It happens to me more often than I ever imagined before I started writing.</h4> <p>A: I am the biggest user of my website. I have a terrible memory, so I need it in order to do my job. I guess that&#8217;s why people like it. It&#8217;s functional, not full of bloat. I will often Google things and find my article, not remembering I&#8217;ve already written about the subject. <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p> <p><em>This is every blogger&#8217;s biggest secret&#8230;we write for ourselves first! &#8212; aside from Jeff</em></p> <h4>Q: My favorite (work) memory of you was taking over our ORDS booth at OOW last year and doing a full blown 30 minute sales pitch/demo of our tech to some customers. Could you give a shorter version of that here?</h4> <div id="attachment_6432" style="width: 625px" class="wp-caption alignleft"><img src="https://www.thatjeffsmith.com/wp-content/uploads/2017/12/tim.png" alt="" width="615" height="615" class="size-full wp-image-6432" /><p class="wp-caption-text">Tim literally ran the booth for about 30 minutes.</p></div> A: ORDS is a little WAR file you can run on WebLogic, Glashfish, Tomcat or in standalone mode. It allows you to bind URIs to database calls (SQL or PL/SQL). If you are running PL/SQL Web Toolkit apps, possible since Oracle 8i, ORDS just acts like a gateway and pushes the content back out the the client. If you are doing RESTful web services, ORDS can do loads more, including REST enabling tables, views and PL/SQL in the Oracle Database, and making the Oracle database work like a document store using SODA. It&#8217;s just a really handy tool for exposing the content of your database as RESTful web services without you having to do all the JSON creation yourself.</p> <h4>Q: Is there a 12.2 or even just 12c tech that you look forward to implementing at work – you know, in your ‘real’ job?</h4> <!-- Easy AdSense V7.43 --> <!-- [midtext: 1 urCount: 1 urMax: 0] --> <div class="ezAdsense adsense adsense-midtext" style="float:left;margin:12px;"><script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- 336-rectangle --> <ins class="adsbygoogle" style="display:inline-block;width:336px;height:280px" data-ad-client="ca-pub-1495560488595385" data-ad-slot="5904412551"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script></div> <!-- Easy AdSense V7.43 --> <p>A: I love the completion of the <a href="https://docs.oracle.com/database/122/ADJSN/title.htm" rel="noopener" target="_blank">JSON support in Oracle 12.2</a>. In Oracle 12.1 the JSON support in the database was mostly about consuming JSON data. In 12.2 the picture has been completed by including SQL/JSON to generate JSON from a query, and the PL/SQL Objects for JSON, which allow you to parse or generate JSON data from PL/SQL. Prior to 12.2 you are forced to dome some of the work with the APEX_JSON package, which is good, but it&#8217;s nice to have this functionality native in the database.</p> <h4>Q: Dessert island – way better than a desert island – what Oracle book or reference do you bring with you?</h4> <p>A: I&#8217;m assuming I can&#8217;t take the full set of manuals right? If not, then it would have to be <a href="https://www.amazon.com/Troubleshooting-Oracle-Performance-Experts-Voice/dp/1590599179" rel="noopener" target="_blank">Troubleshooting Oracle Performance</a> by Christian Antognini. I think it&#8217;s the only Oracle book I have read from cover to cover like a novel. It&#8217;s really informative, but most importantly it&#8217;s really well written.</p> <h4>Q: Where do you see Oracle conferences and user groups evolving over the next few years? You go to a lot of these, and I’m ‘feeling’ like change is afoot.</h4> <p>A: I think conferences are having an increasingly difficult time. I think part of the problem is people have got used to getting their information from the internet. When I started out this didn&#8217;t exist, so the reference manuals and conferences were the only way to learn stuff. For many the conference was the only way to short-cut the learning experience. Now we have a myriad of blogs and videos at our disposal. The conferences that seem to do the best are the smaller ones that still have a &#8220;family&#8221; feel to them.</p> <h4>Q: If you could make any feature happen in any of our tools, what would you wish for?</h4> <p>A: So much of Oracle goes unused because of licensing issues. I would just love it if everything was included in the base product. <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p> <p><em>Yeah, I wish we could make all of it free, but then I also kinda need to send my kids to college at some point. I do like that XE is getting a big update and that our Cloud subscription model makes many of the &#8216;advanced&#8217; features more readily available to folks. &#8212; another note from Jeff</em></p> <h3>Thanks Tim!</h3> <p>If you enjoyed this little back and forth, let us know in the comments, and we&#8217;ll try it again with another community member!</p> <p>If you ever see Tim in the wild, be sure to ask him about his Oracle family, the Oracle game console, and his laundry. </p> thatjeffsmithhttps://www.thatjeffsmith.com/?p=6431 Mon Dec 11 2017 10:37:04 GMT-0500 (EST) ORA-01452: Cannot CREATE UNIQUE INDEX; Duplicate Keys Found http://oracle-help.com/oracle-11g/ora-01452-cannot-create-unique-index-duplicate-keys-found/ <p><strong>Problem:-</strong></p> <p>While creating the unique index on a table, got below error.</p> <p>SQL&gt; create unique index TEST_IDX on TEST5(EMPNO);<br /> create unique index TEST_IDX on TEST5(EMPNO)<br /> *<br /> ERROR at line 1:<br /> <strong>ORA-01452: cannot CREATE UNIQUE INDEX; duplicate keys found</strong></p> <p><strong>Cause:- </strong>You tried to execute a CREATE UNIQUE INDEX statement on one or more columns that contain duplicate values.</p> <p><strong>Solution:-</strong></p> <p>Find the duplicate rows in the table and delete them.</p> <p>Use below script to delete the duplicate rows</p> <div id="crayon-5a2e30f459079830408725-3" class="crayon-line"><span class="crayon-e">REM </span><span class="crayon-r">This</span> <span class="crayon-st">is</span> <span class="crayon-e">an </span><span class="crayon-e">example </span><span class="crayon-e ">SQL*</span><span class="crayon-e">Plus </span><span class="crayon-e">Script </span><span class="crayon-st">to</span> <span class="crayon-e">detect </span><span class="crayon-e">duplicate </span><span class="crayon-e">rows </span><span class="crayon-e">from</span></div> <div id="crayon-5a2e30f459079830408725-4" class="crayon-line crayon-striped-line"><span class="crayon-i">REM</span> <span class="crayon-i">a</span> <span class="crayon-v">table</span><span class="crayon-sy">.</span></div> <div id="crayon-5a2e30f459079830408725-5" class="crayon-line"><span class="crayon-e">REM</span></div> <div id="crayon-5a2e30f459079830408725-6" class="crayon-line crayon-striped-line"><span class="crayon-e">set </span><span class="crayon-e">echo </span><span class="crayon-e">off</span></div> <div id="crayon-5a2e30f459079830408725-7" class="crayon-line"><span class="crayon-e">set </span><span class="crayon-e">verify </span><span class="crayon-e">off </span><span class="crayon-e">heading </span><span class="crayon-e">off</span></div> <div id="crayon-5a2e30f459079830408725-8" class="crayon-line crayon-striped-line"><span class="crayon-i">undefine</span> <span class="crayon-i">t</span></div> <div id="crayon-5a2e30f459079830408725-9" class="crayon-line"><span class="crayon-i">undefine</span> <span class="crayon-i">c</span></div> <div id="crayon-5a2e30f459079830408725-10" class="crayon-line crayon-striped-line"><span class="crayon-e">prompt</span></div> <div id="crayon-5a2e30f459079830408725-11" class="crayon-line"><span class="crayon-e">prompt</span></div> <div id="crayon-5a2e30f459079830408725-12" class="crayon-line crayon-striped-line"><span class="crayon-e">prompt </span><span class="crayon-e">Enter </span><span class="crayon-e">name </span><span class="crayon-e">of </span><span class="crayon-e">table </span><span class="crayon-e">with </span><span class="crayon-e">duplicate </span><span class="crayon-e">rows</span></div> <div id="crayon-5a2e30f459079830408725-13" class="crayon-line"><span class="crayon-e">prompt</span></div> <div id="crayon-5a2e30f459079830408725-14" class="crayon-line crayon-striped-line"><span class="crayon-i">accept</span> <span class="crayon-i">t</span> <span class="crayon-i">prompt</span> <span class="crayon-s">&#8216;Table: &#8216;</span></div> <div id="crayon-5a2e30f459079830408725-15" class="crayon-line"><span class="crayon-e">prompt</span></div> <div id="crayon-5a2e30f459079830408725-16" class="crayon-line crayon-striped-line"><span class="crayon-i">select</span> <span class="crayon-s">&#8216;Table &#8216;</span><span class="crayon-o">||</span><span class="crayon-e">upper</span><span class="crayon-sy">(</span><span class="crayon-s">&#8216;&amp;&amp;t&#8217;</span><span class="crayon-sy">)</span> <span class="crayon-e">from </span><span class="crayon-v">dual</span><span class="crayon-sy">;</span></div> <div id="crayon-5a2e30f459079830408725-17" class="crayon-line"><span class="crayon-v">describe</span> <span class="crayon-o">&amp;&amp;</span><span class="crayon-i">t</span></div> <div id="crayon-5a2e30f459079830408725-18" class="crayon-line crayon-striped-line"><span class="crayon-e">prompt</span></div> <div id="crayon-5a2e30f459079830408725-19" class="crayon-line"><span class="crayon-e">prompt </span><span class="crayon-e">Enter </span><span class="crayon-e">name</span><span class="crayon-sy">(</span><span class="crayon-v">s</span><span class="crayon-sy">)</span> <span class="crayon-e">of </span><span class="crayon-e">column</span><span class="crayon-sy">(</span><span class="crayon-v">s</span><span class="crayon-sy">)</span> <span class="crayon-e">which </span><span class="crayon-e">should </span><span class="crayon-e">be </span><span class="crayon-v">unique</span><span class="crayon-sy">.</span> <span class="crayon-st">If</span> <span class="crayon-e">more </span><span class="crayon-e">than</span></div> <div id="crayon-5a2e30f459079830408725-20" class="crayon-line crayon-striped-line"><span class="crayon-e">prompt </span><span class="crayon-e">one </span><span class="crayon-e">column </span><span class="crayon-st">is</span> <span class="crayon-v">specified</span><span class="crayon-sy">,</span> <span class="crayon-e">you </span><span class="crayon-e">MUST </span><span class="crayon-e">separate </span><span class="crayon-e">with </span><span class="crayon-v">commas</span><span class="crayon-sy">.</span></div> <div id="crayon-5a2e30f459079830408725-21" class="crayon-line"><span class="crayon-e">prompt</span></div> <div id="crayon-5a2e30f459079830408725-22" class="crayon-line crayon-striped-line"><span class="crayon-i">accept</span> <span class="crayon-i">c</span> <span class="crayon-i">prompt</span> <span class="crayon-s">&#8216;Column(s): &#8216;</span></div> <div id="crayon-5a2e30f459079830408725-23" class="crayon-line"><span class="crayon-e">prompt</span></div> <div id="crayon-5a2e30f459079830408725-24" class="crayon-line crayon-striped-line"><span class="crayon-v">select</span> <span class="crayon-o">&amp;&amp;</span><span class="crayon-i">c</span> <span class="crayon-v">from</span> <span class="crayon-o">&amp;&amp;</span><span class="crayon-i">t</span></div> <div id="crayon-5a2e30f459079830408725-25" class="crayon-line"><span class="crayon-e">where  </span><span class="crayon-e">rowid </span><span class="crayon-st">not</span> <span class="crayon-st">in</span> <span class="crayon-sy">(</span><span class="crayon-e">select </span><span class="crayon-e">min</span><span class="crayon-sy">(</span><span class="crayon-v">rowid</span><span class="crayon-sy">)</span> <span class="crayon-v">from</span> <span class="crayon-o">&amp;&amp;</span><span class="crayon-i">t</span> <span class="crayon-e">group </span><span class="crayon-v">by</span> <span class="crayon-o">&amp;&amp;</span><span class="crayon-v">c</span><span class="crayon-sy">)</span></div> <div id="crayon-5a2e30f459079830408725-26" class="crayon-line crayon-striped-line"><span class="crayon-o">/</span></div> <div></div> <div>SQL&gt; @dupli.sql</p> <p>Enter name of table with duplicate rows</p> <p>Table: TEST5</p> <p>Table TEST5</p> <p>Name Null? Type<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br /> EMPNO NUMBER<br /> EMPNAME VARCHAR2(29)</p> <p>Enter name(s) of column(s) which should be unique. If more than<br /> one column is specified, you MUST separate with commas.</p> <p>Column(s): EMPNO</p> <p>1<br /> 4</p></div> <div>We can see, for empno=1 and 4 we have duplicate rows. Analyze those rows and delete them remove the duplicates, Once duplicate rows were removed, try to create the index.</div> <p>The post <a rel="nofollow" href="http://oracle-help.com/oracle-11g/ora-01452-cannot-create-unique-index-duplicate-keys-found/">ORA-01452: Cannot CREATE UNIQUE INDEX; Duplicate Keys Found</a> appeared first on <a rel="nofollow" href="http://oracle-help.com">ORACLE-HELP</a>.</p> Anuradha Mudgal http://oracle-help.com/?p=2710 Mon Dec 11 2017 02:37:46 GMT-0500 (EST) ORA-08104: This Index Object Is Being Online Built Or Rebuilt http://oracle-help.com/articles/ora-08104-index-object-online-built-rebuilt/ <p>This post is about <strong>&#8220;ORA-08104&#8221;. </strong> We are going t learn how to solve this issue. Steps are mention below:-</p> <p><span style="color: #000000;font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;font-size: 15px">While dropping an index, if you are facing ORA-08104 error, then you need to clean it using dbms_repair</span></p> <h5><a href="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/oracle-logo.gif"><img data-attachment-id="2708" data-permalink="http://oracle-help.com/articles/ora-08104-index-object-online-built-rebuilt/attachment/oracle-logo-3/" data-orig-file="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/oracle-logo.gif?fit=150%2C150" data-orig-size="150,150" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="oracle-logo" data-image-description="" data-medium-file="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/oracle-logo.gif?fit=150%2C150" data-large-file="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/oracle-logo.gif?fit=150%2C150" class="alignnone wp-image-2708" src="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/oracle-logo.gif?resize=257%2C260" alt="" width="257" height="260" data-recalc-dims="1" /></a></h5> <h5><strong>Problem:</strong></h5> <p>SQL&gt; drop index eric_icmsprod.SOTRAN00_IDX1;<br /> drop index eric_icmsprod.SOTRAN00_IDX1<br /> *<br /> ERROR at line 1:<br /> ORA-08104: this index object 94771 is being online built or rebuilt</p> <p><strong>Cause</strong></p> <p>you have not installed the patch for Bug 3805539 or are not running on a release that includes this fix.So smon is very slow in cleaning up</p> <h5>Solution:</h5> <p>&#8212; check the object_id</p> <p>SQL&gt; select obj# ,name from obj$ where OBJ#=94771;</p> <p>OBJ# NAME<br /> &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br /> 94771 SOTRAN00_IDX1</p> <p>&#8212; Run dbms_repair for the object_id</p> <p>SQL&gt; declare<br /> lv_ret BOOLEAN;<br /> begin<br /> lv_ret :=dbms_repair.online_index_clean(94771);<br /> end;<br /> /</p> <p>&#8212; Verify whether index has been dropped or not</p> <p>SQL&gt; select obj# ,name from obj$ where OBJ#=94771;</p> <p>no rows selected.</p> <p>The post <a rel="nofollow" href="http://oracle-help.com/articles/ora-08104-index-object-online-built-rebuilt/">ORA-08104: This Index Object Is Being Online Built Or Rebuilt</a> appeared first on <a rel="nofollow" href="http://oracle-help.com">ORACLE-HELP</a>.</p> Anuradha Mudgal http://oracle-help.com/?p=2706 Mon Dec 11 2017 02:31:48 GMT-0500 (EST) Storage Volumes and File System Layout in Oracle Cloud http://oracle-help.com/oracle-dbaas/storage-volumes-file-system-layout-oracle-cloud/ <div> <div>This section provides information about the storage volumes and file system layout of a newly created database deployment on Oracle Database Cloud Service.</div> </div> <div id="GUID-657C9E03-EA98-4011-BA08-129643C813DE__CIHEADDJ" class="section"> <p class="subhead1">Compute Cloud Service Storage Volumes</p> <p>When a Database Cloud Service deployment is created using the Oracle Database Cloud Service service level, the following storage volumes are created.</p> <div> <table style="width: 377.977px;"> <tbody> <tr> <td style="width: 123px;"><strong>Storage Volume</strong></td> <td style="width: 249.977px;"><strong>Description</strong></td> </tr> <tr> <td style="width: 123px;">bits</td> <td style="width: 249.977px;">60 GB volume completely allocated to /u01 on the virtual machine.</td> </tr> <tr> <td style="width: 123px;" rowspan="4">boot</td> <td style="width: 249.977px;">32 GB volume allocated to the following file system mounts on the virtual machine:</td> </tr> <tr> <td style="width: 249.977px;">/ (root)</td> </tr> <tr> <td style="width: 249.977px;">/boot</td> </tr> <tr> <td style="width: 249.977px;">swap space</td> </tr> <tr> <td style="width: 123px;">data</td> <td style="width: 249.977px;">GB size equal to the value provided in the Usable Data Storage field during the database deployment creation process, with a minimum of 15 GB. This volume is completely allocated to /u02on the virtual machine.</td> </tr> <tr> <td style="width: 123px;" rowspan="5">fra</td> <td style="width: 249.977px;">GB size depends on the choice of Backup Destination during the database deployment creation process:</td> </tr> <tr> <td style="width: 249.977px;">Both Cloud Storage and Local Storage: GB size equal to 1.7 times the size of the datavolume.</td> </tr> <tr> <td style="width: 249.977px;">Cloud Storage Only or None: GB size equal to 0.1 times the size of the data volume, with a minimum of 7 GB</td> </tr> <tr> <td style="width: 249.977px;"></td> </tr> <tr> <td style="width: 249.977px;">This volume is completely allocated to /u03 on the virtual machine.</td> </tr> <tr> <td style="width: 123px;">redo</td> <td style="width: 249.977px;">10 GB volume completely allocated to /u04 on the virtual machine.</td> </tr> </tbody> </table> </div> <p class="subhead1"><strong>File System Layout</strong></p> <p>When a database deployment is created using the Oracle Database Cloud Service service level, Oracle Cloud Service storage volumes are created and allocated as follows.</p> <table style="width: 375.836px;"> <tbody> <tr> <td style="width: 142px;"><strong>File System Mount</strong></td> <td style="width: 229.836px;"><strong>Description</strong></td> </tr> <tr> <td style="width: 142px;">swap</td> <td style="width: 229.836px;">Swap space; 4 GB allocated from the boot Compute Cloud storage volume.</td> </tr> <tr> <td style="width: 142px;">/ (root)</td> <td style="width: 229.836px;">Operating system files; 25.5 GB allocated from the boot Compute Cloud storage volume.</td> </tr> <tr> <td style="width: 142px;">/boot</td> <td style="width: 229.836px;">Operating system kernel; 500 MB allocated from the boot Compute Cloud storage volume.</td> </tr> <tr> <td style="width: 142px;">/u01</td> <td style="width: 229.836px;">Oracle product software; the entire bits Compute Cloud storage volume.</td> </tr> <tr> <td style="width: 142px;">/u02</td> <td style="width: 229.836px;">Oracle Database data storage; the entire data Compute Cloud storage volume.</td> </tr> <tr> <td style="width: 142px;">/u03</td> <td style="width: 229.836px;">Database backup storage; the entire fra Compute Cloud storage volume.</td> </tr> <tr> <td style="width: 142px;">/u04</td> <td style="width: 229.836px;">Database redo logs; the entire redo Compute Cloud storage volume.</td> </tr> </tbody> </table> <div></div> <div id="GUID-657C9E03-EA98-4011-BA08-129643C813DE__GUID-ACCBB2C5-A2AF-44E8-9F13-D104CB48DE18" class="tblformal"> <p>Thank you for giving your valuable time to read the above information.</p> <p><span class="s1">If you want to be updated with all our articles s</span>end us the Invitation or Follow us:</p> <p><span class="s1"><span class="s2"><strong>Skant Gupta’s</strong> LinkedIn: <a class="jive-link-external-small" href="http://www.linkedin.com/in/skantali/" rel="nofollow">www.linkedin.com/in/skantali/</a></span></span></p> <p class="p4"><span class="s1"><strong>Joel Perez’s</strong> LinkedIn: <a href="http://www.linkedin.com/in/SirDBaaSJoelPerez"><strong>Joel Perez’s Profile</strong></a></span></p> <p><strong>Anuradha’s </strong><span class="s1">LinkedIn: <strong><a href="https://www.linkedin.com/in/dbaanuradhamudgal/">Anuradha’s Profile</a></strong></span></p> <p>LinkedIn Group: <em><strong><a class="js-entity-name entity-name" href="https://www.linkedin.com/groups/12065270" data-app-link="">Oracle Cloud DBAAS</a></strong></em></p> <p>Facebook Page: <em><strong><a href="https://www.facebook.com/oraclehelp">OracleHelp</a></strong></em></p> </div> </div> <p>The post <a rel="nofollow" href="http://oracle-help.com/oracle-dbaas/storage-volumes-file-system-layout-oracle-cloud/">Storage Volumes and File System Layout in Oracle Cloud</a> appeared first on <a rel="nofollow" href="http://oracle-help.com">ORACLE-HELP</a>.</p> Skant Gupta http://oracle-help.com/?p=2695 Sun Dec 10 2017 17:05:38 GMT-0500 (EST) Explain usage of different users in Oracle Cloud http://oracle-help.com/oracle-dbaas/explain-usage-different-users-oracle-cloud/ <p>This article provides information about Linux user accounts that are provisioned on Oracle Database Cloud Service.</p> <p>Every Database Cloud Service compute node is provisioned with the following operating system user accounts. Both compute nodes are provisioned with the following operating system user accounts.</p> <ol> <li><strong>opc</strong>: The system administrator account you use with the <strong>sudo</strong> command to perform operations that require root-user access.</li> <li><strong>oracle</strong>: The <strong>Oracle</strong> Database administrator account you use to access the system and perform non-root database administration tasks. A home directory, <strong>/home/oracle</strong>, is created for this user. This user cannot use the <strong>sudo </strong>command to perform operations that require root-user access.</li> <li><strong>root</strong>: The root administrator for the system. You do not have direct access to this account. To perform operations that require root-user access, use the <strong>sudo </strong>command as the <strong>opc </strong>user.</li> <li><strong>grid</strong>: The <strong>Oracle</strong> <strong>Grid</strong> Infrastructure administrator account you use to perform <strong>ASM</strong>, <strong>ACFS</strong>, and <strong>clusterware</strong> administration tasks. A home directory, /<strong>home</strong>/<strong>grid</strong>, is created for this user. This user cannot use the sudo command to perform operations that require root-user access. Additionally, by default you cannot connect as this user to the compute node using <strong>SSH</strong>. You can add the public key to the user’s <strong>$HOME/.ssh/authorized_keys</strong> file to grant persistent <strong>SSH</strong> access, or you can connect as the <strong>opc </strong>user and then use the <strong>sudo -s</strong> command to start a root-user command shell, followed by an <strong>su</strong> <strong>&#8211; grid</strong> command to switch to the grid user.</li> </ol> <p><strong>Note</strong>: oracle &amp; grid user does not have password on <strong>Database as a service instances</strong>.</p> <p>Thank you for giving your valuable time to read the above information.</p> <p><span class="s1">If you want to be updated with all our articles s</span>end us the Invitation or Follow us:</p> <p><span class="s1"><span class="s2"><strong>Skant Gupta’s</strong> LinkedIn: <a class="jive-link-external-small" href="http://www.linkedin.com/in/skantali/" rel="nofollow">www.linkedin.com/in/skantali/</a></span></span></p> <p class="p4"><span class="s1"><strong>Joel Perez’s</strong> LinkedIn: <a href="http://www.linkedin.com/in/SirDBaaSJoelPerez"><strong>Joel Perez’s Profile</strong></a></span></p> <p><strong>Anuradha’s </strong><span class="s1">LinkedIn: <strong><a href="https://www.linkedin.com/in/dbaanuradhamudgal/">Anuradha’s Profile</a></strong></span></p> <p>LinkedIn Group: <em><strong><a class="js-entity-name entity-name" href="https://www.linkedin.com/groups/12065270" data-app-link="">Oracle Cloud DBAAS</a></strong></em></p> <p>Facebook Page: <em><strong><a href="https://www.facebook.com/oraclehelp">OracleHelp</a></strong></em></p> <p>&nbsp;</p> <p>The post <a rel="nofollow" href="http://oracle-help.com/oracle-dbaas/explain-usage-different-users-oracle-cloud/">Explain usage of different users in Oracle Cloud</a> appeared first on <a rel="nofollow" href="http://oracle-help.com">ORACLE-HELP</a>.</p> Skant Gupta http://oracle-help.com/?p=2690 Sun Dec 10 2017 16:10:50 GMT-0500 (EST) LEAP#355 Snow Flake http://blog.tardate.com/2017/12/leap355-snow-flake.html <p>When @LuckResistor announced the <a href="https://luckyresistor.me/order-snow-flake-panel/">Snow Flake</a> to the Boldport Club community, I knew I had to join in!</p> <p>The Snow Flake is an Atmel SAM D ARM Cortex-M0-controlled LED ornament. I’ve just completed building the first Once I have built some more I will be able to experiment with co-ordinated operation, but even a single snowflake makes for an impressive display.</p> <p>As always, <a href="https://github.com/tardate/LittleArduinoProjects/tree/master/Kraft/snowflake">all notes, schematics and code are in the Little Electronics &amp; Arduino Projects repo on GitHub</a></p> <p><a href="https://github.com/tardate/LittleArduinoProjects/tree/master/Kraft/snowflake"><img src="http://leap.tardate.com/Kraft/snowflake/assets/snowflake_build.jpg" alt="hero_image" /></a></p> <p>The LED animation effects look much better in video form of course :</p> <iframe class="youtube-embed" src="https://www.youtube.com/embed/nJ68XZK5qAo" frameborder="0" allowfullscreen=""></iframe> http://blog.tardate.com/2017/12/leap355-snow-flake.html Sun Dec 10 2017 04:30:28 GMT-0500 (EST) Domain Indexes -- 1 : CONTEXT Indexes http://hemantoracledba.blogspot.com/2017/12/domain-indexes-1-context-indexes.html <div dir="ltr" style="text-align: left;" trbidi="on">A CONTEXT Index is one of a class of Domain Indexes.&nbsp; It is used to build text-retrieval application.<br />Instead of a regular B-Tree index that captures the entire text of a VARCHAR2 column as a key, you can build an index that consists of "Tokens", words extracted from a long-ish text in the database column.&nbsp; Searching the index is based on the CONTAINS operator.<br /><br />Here is a quick demo in 11.2.0.4 :<br /><br />First I setup a new user for this demo.&nbsp; I could have used an existing user but my "HEMANT" user has DBA privileges and I want to demonstrate CONTEXT without such privileges.<br />Here the key grant is "CTXAPP" that is granted to the user.<br /><br /><pre>SQL&gt; create user ctxuser identified by ctxuser default tablespace users;<br /><br />User created.<br /><br />SQL&gt; grant create session, create table to ctxuser;<br /><br />Grant succeeded.<br /><br />SQL&gt; grant ctxapp to ctxuser;<br /><br />Grant succeeded.<br /><br />SQL&gt; alter user ctxuser quota unlimited on users; <br /><br />User altered.<br /><br />SQL&gt; <br /></pre><br /><br />Next, this user creates the demonstration table and index :<br /><br /><pre>SQL&gt; connect ctxuser/ctxuser<br />Connected.<br />SQL&gt; create table my_text_table <br /> 2 (id_column number primary key,<br /> 3 my_text varchar2(2000));<br /><br />Table created.<br /><br />SQL&gt; create index my_text_index<br /> 2 on my_text_table(my_text)<br /> 3 indextype is ctxsys.context;<br /><br />Index created.<br /><br />SQL&gt; <br />SQL&gt; insert into my_text_table<br /> 2 values (1,'This is a long piece of text written by Hemant');<br /><br />1 row created.<br /><br />SQL&gt; insert into my_text_table<br /> 2 values (2,'Another long text to be captured by the index');<br /><br />1 row created.<br /><br />SQL&gt; commit;<br /><br />Commit complete.<br /><br />SQL&gt; <br />SQL&gt; -- this update to the index would be a regular background job<br />SQL&gt; exec ctx_ddl.sync_index('MY_TEXT_INDEX');<br /><br />PL/SQL procedure successfully completed.<br /><br />SQL&gt; <br /></pre><br /><br />Note the call to CTX_DDL.SYNC_INDEX.&nbsp; Unlike a regular B-Tree index, the CONTEXT (Domain) Index is, by default, *not* updated in real-time when DML occurs against the base table.&nbsp; (Hopefully, in a future post, I may demonstrate real-time updates to a CTXCAT index, different from a CONTEXT Index).<br />Only remember that this CONTEXT index is not automatically updated.&nbsp; If new rows are added to the table, they are not visible through the index until a SYNC_INDEX operation is performed.&nbsp; The SYNC_INDEX can be scheduled as a job with another call to DBMS_JOB or DBMS_SCHEDULER or itself as part of the CREATE INDEX statement.<br /><br />Now, let me demonstrate usage of the Index with the CONTAINS operator.<br /><br /><pre>SQL&gt; select id_column as id,<br /> 2 my_text<br /> 3 from my_text_table<br /> 4 where contains (my_text, 'written by Hemant') &gt; 0<br /> 5 /<br /><br /> ID<br />----------<br />MY_TEXT<br />--------------------------------------------------------------------------------<br /> 1<br />This is a long piece of text written by Hemant<br /><br /><br />SQL&gt; select my_text<br /> 2 from my_text_table<br /> 3 where contains (my_text, 'Another long') &gt; 0<br /> 4 /<br /><br />MY_TEXT<br />--------------------------------------------------------------------------------<br />Another long text to be captured by the index<br /><br />SQL&gt; <br /></pre><br /><br />Yes, the CONTAINS operator is a bit awkward.&nbsp; It will be some time before you (or your developers) get used to the syntax !<br /><br />Besides CTX_DDL, there are a number of other packages in the prebuilt CTXSYS schema that are available :<br />&nbsp;CTX_CLS<br />&nbsp;CTX_DDL<br />&nbsp;CTX_DOC<br />&nbsp;CTX_OUTPUT<br />&nbsp;CTX_QUERY<br />&nbsp;CTX_REPORT<br />&nbsp;CTX_THES<br />&nbsp;CTX_ULEXER<br /><br />Since I have created a separate database user, I can also demonstrate the additional objects that are created when the INDEXTYPE IS CTXSYS.CONTEXT.<br /><br /><pre>SQL&gt; select object_type, object_name, to_char(created,'DD-MON-RR HH24:MI') Crtd<br /> 2 from user_objects<br /> 3 order by object_type, object_name<br /> 4 /<br /><br />OBJECT_TYPE OBJECT_NAME CRTD<br />------------------- ------------------------------ ------------------------<br />INDEX DR$MY_TEXT_INDEX$X 10-DEC-17 16:48<br />INDEX DRC$MY_TEXT_INDEX$R 10-DEC-17 16:48<br />INDEX MY_TEXT_INDEX 10-DEC-17 16:48<br />INDEX SYS_C0017472 10-DEC-17 16:48<br />INDEX SYS_IL0000045133C00006$$ 10-DEC-17 16:48<br />INDEX SYS_IL0000045138C00002$$ 10-DEC-17 16:48<br />INDEX SYS_IOT_TOP_45136 10-DEC-17 16:48<br />INDEX SYS_IOT_TOP_45142 10-DEC-17 16:48<br />LOB SYS_LOB0000045133C00006$$ 10-DEC-17 16:48<br />LOB SYS_LOB0000045138C00002$$ 10-DEC-17 16:48<br />TABLE DR$MY_TEXT_INDEX$I 10-DEC-17 16:48<br />TABLE DR$MY_TEXT_INDEX$K 10-DEC-17 16:48<br />TABLE DR$MY_TEXT_INDEX$N 10-DEC-17 16:48<br />TABLE DR$MY_TEXT_INDEX$R 10-DEC-17 16:48<br />TABLE MY_TEXT_TABLE 10-DEC-17 16:48<br /><br />15 rows selected.<br /><br />SQL&gt; <br />SQL&gt; select table_name, constraint_name, index_name<br /> 2 from user_constraints<br /> 3 where constraint_type = 'P'<br /> 4 order by table_name, constraint_name<br /> 5 /<br /><br />TABLE_NAME CONSTRAINT_NAME<br />------------------------------ ------------------------------<br />INDEX_NAME<br />------------------------------<br />DR$MY_TEXT_INDEX$K SYS_IOT_TOP_45136<br />SYS_IOT_TOP_45136<br /><br />DR$MY_TEXT_INDEX$N SYS_IOT_TOP_45142<br />SYS_IOT_TOP_45142<br /><br />DR$MY_TEXT_INDEX$R DRC$MY_TEXT_INDEX$R<br />DRC$MY_TEXT_INDEX$R<br /><br />MY_TEXT_TABLE SYS_C0017472<br />SYS_C0017472<br /><br /><br />SQL&gt; <br /></pre><br /><br />Yes, that is a large number of database objects besides MY_TEXT_TABLE and MY_TEXT_INDEX.&nbsp; SYS_C0017472 is, of course, the Primary Key Index on MY_TEXT_TABLE (on the ID_COLUMN column).&nbsp; The others are interesting.<br /><br />The "Tokens" I mentioned in the first paragraph are, for the purpose of this table MY_TEXT_TABLE, in the DR$MY_TEXT_INDEX$I.<br /><br /><pre>SQL&gt; desc DR$MY_TEXT_INDEX$I<br /> Name Null? Type<br /> ----------------------------------------- -------- ----------------------------<br /> TOKEN_TEXT NOT NULL VARCHAR2(64)<br /> TOKEN_TYPE NOT NULL NUMBER(10)<br /> TOKEN_FIRST NOT NULL NUMBER(10)<br /> TOKEN_LAST NOT NULL NUMBER(10)<br /> TOKEN_COUNT NOT NULL NUMBER(10)<br /> TOKEN_INFO BLOB<br /><br />SQL&gt; select token_text, token_count<br /> 2 from dr$my_text_index$i<br /> 3 /<br /><br />TOKEN_TEXT TOKEN_COUNT<br />---------------------------------------------------------------- -----------<br />ANOTHER 1<br />CAPTURED 1<br />HEMANT 1<br />INDEX 1<br />LONG 2<br />PIECE 1<br />TEXT 2<br />WRITTEN 1<br /><br />8 rows selected.<br /><br />SQL&gt; <br /></pre><br /><br />I have been busy in the last few months and have not published much this quarter. Hopefully, I will get more time in the coming weeks to explore CONTEXT, CTXCAT and Domain Indexes.<br />.<br />.<br />.<br /><br /></div> Hemant K Chitale tag:blogger.com,1999:blog-1931548025515710472.post-1062999098656789170 Sun Dec 10 2017 04:17:00 GMT-0500 (EST) ORA-29516: Aurora Assertion Failure: Assertion Failure http://oracle-help.com/oracle-11g/ora-29516-aurora-assertion-failure-assertion-failure/ <p>&nbsp;</p> <p>This post is for steps which solve ORA-29516.</p> <p><a href="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/k.jpg"><img data-attachment-id="2687" data-permalink="http://oracle-help.com/oracle-11g/ora-29516-aurora-assertion-failure-assertion-failure/attachment/k-2/" data-orig-file="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/k.jpg?fit=309%2C163" data-orig-size="309,163" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="k" data-image-description="" data-medium-file="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/k.jpg?fit=300%2C158" data-large-file="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/k.jpg?fit=309%2C163" class="alignnone wp-image-2687" src="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/k.jpg?resize=491%2C260" alt="" width="491" height="260" srcset="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/k.jpg?resize=300%2C158 300w, https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/k.jpg?resize=60%2C32 60w, https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/k.jpg?resize=150%2C79 150w, https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/k.jpg?w=309 309w" sizes="(max-width: 491px) 100vw, 491px" data-recalc-dims="1" /></a></p> <p>&nbsp;</p> <p>If the java component is corrupted, then while executing java related packages, you may face below error.</p> <p><strong>Cause</strong></p> <p>You have set additional mount options on the shared memory device, /dev/shm, other than just the option named defaults.</p> <p><strong>Problem:</strong></p> <p>select dbms_java.longname(&#8216;TEST&#8217;) from dual;<br /> select dbms_java.longname(&#8216;TEST&#8217;) from dual<br /> *<br /> ERROR at line 1:<br /> ORA-29516: Aurora assertion failure: Assertion failure at eox.c:359<br /> Uncaught exception Root of all Java exceptions: java.lang.UnsatisfiedLinkError<br /> sun.net.PortConfig.getLower0<br /> ORA-06512: at &#8220;SYS.DBMS_JAVA&#8221;, line 139</p> <p><strong>Solution:</strong></p> <p>Follow below steps:</p> <p>SQL&gt;execute sys.dbms_registry.loaded(&#8216;JAVAVM&#8217;);</p> <p>PL/SQL procedure successfully completed.</p> <p>SQL&gt;execute sys.dbms_registry.valid(&#8216;JAVAVM&#8217;);</p> <p>PL/SQL procedure successfully completed.</p> <p>SQL&gt; alter system set &#8220;_system_trig_enabled&#8221; = false scope=memory;</p> <p>alter system set java_jit_enabled=false;</p> <p>System altered.</p> <p>System altered.</p> <p>SQL&gt;create or replace java system</p> <p>/</p> <p>Java created.</p> <p>Now check :</p> <p>SQL&gt;</p> <p>select dbms_java.longname(&#8216;TEST&#8217;) from dual;</p> <p>DBMS_JAVA.LONGNAME(&#8216;TEST&#8217;)</p> <p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p> <p>TEST</p> <p>The post <a rel="nofollow" href="http://oracle-help.com/oracle-11g/ora-29516-aurora-assertion-failure-assertion-failure/">ORA-29516: Aurora Assertion Failure: Assertion Failure</a> appeared first on <a rel="nofollow" href="http://oracle-help.com">ORACLE-HELP</a>.</p> Anuradha Mudgal http://oracle-help.com/?p=2685 Sun Dec 10 2017 03:24:45 GMT-0500 (EST) ORA-19588: Archived Log RECID Is No Longer Valid http://oracle-help.com/oracle-11g/ora-19588-archived-log-recid-no-longer-valid/ <h3><span style="font-family: 'book antiqua', palatino, serif">As we know each and every problem have solutions. Let&#8217;s have a solution to the Error:- ORA-19588.</span></h3> <h3></h3> <h3><span style="font-family: 'book antiqua', palatino, serif"><a href="https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/12/h.jpg"><img data-attachment-id="2683" data-permalink="http://oracle-help.com/oracle-11g/ora-19588-archived-log-recid-no-longer-valid/attachment/h/" data-orig-file="https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/12/h.jpg?fit=265%2C190" data-orig-size="265,190" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="h" data-image-description="" data-medium-file="https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/12/h.jpg?fit=265%2C190" data-large-file="https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/12/h.jpg?fit=265%2C190" class="alignnone wp-image-2683" src="https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/12/h.jpg?resize=470%2C340" alt="" width="470" height="340" srcset="https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/12/h.jpg?resize=60%2C43 60w, https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/12/h.jpg?resize=150%2C108 150w" sizes="(max-width: 470px) 100vw, 470px" data-recalc-dims="1" /></a></span></h3> <h3><span style="font-family: 'book antiqua', palatino, serif">PROBLEM:</span></h3> <p><span style="font-family: 'book antiqua', palatino, serif">While taking RMAN backup, got below error.</span></p> <p><span style="font-family: 'book antiqua', palatino, serif">RMAN-00571: ===========================================================</span><br /> <span style="font-family: 'book antiqua', palatino, serif">RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============</span><br /> <span style="font-family: 'book antiqua', palatino, serif">RMAN-00571: ===========================================================</span><br /> <span style="font-family: 'book antiqua', palatino, serif">RMAN-03009: failure of backup command on t4 channel at 05/01/2017 03:18:01</span><br /> <span style="font-family: 'book antiqua', palatino, serif"><strong>ORA-19588: archived log RECID 143154 STAMP 942443843 is no longer valid</strong></span></p> <p><span style="font-family: 'book antiqua', palatino, serif">Cause: The indicated record has been marked as deleted. This indicates that the corresponding file has either been overwritten by another copy or restore, or that the copy was &#8216;consumed&#8217; by a switchToCopy operation</span></p> <h3><span style="font-family: 'book antiqua', palatino, serif"><strong>SOLUTION:</strong></span></h3> <p><span style="font-family: 'book antiqua', palatino, serif">This error is mostly because of 2 reasons.</span></p> <p><span style="font-family: 'book antiqua', palatino, serif">1. Either 2 backups like one full backup and one archive log backup are running in parallel. And if the </span>archivelog<span style="font-family: 'book antiqua', palatino, serif"> backup job tried to take backup of the archives, which were backed up and deleted by the </span>fullback<span style="font-family: 'book antiqua', palatino, serif"> job running at the same time, then this warning will come.</span></p> <p><span style="font-family: 'book antiqua', palatino, serif"><strong>So never schedule two backups at the same time</strong></span></p> <p><span style="font-family: 'book antiqua', palatino, serif">2. Another reason might be because of few <strong>invalid or deleted records in control file.</strong></span></p> <p><span style="font-family: 'book antiqua', palatino, serif">To clean up invalid records, <strong>crosscheck the archive log:</strong></span></p> <div id="crayon-5a2ce8ebe8207444924444" class="crayon-syntax crayon-theme-github crayon-font-monaco crayon-os-pc print-yes notranslate"> <div class="crayon-plain-wrap"><span style="font-family: 'book antiqua', palatino, serif"> RMAN&gt; CROSSCHECK ARCHIVELOG ALL;</span></p> <p><span style="font-family: 'book antiqua', palatino, serif">RMAN&gt; DELETE EXPIRED ARCHIVELOG ALL;</span></div> <div> <p><span style="font-family: 'book antiqua', palatino, serif">It is recommended to use delete input option while backing up </span>archivelog<span style="font-family: 'book antiqua', palatino, serif">.</span></p> <div id="crayon-5a2ce8ebe8210948503900" class="crayon-syntax crayon-theme-github crayon-font-monaco crayon-os-pc print-yes notranslate"> <div class="crayon-plain-wrap"><span style="font-family: 'book antiqua', palatino, serif"> RMAN&gt; backup </span>archivelog<span style="font-family: 'book antiqua', palatino, serif"> until time &#8216;</span>sysdate<span style="font-family: 'book antiqua', palatino, serif"> -1&#8242; delete input;</span></div> </div> </div> <div></div> </div> <p>The post <a rel="nofollow" href="http://oracle-help.com/oracle-11g/ora-19588-archived-log-recid-no-longer-valid/">ORA-19588: Archived Log RECID Is No Longer Valid</a> appeared first on <a rel="nofollow" href="http://oracle-help.com">ORACLE-HELP</a>.</p> Anuradha Mudgal http://oracle-help.com/?p=2681 Sun Dec 10 2017 03:09:08 GMT-0500 (EST) RMAN-20035: Invalid High RECID In Rman Catalog http://oracle-help.com/oracle-11g/rman-20035-invalid-high-recid-rman-catalog/ <p>We are going to learn about the steps which we use to solve issues <strong>RMAN-20035. </strong></p> <p>&nbsp;</p> <p>&nbsp;</p> <p><a href="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/b.jpg"><img data-attachment-id="2679" data-permalink="http://oracle-help.com/oracle-11g/rman-20035-invalid-high-recid-rman-catalog/attachment/b/" data-orig-file="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/b.jpg?fit=275%2C183" data-orig-size="275,183" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="b" data-image-description="" data-medium-file="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/b.jpg?fit=275%2C183" data-large-file="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/b.jpg?fit=275%2C183" class="alignnone wp-image-2679" src="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/b.jpg?resize=352%2C234" alt="" width="352" height="234" srcset="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/b.jpg?w=275 275w, https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/b.jpg?resize=60%2C40 60w, https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/b.jpg?resize=150%2C100 150w" sizes="(max-width: 352px) 100vw, 352px" data-recalc-dims="1" /></a></p> <p>we face <strong>RMAN-20035: invalid high RECID</strong>  after connecting to catalog database.</p> <p>&nbsp;</p> <p>executing command: SET COMMAND ID<br /> starting full resync of recovery catalog<br /> RMAN-00571: ===========================================================<br /> RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============<br /> RMAN-00571: ===========================================================<br /> RMAN-03002: failure of set command at 07/27/2016 10:54:19<br /> RMAN-03014: implicit resync of recovery catalog failed</p> <p>on default channel at 07/27/2016 10:54:19<br /> <em><strong>RMAN-20035: invalid high RECID</strong></em></p> <p>&nbsp;</p> <h4>Solution:</h4> <p>Unregister the database and register again.</p> <p>$ rman</p> <p>Recovery Manager: Release 12.1.0.2.0 &#8211; Production on Fri Sep 16 11:10:19 2016</p> <p>Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved.</p> <p>RMAN&gt; connect target sys/oracle@TESTDB</p> <p>connected to target database: TESTDB(DBID=3098444898)</p> <p>RMAN&gt; connect catalog RMAN_db/rman@CATLOGDB</p> <p>connected to recovery catalog database</p> <p>RMAN&gt; unregister database;</p> <p>database name is &#8220;BSSPRDM&#8221; and DBID is 1302028423</p> <p>Do you really want to unregister the database (enter YES or NO)? YES<br /> database unregistered from the recovery catalog</p> <p>RMAN&gt; register database;</p> <p>database registered in the recovery catalog<br /> starting full resync of recovery catalog<br /> full resync complete</p> <p>Now run the rman command, it will work:</p> <p>RMAN&gt; backup archivelog all delete input</p> <p>executing command: SET COMMAND ID</p> <p>allocated channel: t1<br /> channel t1: SID=1455 instance=BSSPRDM1 device type=SBT_TAPE<br /> channel t1: NMDA Oracle v8.2.2</p> <p>allocated channel: t2<br /> channel t2: SID=394 instance=BSSPRDM1 device type=SBT_TAPE<br /> channel t2: NMDA Oracle v8.2.2</p> <p>sql statement: alter database backup controlfile to trace</p> <p>the specification does not match any archived log in the repository</p> <p>starting full resync of recovery catalog<br /> full resync complete</p> <p>Starting backup at 27-JUL-16<br /> current log archived<br /> channel t1: starting archived log backup set<br /> channel t1: specifying archived log(s) in backup set<br /> input archived log thread=1 sequence=7492 RECID=10274 STAMP=918315965<br /> channel t1: starting piece 1 at 27-JUL-16<br /> channel t2: starting archived log backup set<br /> channel t2: specifying archived log(s) in backup set<br /> input archived log thread=2 sequence=2782 RECID=10273 STAMP=918315961<br /> channel t2: starting piece 1 at 27-JUL-16<br /> channel t2: finished piece 1 at 27-JUL-16<br /> piece handle=RMAN_BSSPRDM_arc_f_20160727_28601_tprbootu_1_1.bak tag=TAG20160727T154606 comment=API Version 2.0,MMS Version 8.2.2.0<br /> channel t2: backup set complete, elapsed time: 00:00:45<br /> channel t1: finished piece 1 at 27-JUL-16<br /> piece handle=RMAN_BSSPRDM_arc_f_20160727_28600_torbootu_1_1.bak tag=TAG20160727T154606 comment=API Version 2.0,MMS Version 8.2.2.0<br /> channel t1: backup set complete, elapsed time: 00:00:55<br /> Finished backup at 27-JUL-16</p> <p>&nbsp;</p> <p>&nbsp;</p> <p>The post <a rel="nofollow" href="http://oracle-help.com/oracle-11g/rman-20035-invalid-high-recid-rman-catalog/">RMAN-20035: Invalid High RECID In Rman Catalog</a> appeared first on <a rel="nofollow" href="http://oracle-help.com">ORACLE-HELP</a>.</p> Anuradha Mudgal http://oracle-help.com/?p=2677 Sun Dec 10 2017 02:56:44 GMT-0500 (EST) ORA-00027: Cannot Kill Current Session http://oracle-help.com/oracle-11g/ora-00027-cannot-kill-current-session/ <p>A login session is one of the most common problems while we are working on the huge amount of data with multiple users.  This post explains about those steps which we use to kill the session.</p> <p>&nbsp;</p> <p>ORA-00027: cannot kill the current session, the error comes, when you are trying to kill your current session, which is not allowed.</p> <p>EXAMPLE:</p> <p>Get the sid and serial# for the current session.</p> <p>SQL&gt; select username,inst_id, sid, serial# FROM gV$SESSION WHERE audsid = userenv(‘sessionid’);</p> <p>USERNAME INST_ID SID SERIAL#<br /> —————————— ———- ———- ———-<br /> SYSTEM 1 242 13</p> <p>Try to kill the session from current session:</p> <p>SQL&gt; alter system kill session ‘242,13’ immediate;<br /> alter system kill session ‘242,13’ immediate<br /> *<br /> ERROR at line 1:<br /> ORA-00027: cannot kill current session</p> <p>&nbsp;</p> <p>Now open another fresh session and run the ALTER SYSTEM KILL statement, it will execute successfully.</p> <p>SQL&gt; alter system kill session ‘242,13’ immediate;</p> <p>Session Killed</p> <p>The post <a rel="nofollow" href="http://oracle-help.com/oracle-11g/ora-00027-cannot-kill-current-session/">ORA-00027: Cannot Kill Current Session</a> appeared first on <a rel="nofollow" href="http://oracle-help.com">ORACLE-HELP</a>.</p> Anuradha Mudgal http://oracle-help.com/?p=2668 Sat Dec 09 2017 04:11:03 GMT-0500 (EST) Generic error(Failed Jdk Version Is Incompatible.Please Use A Jdk Version With Opatchauto) http://oracle-help.com/oracle-11g/generic-errorfailed-jdk-version-incompatible-please-use-jdk-version-opatchauto/ <p>While running the opatchauto command in oracle grid you may face the jdk version error as below. We are going to learn about the steps which we use to solve this issue.</p> <p><strong>root # /crsapp/app/oracle/product/grid12c/OPatch/opatchauto apply /softdump/12C_GRIDSOFT/PATCH/22191349 -analyze -ocmrf /softdump/12C_GRIDSOFT/PATCH/grid.rsp </strong><br /> OPatch Automation Tool<br /> Copyright (c)2014, Oracle Corporation. All rights reserved.</p> <p>OPatchauto Version : 12.1.0.1.10<br /> OUI Version : 12.1.0.2.0<br /> Running from : /crsapp/app/oracle/product/grid12c</p> <p>opatchauto log file: /crsapp/app/oracle/product/grid12c/cfgtoollogs/opatchauto/22191349/opatch_gi_2016-04-06_09-27-57_analyze.log</p> <p>NOTE: opatchauto is running in ANALYZE mode. There will be no change to your system.</p> <p>OCM RSP file has been ignored in analyze mode.</p> <p>Parameter Validation: Successful</p> <p><strong><em>Failed: JDK version is incompatible.Please use a jdk version the same as, or later than 16 </em></strong><br /> The result of cluvfy command does not contain OVERALL_STATUS String.<br /> System Configuration Collection failed: oracle.osysmodel.driver.sdk.productdriver.ProductDriverException: Unable to determine if “/crsapp/app/oracle/product/grid12c” is a shared oracle home.<br /> Failed: JDK version is incompatible.Please use a jdk version the same as, or later than 16<br /> The result of cluvfy command does not contain OVERALL_STATUS String.<br /> Exception in thread “main” java.lang.RuntimeException: java.io.IOException: Stream closed<br /> at oracle.opatchauto.gi.GILogger.writeWithoutTimeStamp(GILogger.java:432)<br /> at oracle.opatchauto.gi.GILogger.printStackTrace(GILogger.java:447)<br /> at oracle.opatchauto.gi.OPatchauto.main(OPatchauto.java:97)<br /> Caused by: java.io.IOException: Stream closed<br /> at java.io.BufferedWriter.ensureOpen(BufferedWriter.java:98)<br /> at java.io.BufferedWriter.write(BufferedWriter.java:203)<br /> at java.io.Writer.write(Writer.java:140)<br /> at oracle.opatchauto.gi.GILogger.writeWithoutTimeStamp(GILogger.java:426)<br /> … 2 more</p> <p><strong><em>opatchauto failed with error code 1.</em></strong></p> <p>&nbsp;</p> <h4>SOLUTION:</h4> <p>In the above, we can see we are using complete PATH for opatchauto  like <strong>/crsapp/app/oracle/product/grid12c/OPatch/opatchauto apply </strong>which is causing the error.</p> <p>&nbsp;</p> <p>Instead of giving the complete PATH, go to that Opatch location and <strong>run the opatchauto utility as below</strong>.</p> <p>&nbsp;</p> <p><strong>root# cd /crsapp/app/oracle/product/grid12c/OPatch/</strong></p> <p><strong>root# ./opatchauto apply /softdump/12C_GRIDSOFT/PATCH/22191349 -analyze -ocmrf /softdump/12C_GRIDSOFT/PATCH/grid.rsp</strong></p> <p><strong>OUTPUT:</strong></p> <p>./opatchauto apply /softdump/12C_GRIDSOFT/PATCH/22191349 -ocmrf /softdump/12C_GRIDSOFT/PATCH/grid.rsp<br /> OPatch Automation Tool<br /> Copyright (c)2014, Oracle Corporation. All rights reserved.</p> <p>OPatchauto Version : 12.1.0.1.10<br /> OUI Version : 12.1.0.2.0<br /> Running from : /crsapp/app/oracle/product/grid12c</p> <p>opatchauto log file: /crsapp/app/oracle/product/grid12c/cfgtoollogs/opatchauto/22191349/opatch_gi_2016-04-07_09-17-04_deploy.log</p> <p>Parameter Validation: Successful</p> <p>Configuration Validation: Successful</p> <p>Patch Location: /softdump/12C_GRIDSOFT/PATCH/22191349<br /> Grid Infrastructure Patch(es): 21436941 21948341 21948344 21948354<br /> DB Patch(es): 21948344 21948354</p> <p>Patch Validation: Successful<br /> Grid Infrastructure home:<br /> /crsapp/app/oracle/product/grid12c<br /> DB home(s):<br /> /oracle/app/oracle/product/12.1.0.2/dbhome_1<br /> Performing prepatch operations on CRS Home&#8230; Successful</p> <p>Applying patch(es) to &#8220;/oracle/app/oracle/product/12.1.0.2/dbhome_1&#8221; &#8230;<br /> Patch &#8220;/softdump/12C_GRIDSOFT/PATCH/22191349/21948344&#8221; successfully applied to &#8220;/oracle/app/oracle/product/12.1.0.2/dbhome_1&#8221;.<br /> Patch &#8220;/softdump/12C_GRIDSOFT/PATCH/22191349/21948354&#8221; successfully applied to &#8220;/oracle/app/oracle/product/12.1.0.2/dbhome_1&#8221;.</p> <p>Applying patch(es) to &#8220;/crsapp/app/oracle/product/grid12c&#8221; &#8230;<br /> Patch &#8220;/softdump/12C_GRIDSOFT/PATCH/22191349/21436941&#8221; successfully applied to &#8220;/crsapp/app/oracle/product/grid12c&#8221;.<br /> Patch &#8220;/softdump/12C_GRIDSOFT/PATCH/22191349/21948341&#8221; successfully applied to &#8220;/crsapp/app/oracle/product/grid12c&#8221;.<br /> Patch &#8220;/softdump/12C_GRIDSOFT/PATCH/22191349/21948344&#8221; successfully applied to &#8220;/crsapp/app/oracle/product/grid12c&#8221;.<br /> Patch &#8220;/softdump/12C_GRIDSOFT/PATCH/22191349/21948354&#8221; successfully applied to &#8220;/crsapp/app/oracle/product/grid12c&#8221;.</p> <p>Performing postpatch operations on CRS Home&#8230; Successful</p> <p>SQL changes, if any, are applied successfully on the following database(s): ULAPROD</p> <p>Apply Summary:<br /> Following patch(es) are successfully installed:<br /> GI Home: /crsapp/app/oracle/product/grid12c: 21436941,21948341,21948344,21948354<br /> DB Home: /oracle/app/oracle/product/12.1.0.2/dbhome_1: 21948344,21948354</p> <p>opatchauto succeeded.</p> <p>&nbsp;</p> <p>&nbsp;</p> <p>The post <a rel="nofollow" href="http://oracle-help.com/oracle-11g/generic-errorfailed-jdk-version-incompatible-please-use-jdk-version-opatchauto/">Generic error(Failed Jdk Version Is Incompatible.Please Use A Jdk Version With Opatchauto)</a> appeared first on <a rel="nofollow" href="http://oracle-help.com">ORACLE-HELP</a>.</p> Anuradha Mudgal http://oracle-help.com/?p=2665 Sat Dec 09 2017 03:58:49 GMT-0500 (EST) List of other Certification earned http://oracle-help.com/oracle-database/list-certification-earned/ <p><strong><a href="https://www.linkedin.com/in/skantali/">Skant Gupta</a></strong> is certified for:</p> <p><strong>Microsoft</strong><br /> Microsoft® Certified Technology Specialist: <strong>SQL Server</strong>® 2005<br /> Microsoft® Certified Solutions Associate: <strong>Office 365</strong> (MCSA)<br /> Microsoft® Specialist: Server Virtualization with Windows Server <strong>Hyper-V</strong> and System Center Specialist<br /> Microsoft® Certified <strong>Professional</strong></p> <p><strong>IBM</strong><br /> IBM Certified Deployment Professional &#8211; <strong>Tivoli</strong> Directory Server V6.1<br /> IBM Certified Associate Developer &#8212; <strong>Rational</strong> Application Developer for WebSphere Software V6.0</p> <p><strong>AWS</strong><br /> AWS Certified <strong>Solutions Architect</strong> &#8211; Associate (SAA)</p> <p><strong>MongoDB</strong><br /> MongoDB Certified <strong>DBA</strong> Associate Exam</p> <p><strong>ITIL</strong><br /> <strong>ITILv3</strong> foundation certification</p> <p>You can follow me on <strong>LinkedIn</strong> :<script src="//platform.linkedin.com/in.js" type="text/javascript"></script><br /> <script type="IN/MemberProfile" data-id="https://www.linkedin.com/in/skantali" data-format="inline" data-related="false"></script></p> <p><a href="https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/12/AWS.png"><img data-attachment-id="2654" data-permalink="http://oracle-help.com/oracle-database/list-certification-earned/attachment/aws/" data-orig-file="https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/12/AWS.png?fit=220%2C220" data-orig-size="220,220" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="AWS" data-image-description="" data-medium-file="https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/12/AWS.png?fit=220%2C220" data-large-file="https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/12/AWS.png?fit=220%2C220" class="alignnone wp-image-2654" src="https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/12/AWS.png?resize=147%2C147" alt="" width="147" height="147" srcset="https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/12/AWS.png?w=220 220w, https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/12/AWS.png?resize=150%2C150 150w, https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/12/AWS.png?resize=60%2C60 60w" sizes="(max-width: 147px) 100vw, 147px" data-recalc-dims="1" /></a> <a href="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/CertRational_color.jpg"><img data-attachment-id="2655" data-permalink="http://oracle-help.com/oracle-database/list-certification-earned/attachment/certrational_color/" data-orig-file="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/CertRational_color.jpg?fit=207%2C72" data-orig-size="207,72" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="CertRational_color" data-image-description="" data-medium-file="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/CertRational_color.jpg?fit=207%2C72" data-large-file="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/CertRational_color.jpg?fit=207%2C72" class="alignnone size-full wp-image-2655" src="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/CertRational_color.jpg?resize=207%2C72" alt="" width="207" height="72" srcset="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/CertRational_color.jpg?w=207 207w, https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/CertRational_color.jpg?resize=60%2C21 60w, https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/CertRational_color.jpg?resize=150%2C52 150w" sizes="(max-width: 207px) 100vw, 207px" data-recalc-dims="1" /></a> <a href="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/Cloud_and_Smarter_Infrastructure_color.jpg"><img data-attachment-id="2656" data-permalink="http://oracle-help.com/oracle-database/list-certification-earned/attachment/cloud_and_smarter_infrastructure_color/" data-orig-file="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/Cloud_and_Smarter_Infrastructure_color.jpg?fit=207%2C72" data-orig-size="207,72" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Cloud_and_Smarter_Infrastructure_color" data-image-description="" data-medium-file="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/Cloud_and_Smarter_Infrastructure_color.jpg?fit=207%2C72" data-large-file="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/Cloud_and_Smarter_Infrastructure_color.jpg?fit=207%2C72" class="alignnone size-full wp-image-2656" src="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/Cloud_and_Smarter_Infrastructure_color.jpg?resize=207%2C72" alt="" width="207" height="72" srcset="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/Cloud_and_Smarter_Infrastructure_color.jpg?w=207 207w, https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/Cloud_and_Smarter_Infrastructure_color.jpg?resize=60%2C21 60w, https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/Cloud_and_Smarter_Infrastructure_color.jpg?resize=150%2C52 150w" sizes="(max-width: 207px) 100vw, 207px" data-recalc-dims="1" /></a> <a href="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/MCP.jpg"><img data-attachment-id="2657" data-permalink="http://oracle-help.com/oracle-database/list-certification-earned/attachment/mcp/" data-orig-file="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/MCP.jpg?fit=401%2C264" data-orig-size="401,264" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;skagupta&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1512790602&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="MCP" data-image-description="" data-medium-file="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/MCP.jpg?fit=300%2C198" data-large-file="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/MCP.jpg?fit=401%2C264" class="alignnone wp-image-2657" src="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/MCP.jpg?resize=248%2C163" alt="" width="248" height="163" srcset="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/MCP.jpg?w=401 401w, https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/MCP.jpg?resize=300%2C198 300w, https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/MCP.jpg?resize=60%2C40 60w, https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/MCP.jpg?resize=150%2C99 150w" sizes="(max-width: 248px) 100vw, 248px" data-recalc-dims="1" /></a> <a href="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/MCSA.jpg"><img data-attachment-id="2658" data-permalink="http://oracle-help.com/oracle-database/list-certification-earned/attachment/mcsa/" data-orig-file="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/MCSA.jpg?fit=305%2C235" data-orig-size="305,235" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;skagupta&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1512790683&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="MCSA" data-image-description="" data-medium-file="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/MCSA.jpg?fit=300%2C231" data-large-file="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/MCSA.jpg?fit=305%2C235" class="alignnone wp-image-2658" src="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/MCSA.jpg?resize=208%2C160" alt="" width="208" height="160" srcset="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/MCSA.jpg?w=305 305w, https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/MCSA.jpg?resize=300%2C231 300w, https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/MCSA.jpg?resize=60%2C46 60w, https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/MCSA.jpg?resize=150%2C116 150w" sizes="(max-width: 208px) 100vw, 208px" data-recalc-dims="1" /></a> <a href="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/MCTS.jpg"><img data-attachment-id="2659" data-permalink="http://oracle-help.com/oracle-database/list-certification-earned/attachment/mcts/" data-orig-file="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/MCTS.jpg?fit=292%2C221" data-orig-size="292,221" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;skagupta&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1512790650&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="MCTS" data-image-description="" data-medium-file="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/MCTS.jpg?fit=292%2C221" data-large-file="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/MCTS.jpg?fit=292%2C221" class="alignnone wp-image-2659" src="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/MCTS.jpg?resize=184%2C139" alt="" width="184" height="139" srcset="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/MCTS.jpg?w=292 292w, https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/MCTS.jpg?resize=60%2C45 60w, https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/MCTS.jpg?resize=150%2C114 150w" sizes="(max-width: 184px) 100vw, 184px" data-recalc-dims="1" /></a> <a href="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/MS.jpg"><img data-attachment-id="2660" data-permalink="http://oracle-help.com/oracle-database/list-certification-earned/attachment/ms/" data-orig-file="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/MS.jpg?fit=295%2C247" data-orig-size="295,247" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;skagupta&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1512790575&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="MS" data-image-description="" data-medium-file="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/MS.jpg?fit=295%2C247" data-large-file="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/MS.jpg?fit=295%2C247" class="alignnone wp-image-2660" src="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/MS.jpg?resize=166%2C139" alt="" width="166" height="139" srcset="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/MS.jpg?w=295 295w, https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/MS.jpg?resize=60%2C50 60w, https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/MS.jpg?resize=150%2C126 150w" sizes="(max-width: 166px) 100vw, 166px" data-recalc-dims="1" /></a><a href="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/Mo.jpg"><img data-attachment-id="2661" data-permalink="http://oracle-help.com/oracle-database/list-certification-earned/attachment/mo/" data-orig-file="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/Mo.jpg?fit=569%2C498" data-orig-size="569,498" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;skagupta&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1512792915&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Mo" data-image-description="" data-medium-file="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/Mo.jpg?fit=300%2C263" data-large-file="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/Mo.jpg?fit=569%2C498" class="alignnone wp-image-2661" src="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/Mo.jpg?resize=211%2C185" alt="" width="211" height="185" srcset="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/Mo.jpg?w=569 569w, https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/Mo.jpg?resize=300%2C263 300w, https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/Mo.jpg?resize=60%2C53 60w, https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/Mo.jpg?resize=150%2C131 150w" sizes="(max-width: 211px) 100vw, 211px" data-recalc-dims="1" /></a></p> <p>The post <a rel="nofollow" href="http://oracle-help.com/oracle-database/list-certification-earned/">List of other Certification earned</a> appeared first on <a rel="nofollow" href="http://oracle-help.com">ORACLE-HELP</a>.</p> Skant Gupta http://oracle-help.com/?p=2649 Fri Dec 08 2017 15:35:33 GMT-0500 (EST) Shooting the DBA isn’t a Silver Bullet to the Cloud http://dbakevlar.com/2017/12/shooting-dba-isnt-silver-bullet-cloud/ <div class="pf-content"><p><span style="font-size: 12pt;">We&#8217;ve all been watching numerous companies view value in bypassing the Database Administrator and other critical IT roles in an effort to get IT faster to the cloud.  It may look incredibly attractive to sales, but the truth of it is, it can be like setting up land mines in your own yard.</span></p> <p><span style="font-size: 12pt;"><a href="http://dbakevlar.com/2017/12/shooting-dba-isnt-silver-bullet-cloud/landmines/" rel="attachment wp-att-7521"><img class="alignnone size-full wp-image-7521" src="https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/12/landmines.gif?resize=352%2C240" alt="" data-recalc-dims="1" /></a></span></p> <p><span style="font-size: 12pt;">Having the right people in the right roles, doing the right tasks is essential to having a complete cloud deployment.  Easy access without any checks and balances is just asking for trouble, which I am quickly realizing as I discuss this topic with more folks on my travels.  One company, who originally just sold cloud solutions, started offering audits of cloud environments.  They have experienced and incredible demand for this type of review and upon inspection, discovered over 80% of existing cloud projects they audited, failed many basic security and standard environment requirements that having a Database Administrator&#8217;s involvement would have assisted in avoiding.</span></p> <p><span style="font-size: 12pt;">Some of the most common failures?</span></p> <ul> <li><span style="font-size: 12pt;">Common best practice for multifactor authentication, often embedding credentials into the application or database layer.  They often found the developers expected to address it at a later time and then never doing so due to time limitations or missing review steps.</span></li> <li><span style="font-size: 12pt;">Weak or missing encryption at the production layer and access to critical data in non-production.  This is a sore point for me, as no one needs access to critical data in a non-production environment with the number of advanced masking tools available on the market.  Some will complain about the cost, but what is the cost to your company with one breach.  Out of business anyone?</span></li> <li><span style="font-size: 12pt;">APIs are often the most exposed layer of any multi-tier environment and if you&#8217;ve skipped deep penetration testing of this layer, you&#8217;re just asking to be some hacker&#8217;s weekend project.</span></li> <li><span style="font-size: 12pt;">Account hijacking is all too common these days.  There are advanced database, as well as application monitoring systems that will note potential fraudulent activity and notify those responsible.  DBAs understand this responsibility, where developers goal is to build out functionality.  Understand the difference in goals.</span></li> </ul> <p><span style="font-size: 12pt;">The expense of putting IT processes in place to discover and repair vulnerabilities is small compared to the potential damage and understanding why different mindsets and roles are designated for a reason is important to the success of the cloud.  Even if sales is focused on getting the people who will use the product without much scrutiny doesn&#8217;t mean that IT should stop taking full advantage of the DBA role which may be standing between them and the cloud to stay in business for the long run.</span></p> </div><br><br><img src="https://i2.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/ico-tag.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"> Tags:&nbsp;&nbsp;<a href="http://dbakevlar.com/tag/cloud/" rel="tag">Cloud</a>, <a href="http://dbakevlar.com/tag/dba/" rel="tag">DBA</a>, <a href="http://dbakevlar.com/tag/security/" rel="tag">Security</a><br><br><div style="width:100%"><table align="left" width="100%" cellspacing="0" cellpadding="0" bgcolor="#f1f1f1" border="0px;"> <tbody> <tr bgcolor="#ffffff"><td align="center" width="17%" valign="top"> <span class="sb_title">Del.icio.us</span><br> <a href="http://del.icio.us/post?url=http://dbakevlar.com/2017/12/shooting-dba-isnt-silver-bullet-cloud/&title=Shooting the DBA isn't a Silver Bullet to the Cloud"> <img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/delicious.gif?w=840" border="0" align="absmiddle" data-recalc-dims="1"> </a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">Facebook</span><br> <a href="http://www.facebook.com/share.php?u=http://dbakevlar.com/2017/12/shooting-dba-isnt-silver-bullet-cloud/"><img src="https://i0.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/facebook_icon.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"></a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">TweetThis</span><br> <a href="http://twitthis.com/twit?url=http://dbakevlar.com/2017/12/shooting-dba-isnt-silver-bullet-cloud/&title=Shooting the DBA isn't a Silver Bullet to the Cloud"><img src="https://i2.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tweet.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"></a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">Digg</span><br> <a href="http://digg.com/submit?phase=2&url=http://dbakevlar.com/2017/12/shooting-dba-isnt-silver-bullet-cloud/&title=Shooting the DBA isn't a Silver Bullet to the Cloud"><img src="https://i0.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/digg.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"></a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">StumbleUpon</span><br> <a href="http://www.stumbleupon.com/submit?url=http://dbakevlar.com/2017/12/shooting-dba-isnt-silver-bullet-cloud/&title=Shooting the DBA isn't a Silver Bullet to the Cloud"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/stumble.gif?w=840" border="0" align="absmiddle" data-recalc-dims="1"></a> </td></tr> </tbody></table></div><br><div style="clear:both"></div><div style="background:#EEEEEE; padding:0px 0px 0px 15px; margin:10px 0px 0px 0px;"><div style="padding:5px 0px 5px 0px;"><b>Comments:</b>&nbsp;&nbsp;<a href="http://dbakevlar.com/2017/12/shooting-dba-isnt-silver-bullet-cloud/#respond">0 (Zero), Be the first to leave a reply!</a></div><br><div style="clear:both"></div><div style="padding:13px 0px 5px 0px;"><span style="border-bottom:1px dashed #003399;padding-bottom:4px;"><strong>You might be interested in this:</strong></span>&nbsp;&nbsp;<br><ul style="margin:0; padding:0; padding-top:10px; padding-bottom:5px;"><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2015/05/re-adding-a-database-to-the-awr-warehouse-without-losing-historical-snapshots/" >Re-Adding a Database to the AWR Warehouse Without Losing Historical Snapshots</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2014/06/tuning-em12c-onto-the-next-tier/" >Tuning EM12c- Onto the Next Tier, JAVA</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2016/05/blue-medoras-brian-williams-blogs-about-customer-monitoring-templates/" >Blue Medora's Brian Williams Blogs About Custom Monitoring Templates</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2012/05/ora-19809-failed-rman-backups-and-flashback/" >ORA-19809, Failed RMAN Backups and Flashback</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2016/11/new-apple-script-and-perspectives-in-omnifocus/" >New Apple Script and Perspectives in Omnifocus</a></li></ul></div></div><hr style="color:#EBEBEB" /><small>Copyright © <a href="http://dbakevlar.com">DBA Kevlar</a> [<a href="http://dbakevlar.com/2017/12/shooting-dba-isnt-silver-bullet-cloud/">Shooting the DBA isn't a Silver Bullet to the Cloud</a>], All Right Reserved. 2017.</small><br><p>The post <a rel="nofollow" href="http://dbakevlar.com/2017/12/shooting-dba-isnt-silver-bullet-cloud/">Shooting the DBA isn&#8217;t a Silver Bullet to the Cloud</a> appeared first on <a rel="nofollow" href="http://dbakevlar.com">DBA Kevlar</a>.</p> dbakevlar http://dbakevlar.com/?p=7518 Fri Dec 08 2017 14:03:19 GMT-0500 (EST) Love Your Data Gift Guide 2017 (for the data lover on your list) https://blog.pythian.com/love-data-gift-guide-2017-data-lover-list/ <div class="l-submain"><div class="l-submain-h g-html i-cf"><p>Do you have a hard-to-buy-for data professional on your list this holiday season? If you’re shopping for a special data analyst, BI pro or data scientist, it’s not always easy to choose the right gift. So we thought we’d make things a bit easier by creating the <em>Love Your Data Gift Guide</em>, with creative gift suggestions for anyone who works with and/or loves data.</p> <p>Our suggestions include books for data experts looking for new inspiration and ideas on how to visually present data, gadgets for data lovers, data-driven artwork, and gift items that tell the world how they feel about data.</p> <p><strong>For the data visualization developer</strong>: <a href="https://www.amazon.com/gp/product/0961392142?ie=UTF8&amp;tag=flowingdata-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0961392142">The Visual Display of Quantitative Information</a> is a classic by American statistician Edward Tufte, covering the theory and practice in the design of data graphics, and includes 250 illustrations of the best (and a few of the worst) statistical graphics.</p> <p><strong>Because a visualization is worth a thousand words</strong>: <a href="https://www.amazon.com/Storytelling-Data-Visualization-Business-Professionals/dp/1119002257/ref=sr_1_1?ie=UTF8&amp;qid=1512589067&amp;sr=8-1&amp;keywords=data+visualization">Storytelling with Data: A Data Visualization Guide for Business Professionals</a>, or <a href="https://www.amazon.com/Truthful-Art-Data-Charts-Communication/dp/0321934075/ref=sr_1_5?s=books&amp;ie=UTF8&amp;qid=1512589193&amp;sr=1-5&amp;keywords=data+visualization">The Truthful Art: Data, Charts, and Maps for Communication</a>.</p> <p><img class="alignnone wp-image-102924" src="https://blog.pythian.com/wp-content/uploads/thetruthfulart.png" alt="" width="220" height="282" srcset="https://blog.pythian.com/wp-content/uploads/thetruthfulart.png 389w, https://blog.pythian.com/wp-content/uploads/thetruthfulart-350x449.png 350w" sizes="(max-width: 220px) 100vw, 220px" /></p> <p><strong>For anyone interested in exploring the field of data science</strong>: <a href="https://www.amazon.com/Data-Science-Business-Data-Analytic-Thinking/dp/1449361323/ref=sr_1_5?s=books&amp;ie=UTF8&amp;qid=1512592895&amp;sr=1-5&amp;keywords=data+science">Data Science for Business: What You Need to Know about Data Mining and Data-Analytic Thinking</a>.</p> <p><strong>Ambient devic</strong><strong>e</strong> <strong>for anyone who loves data &#8211; and gadgets</strong>: These <a href="http://www.ambientdevices.com/about/consumer-devices">data devices</a> display real time stock market trends, traffic congestion, pollen forecasts, and more.</p> <p><strong>Because data is beautiful</strong>: One of our <a href="https://pythian.myshopify.com/collections/apparel/products/unisex-t-shirt">data science project visualizations on a T-Shirt</a>.</p> <p><strong>For the data pro who loves data</strong>: Help them tell the world about their love for data with a <a href="https://pythian.myshopify.com/collections/apparel/products/women-s-short-sleeve-t-shirt">Pythian Love Your Data T-Shirt</a>.</p> <p><img class="alignnone wp-image-102925" src="https://blog.pythian.com/wp-content/uploads/LoveYourDataT-Shirt.png" alt="" width="230" height="230" srcset="https://blog.pythian.com/wp-content/uploads/LoveYourDataT-Shirt.png 480w, https://blog.pythian.com/wp-content/uploads/LoveYourDataT-Shirt-150x150.png 150w, https://blog.pythian.com/wp-content/uploads/LoveYourDataT-Shirt-465x465.png 465w, https://blog.pythian.com/wp-content/uploads/LoveYourDataT-Shirt-91x91.png 91w, https://blog.pythian.com/wp-content/uploads/LoveYourDataT-Shirt-160x160.png 160w, https://blog.pythian.com/wp-content/uploads/LoveYourDataT-Shirt-192x192.png 192w, https://blog.pythian.com/wp-content/uploads/LoveYourDataT-Shirt-244x244.png 244w, https://blog.pythian.com/wp-content/uploads/LoveYourDataT-Shirt-350x350.png 350w" sizes="(max-width: 230px) 100vw, 230px" /></p> <p><strong>Say it with a mug</strong>: What better way to express the importance of data than with a mug? There are so many sayings about the importance of data in our lives. Our data experts liked these ones: <a href="https://www.amazon.com/Trust-Data-Lore-Novetly-Coffee/dp/B073GD8JTT/ref=sr_1_19?ie=UTF8&amp;qid=1512587875&amp;sr=8-19&amp;keywords=data+gifts">Trust data not lore mug</a>, or this <a href="https://www.zazzle.co.uk/another_idiot_with_an_opinion_sticker-217524488599904342">Without data you’re just another idiot with an opinion</a> mug.</p> <p><img class="alignnone wp-image-102923" src="https://blog.pythian.com/wp-content/uploads/TrustDataMug.jpg" alt="" width="230" height="230" srcset="https://blog.pythian.com/wp-content/uploads/TrustDataMug.jpg 218w, https://blog.pythian.com/wp-content/uploads/TrustDataMug-150x150.jpg 150w, https://blog.pythian.com/wp-content/uploads/TrustDataMug-91x91.jpg 91w, https://blog.pythian.com/wp-content/uploads/TrustDataMug-160x160.jpg 160w, https://blog.pythian.com/wp-content/uploads/TrustDataMug-192x192.jpg 192w" sizes="(max-width: 230px) 100vw, 230px" /></p> <p><strong>Data as Art</strong>: The <a href="https://fineartamerica.com/featured/3422-digits-of-pi-martin-krzywinski.html">first 3422 digits of Pi arranged in an Archimedean spiral</a> from Fine Art America.</p> <p><strong>Data Pro Action Figure</strong>: Because data professionals are your company’s superheroes, why not get them a <a href="http://www.myfaceonafigure.com/aboutyourfigure.aspx">personalized action figure</a> that looks just like them.</p> <p><strong>Tablet stand</strong>: What data pro doesn’t have multiple devices running at any given time? They may have a couple of computers to run different operating systems, and perhaps a tablet to keep up with their email and reference material. Great for holding either a tablet or smartphone, <a href="https://www.amazon.com/Anker-Multi-Angle-e-readers-Smartphones-Compatible/dp/B00D856NOG/ref=sr_1_1?ie=UTF8&amp;qid=1480612365&amp;sr=8-1&amp;keywords=anker+tablet+stand">this tablet</a> stand will help keep desktop clutter in check.</p> <p><strong>Jus</strong><strong>t for SQL experts</strong>: SQL aficionados are proud of their unique language. This <a href="http://www.cafepress.ca/mf/10663548/i-speak-sql_mugs?productId=46806340">I speak SQL mug</a> is the perfect way to say “thank you for a great job” in SQL.</p> <p><strong>A data platform that meets all of your data lovers&#8217; data analytics, reporting and data science needs:</strong><br /> Make your data pro&#8217;s life a whole lot easier with <a href="https://pythian.com/analytics-as-a-service/">Kick AaaS, a fully managed analytics platform</a> that brings together multiple data sources and makes the data available to everyone in your business.</p> <p><img class="alignnone size-full wp-image-102927" src="https://blog.pythian.com/wp-content/uploads/2017-DBA-Gift-Guide-e1512673928836.jpg" alt="" width="600" height="300" /></p> <p>** Note: This post is not intended to promote any particular product. Pythian is not affiliated in any way with the third party vendors mentioned in this post.</p> </div></div> Beth Johnson https://blog.pythian.com/?p=102919 Thu Dec 07 2017 18:18:47 GMT-0500 (EST) Oracle Infrastructure as a Service Cloud 2017 Implementation Essentials http://oracle-help.com/articles/oracle-infrastructure-service-cloud-2017-implementation-essentials/ <p>Hi Readers</p> <p class="p1">Finally I’ve successfully passed <strong>1Z0-337</strong>,  <a href="https://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=5001&amp;get_params=p_exam_id:1Z0-337">Oracle Infrastructure as a Service Cloud 2017 Implementation Essentials</a>. It was almost more than 2 months that I’ve been preparing for this.</p> <p class="p1">The Exam contains 60 questions related to <strong>Compute, Container, Networking</strong> and <strong>Ravello </strong>Services. To earn this certification you need to get 70% marks.</p> <p class="p1">This was the result of the journey: <strong>Oracle Infrastructure as a Service Cloud 2017 Certified Implementation Specialist</strong></p> <p><a href="https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/12/3371.jpg"><img data-attachment-id="2629" data-permalink="http://oracle-help.com/articles/oracle-infrastructure-service-cloud-2017-implementation-essentials/attachment/3371/" data-orig-file="https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/12/3371.jpg?fit=772%2C599" data-orig-size="772,599" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;Skant Gupta&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1512693944&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="3371" data-image-description="" data-medium-file="https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/12/3371.jpg?fit=300%2C233" data-large-file="https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/12/3371.jpg?fit=772%2C599" class="size-full wp-image-2629 aligncenter" src="https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/12/3371.jpg?resize=772%2C599" alt="" width="772" height="599" srcset="https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/12/3371.jpg?w=772 772w, https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/12/3371.jpg?resize=300%2C233 300w, https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/12/3371.jpg?resize=768%2C596 768w, https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/12/3371.jpg?resize=60%2C47 60w, https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/12/3371.jpg?resize=150%2C116 150w" sizes="(max-width: 772px) 100vw, 772px" data-recalc-dims="1" /></a></p> <p class="p1">In this post you will find:</p> <ul> <li><span class="s2"><img src="https://s.w.org/images/core/emoji/2.3/72x72/2663.png" alt="♣" class="wp-smiley" style="height: 1em; max-height: 1em;" /> </span>Path to achieve it</li> <li><span class="s2"><img src="https://s.w.org/images/core/emoji/2.3/72x72/2663.png" alt="♣" class="wp-smiley" style="height: 1em; max-height: 1em;" /> </span>Study Materials</li> <li><span class="s2"><img src="https://s.w.org/images/core/emoji/2.3/72x72/2663.png" alt="♣" class="wp-smiley" style="height: 1em; max-height: 1em;" /> </span>Exam Detail &amp; Score</li> </ul> <p class="p2"><strong>How to Achieve this Certification?</strong></p> <p class="p1">Before appearing to this exam you must have vast knowledge on <strong>IAAS </strong>components likeCompute, Container, Networking &amp; Ravello and <strong>Oracle</strong> <strong>Cloud</strong>.</p> <p class="p1">For following the path to develop expertise in Oracle Database Cloud, read here:</p> <p class="p1"><a class="jive-link-blog-small" href="https://community.oracle.com/blogs/Sir.DBaaSJoelPerez/2017/09/08/oracle-cloud-dbaas-how-to-become-ocp-ocm-cloud" data-containerid="8055" data-containertype="37" data-objectid="25951" data-objecttype="38">#7 Oracle Cloud (DBaaS): How to become OCP &amp; OCM Cloud!!</a></p> <p class="p1">Although it is not necessary to have knowledge on <strong>Oracle</strong> <strong>Database</strong> but as per my point of view you must hands-on <strong>Oracle</strong> <strong>Database and basic concepts of Network and Storage</strong> before writing.</p> <p><strong>List of exam topics</strong></p> <ul> <li>Oracle the Infrastructure as a Service (IaaS) Solution Overview</li> <li>Service <strong>Subscription</strong> from Oracle Cloud</li> <li>Product Area Features and Functions for Technical Individuals</li> <li>Oracle <strong>Compute</strong> Cloud / Dedicated Compute Cloud Service Deployment</li> <li>Oracle <strong>Storage</strong> Cloud / Storage Cloud Archive Service Deployment</li> <li>Oracle <strong>Network</strong> Cloud Services Deployment</li> <li>Oracle <strong>Storage</strong> Cloud Software Appliance Deployment</li> <li>Oracle <strong>IaaS</strong> Application</li> </ul> <p>For more detail, you can follow the below link.</p> <p><a href="https://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=5001&amp;get_params=p_exam_id:1Z0-337">https://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=5001&amp;get_params=p_exam_id:1Z0-337</a></p> <p class="p1"><strong>How to prepare for exam?</strong></p> <p class="p1">There are 3 ways to study for this exam related to cloud part.</p> <ol> <li>Oracle Cloud Infrastructure Channel : <a href="https://cloud.oracle.com/en_US/infrastructure/training"><strong>Click here for video channel</strong></a></li> <li>Official Course on IAAS: <strong><a href="https://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=609&amp;get_params=dc:D96893,clang:EN">Oracle University Course on IAAS</a></strong></li> <li>Oracle Infrastructure Documents : <strong><a href="https://docs.oracle.com/en/cloud/iaas/index.html">Official Documents from Oracle</a></strong></li> </ol> <p>For practicing on <strong>IAAS</strong> services, you need to buy services from Oracle Corporation because there is NO free trail available for <strong>Oracle</strong> <strong>IAAS</strong>.</p> <p>For pricing information, please follow the below link <a href="https://cloud.oracle.com/en_US/infrastructure/pricing">https://cloud.oracle.com/en_US/infrastructure/pricing</a></p> <p><strong>How to register the exam?</strong></p> <p>If you want to enroll exam, please click on below link.</p> <p><strong>Exam Number:</strong> 1Z0-337</p> <p><strong>Exam Title:</strong> Oracle Infrastructure as a Service Cloud 2017 Implementation Essentials</p> <p><a href="https://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=654&amp;get_params=p_id:474">https://education.oracle.com/pls/web_prod-plq-dad/</a><a href="https://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=654&amp;get_params=p_id:474">db_pages.getpage?page_id=654&amp;get_params=p_id:474</a></p> <p class="p1">Below are the Exam Details related to score.</p> <p><a href="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/337.jpg"><img data-attachment-id="2628" data-permalink="http://oracle-help.com/articles/oracle-infrastructure-service-cloud-2017-implementation-essentials/attachment/337/" data-orig-file="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/337.jpg?fit=456%2C349" data-orig-size="456,349" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="337" data-image-description="" data-medium-file="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/337.jpg?fit=300%2C230" data-large-file="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/337.jpg?fit=456%2C349" class="size-full wp-image-2628 aligncenter" src="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/337.jpg?resize=456%2C349" alt="" width="456" height="349" srcset="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/337.jpg?w=456 456w, https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/337.jpg?resize=300%2C230 300w, https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/337.jpg?resize=60%2C46 60w, https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/337.jpg?resize=150%2C115 150w" sizes="(max-width: 456px) 100vw, 456px" data-recalc-dims="1" /></a></p> <p class="p1"><strong>Special Thanks</strong></p> <p class="p2"><a href="http://www.linkedin.com/in/SirDBaaSJoelPerez"><strong>Joel Perez</strong></a> is an <strong>Oracle OCM</strong> and <strong>ACED</strong> who gave an opportunity to write him and motivating me to learn new things.<span class="Apple-converted-space">  </span>I’m very thankful to him as this was the kick off for my studies.</p> <p>Thank you for giving your valuable time to read the above information.</p> <p><span class="s1">If you want to be updated with all our articles s</span>end us the Invitation or Follow us:</p> <p><span class="s1"><span class="s2"><strong>Skant Gupta’s</strong> LinkedIn: <a class="jive-link-external-small" href="http://www.linkedin.com/in/skantali/" rel="nofollow">www.linkedin.com/in/skantali/</a></span></span></p> <p class="p4"><span class="s1"><strong>Joel Perez’s</strong> LinkedIn: <a href="http://www.linkedin.com/in/SirDBaaSJoelPerez"><strong>Joel Perez’s Profile</strong></a></span></p> <p><strong>Anuradha’s </strong><span class="s1">LinkedIn: <strong><a href="https://www.linkedin.com/in/dbaanuradhamudgal/">Anuradha’s Profile</a></strong></span></p> <p>LinkedIn Group: <em><strong><a class="js-entity-name entity-name" href="https://www.linkedin.com/groups/12065270" data-app-link="">Oracle Cloud DBAAS</a></strong></em></p> <p>Facebook Page: <em><strong><a href="https://www.facebook.com/oraclehelp">OracleHelp</a></strong></em></p> <div class="sharedaddy sd-sharing-enabled"> <div class="robots-nocontent sd-block sd-social sd-social-icon sd-sharing"> <h3 class="sd-title">Share this:</h3> </div> </div> <p>The post <a rel="nofollow" href="http://oracle-help.com/articles/oracle-infrastructure-service-cloud-2017-implementation-essentials/">Oracle Infrastructure as a Service Cloud 2017 Implementation Essentials</a> appeared first on <a rel="nofollow" href="http://oracle-help.com">ORACLE-HELP</a>.</p> Skant Gupta http://oracle-help.com/?p=2626 Thu Dec 07 2017 14:21:58 GMT-0500 (EST) UKOUG Tech17 : It’s a Wrap! https://oracle-base.com/blog/2017/12/07/ukoug-tech17-its-a-wrap/ <p><img class="alignleft wp-image-7698" src="https://oracle-base.com/blog/wp-content/uploads/2017/10/ukoug_tech17.png" alt="" width="200" height="42" />Just a quick reflection on the UKOUG Tech17 event&#8230;</p> <p>Here are the posts I wrote over the event.</p> <ul> <li><a href="https://oracle-base.com/blog/2017/10/31/ukoug-tech17-im-speaking/">UKOUG Tech17 : I&#8217;m Speaking</a></li> <li><a href="https://oracle-base.com/blog/2017/12/05/ukoug-tech17-monday/">UKOUG Tech17 : Monday</a></li> <li><a href="https://oracle-base.com/blog/2017/12/06/ukoug-tech17-tuesday/">UKOUG Tech17 : Tuesday</a></li> <li><a href="https://oracle-base.com/blog/2017/12/06/ukoug-tech17-wednesday/">UKOUG Tech17 : Wednesday</a></li> <li>UKOUG Tech17 : It&#8217;s a Wrap! (this post)</li> </ul> <p>Things went pretty well for me this week. My timetable allowed me to come for two full days, which was nice. It&#8217;s a lot less stressful when you are not trying to rush in and out from work like I was on Tuesday.</p> <p>It&#8217;s funny walking around the event as it feels like every couple of steps I see someone I want to stop and talk to. I could probably spend the whole event in the lobby just talking to people. <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p> <p>As usual, some quick thanks:</p> <ul> <li>Thanks to UKOUG for letting come to present again.</li> <li>Thanks to all the people that came to my sessions, came to speak to me during the event and the folks that filled in the session evaluations last year, making my head swell even more. <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></li> <li>Thanks to Oracle Academy and UKOUG for letting me come and present at the Oracle Academy sessions.</li> <li>Thanks to the Oracle ACE Program for organising the briefing and for letting me continue to fly the flag at these events, as well the Developer Champion Program for dragging me into the new world. <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></li> <li>Thanks to all the other speakers for sharing your knowledge and saving me a load of time Googling&#8230;</li> </ul> <p>Next year&#8217;s event is in Liverpool, so I&#8217;m not sure how that will work out for me. If colleagues still want to come I will probably only be able to come for a single day. If they can&#8217;t face the journey I will be able to come for the whole event and stay in a hotel. <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p> <p>Cheers</p> <p>Tim&#8230;</p> <hr style="border-top:black solid 1px" /><a href="https://oracle-base.com/blog/2017/12/07/ukoug-tech17-its-a-wrap/">UKOUG Tech17 : It&#8217;s a Wrap!</a> was first posted on December 7, 2017 at 7:10 pm.<br />©2012 "<a href="http://www.oracle-base.com/blog">The ORACLE-BASE Blog</a>". Use of this feed is for personal non-commercial use only. If you are not reading this article in your feed reader, then the site is guilty of copyright infringement.<br /> Tim... https://oracle-base.com/blog/?p=7755 Thu Dec 07 2017 13:10:32 GMT-0500 (EST) ODTUG December News http://www.odtug.com/p/bl/et/blogaid=754&source=1 The ODTUG December News includes information about the abstract public voting sign-ups, ODTUG Kscope18 Community Service Day donations, Oracle Cloud Customer Connect upcoming webinars, ODTUG community news, and upcoming ODTUG webinars. ODTUG http://www.odtug.com/p/bl/et/blogaid=754&source=1 Thu Dec 07 2017 11:34:37 GMT-0500 (EST) Prereq Check Failed – The Database Must Be In Upgrade Mode http://oracle-help.com/oracle-database/prereq-check-failed-database-must-upgrade-mode/ <p><strong>Database</strong> release <strong>12c</strong> extends patch install automation for patches that contain post-patch <strong>SQL</strong> instructions.<br /> Prior to <strong>Oracle</strong> <strong>12c</strong> such patches required manual intervention to complete the post-patch SQL instructions after restarting the database.<br /> <strong>Datapatch</strong> is the new tool that enables automation of post-patch <strong>SQL</strong> actions for <strong>RDBMS</strong> patches.<br /> <strong>Datapatch</strong> resides in the <strong>opatch</strong> directory i.e $ORACLE_HOME/OPatch folder (On Windows platforms : %ORACLE_HOME%\OPatch).</p> <p><strong>Datapatch</strong> can be executed to complete post-patch <strong>SQL</strong> actions after the database is restarted following patch application.<br /> For patches that do not have post-patch SQL actions to be performed, calling datapatch is a no-op.<br /> For patches that do have post-patch <strong>SQL</strong> instructions to be invoked on the database instance, <strong>datapatch</strong> will automatically detect ALL pending actions (from one installed patch or multiple installed patches) and complete the actions as appropriate.</p> <p>From <strong>12c</strong> onwards, after applying the patch, as part of post patching activity, we need to run <strong>datapatch</strong> utility.</p> <p>If you have applied <strong>javam</strong> patch in the <strong>ORACLE_HOME</strong>, then while running <strong>datapatch</strong> you will face below error.</p><pre class="crayon-plain-tag">$ ./datapatch -verbose SQL Patching tool version 12.1.0.2.0 on Fri Sep 23 15:26:39 2016 Copyright (c) 2016, Oracle. All rights reserved. Log file for this invocation: /oracle/app/oracle/cfgtoollogs/sqlpatch/sqlpatch_16060_2016_09_23_15_26_39/sqlpatch_invocation.log Connecting to database...OK Bootstrapping registry and package to current versions...done Determining current state...done The current state of SQL patches: Patch 23177536 (Database PSU 12.1.0.2.160719, Oracle JavaVM Component (JUL2016)): Installed in the binary registry only Bundle series PSU: ID 160719 in the binary registry and not installed in the SQL registry Adding patches to installation queue and performing prereq checks… Installation queue: Nothing to roll back The following patches will be applied: 23177536 (Database PSU 12.1.0.2.160719, Oracle JavaVM Component (JUL2016)) 23054246 (Database Patch Set Update : 12.1.0.2.160719 (23054246)) Error: prereq checks failed! patch 23177536: The database must be in upgrade mode Prereq check failed, exiting without installing any patches.</pre><p></p> <h4>SOLUTION:</h4> <p>We need to start the database in upgrade mode, if JAVAM patch is applied to ORACLE_HOME.</p><pre class="crayon-plain-tag">SQL&gt; startup upgrade ORACLE instance started. Total System Global Area 2.2280E+10 bytes Fixed Size 7676976 bytes Variable Size 1.2147E+10 bytes Database Buffers 1.0066E+10 bytes Redo Buffers 59428864 bytes Database mounted. Database opened.</pre><p><strong>Now run datapatch:</strong></p><pre class="crayon-plain-tag">cd /oracle/app/oracle/product/12.1.0.2/dbhome_1/OPatch $ ./datapatch -verbose SQL Patching tool vers12.1.0.2.0 on Fri Sep 23 15:26:39 2016 Copyright (c) 2016, Oracle. All rights reserved. Log file for this invocation: /oracle/app/oracle/cfgtoollogs/sqlpatch/sqlpatch_16060_2016_09_23_15_26_39/sqlpatch_invocation.log Connecting to database...OK Bootstrapping registry and package to current versions...done Determining current state...done The current state of SQL patches: Patch 23177536 (Database PSU 12.1.0.2.160719, Oracle JavaVM Component (JUL2016)): Installed in the binary registry only Bundle series PSU: ID 160719 in the binary registry and not installed in the SQL registry Adding patches to installation queue and performing prereq checks... Installation queue: Nothing to roll back The following patches will be applied: 23177536 (Database PSU 12.1.0.2.160719, Oracle JavaVM Component (JUL2016)) 23054246 (Database Patch Set Update : 12.1.0.2.160719 (23054246)) Installing patches... Patch installation complete. Total patches installed: 2 Validating logfiles... Patch 23177536 apply: SUCCESS logfile: /oracle/app/oracle/cfgtoollogs/sqlpatch/23177536/20413866/23177536_apply_FINARCDB_2016Sep23_15_27_41.log (no errors) Patch 23054246 apply: SUCCESS logfile: /oracle/app/oracle/cfgtoollogs/sqlpatch/23054246/20284967/23054246_apply_FINARCDB_2016Sep23_15_27_43.log (no errors) SQL Patching tool complete on Fri Sep 23 15:27:50 2016</pre><p>Thank you for giving your valuable time to read the above information.</p> <p><span class="s1">If you want to be updated with all our articles s</span>end us the Invitation or Follow us:</p> <p><span class="s1"><span class="s2"><strong>Skant Gupta’s</strong> LinkedIn: <a class="jive-link-external-small" href="http://www.linkedin.com/in/skantali/" rel="nofollow">www.linkedin.com/in/skantali/</a></span></span></p> <p class="p4"><span class="s1"><strong>Joel Perez’s</strong> LinkedIn: <a href="http://www.linkedin.com/in/SirDBaaSJoelPerez"><strong>Joel Perez’s Profile</strong></a></span></p> <p><strong>Anuradha’s </strong><span class="s1">LinkedIn: <strong><a href="https://www.linkedin.com/in/dbaanuradhamudgal/">Anuradha’s Profile</a></strong></span></p> <p>LinkedIn Group: <em><strong><a class="js-entity-name entity-name" href="https://www.linkedin.com/groups/12065270" data-app-link="">Oracle Cloud DBAAS</a></strong></em></p> <p>Facebook Page: <em><strong><a href="https://www.facebook.com/oraclehelp">OracleHelp</a></strong></em></p> <p>The post <a rel="nofollow" href="http://oracle-help.com/oracle-database/prereq-check-failed-database-must-upgrade-mode/">Prereq Check Failed – The Database Must Be In Upgrade Mode</a> appeared first on <a rel="nofollow" href="http://oracle-help.com">ORACLE-HELP</a>.</p> Anuradha Mudgal http://oracle-help.com/?p=2621 Thu Dec 07 2017 10:27:29 GMT-0500 (EST) ORA00245:- Control File Backup Failed; Target Is Likely On A Local File System http://oracle-help.com/oracle-11g/ora00245-control-file-backup-failed-target-likely-local-file-system/ <p>In this post, we are going to learn about the <strong>ORA-00245. </strong></p> <p><a href="https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/12/1.jpg"><img data-attachment-id="2616" data-permalink="http://oracle-help.com/oracle-11g/ora00245-control-file-backup-failed-target-likely-local-file-system/attachment/1-49/" data-orig-file="https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/12/1.jpg?fit=225%2C225" data-orig-size="225,225" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="1" data-image-description="" data-medium-file="https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/12/1.jpg?fit=225%2C225" data-large-file="https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/12/1.jpg?fit=225%2C225" class="alignnone wp-image-2616" src="https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/12/1.jpg?resize=280%2C281" alt="" width="280" height="281" srcset="https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/12/1.jpg?w=225 225w, https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/12/1.jpg?resize=150%2C150 150w, https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/12/1.jpg?resize=60%2C60 60w" sizes="(max-width: 280px) 100vw, 280px" data-recalc-dims="1" /></a></p> <p><span style="font-family: arial, helvetica, sans-serif">A snapshot controlfile is a read-consistent copy of a database controlfile which RMAN creates because the controlfile is changed constantly. </span><span style="font-family: arial, helvetica, sans-serif">As of Oracle 11.2 (11.2.0.2 to more precise), the snapshot controlfile must be on a location shared by all RAC nodes in a cluster (it must be accessible by all nodes on which instances for a RAC database can run). If you do not do so, you most likely will receive an ORA-00245 (ORA-00245: control file backup operation failed) when running an RMAN backup.</span></p> <p><span style="font-family: arial, helvetica, sans-serif">Although this is a requirement as of 11.2, when you create a RAC database using dbca the default location will still be the $ORACLE_HOME/dbs which in most cases is a non-shared location. Possible shared locations: cluster filesystems like OCFS and GPFS, ACFS and ASM.</span></p> <p><span style="font-family: arial, helvetica, sans-serif"><strong>PROBLEM:</strong></span></p> <p><span style="font-family: arial, helvetica, sans-serif">While taking RMAN backup in Oracle RAC database, getting below error.</span></p> <p><span style="font-family: arial, helvetica, sans-serif">RMAN-00571: ===========================================================</span><br /> <span style="font-family: arial, helvetica, sans-serif">RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============</span><br /> <span style="font-family: arial, helvetica, sans-serif">RMAN-00571: ===========================================================</span><br /> <span style="font-family: arial, helvetica, sans-serif">RMAN-03009: failure of resync command on default channel at 12/10/2016 22:16:52</span><br /> <span style="font-family: arial, helvetica, sans-serif">ORA-00245: control file backup failed; target is likely on a local file system</span><br /> <span style="font-family: arial, helvetica, sans-serif">Recovery Manager complete.</span><br /> <span style="font-family: arial, helvetica, sans-serif">No lines match the search criteria.</span></p> <p><span style="font-family: arial, helvetica, sans-serif"><strong>SOLUTION:</strong></span></p> <p><span style="font-family: arial, helvetica, sans-serif"><strong>Check the snapshot </strong>controlfile<strong> location in </strong>rman<strong> configuration.</strong></span></p> <p><span style="font-family: arial, helvetica, sans-serif">RMAN&gt; show all;</span></p> <p><span style="font-family: arial, helvetica, sans-serif">RMAN configuration parameters for database with db_unique_name TESTDB2 are:</span><br /> <span style="font-family: arial, helvetica, sans-serif">CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default</span><br /> <span style="font-family: arial, helvetica, sans-serif">CONFIGURE BACKUP OPTIMIZATION OFF; # default</span><br /> <span style="font-family: arial, helvetica, sans-serif">CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default</span><br /> <span style="font-family: arial, helvetica, sans-serif">CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default</span><br /> <span style="font-family: arial, helvetica, sans-serif">CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO &#8216;%F&#8217;; # default</span><br /> <span style="font-family: arial, helvetica, sans-serif">CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default</span><br /> <span style="font-family: arial, helvetica, sans-serif">CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default</span><br /> <span style="font-family: arial, helvetica, sans-serif">CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default</span><br /> <span style="font-family: arial, helvetica, sans-serif">CONFIGURE MAXSETSIZE TO UNLIMITED; # default</span><br /> <span style="font-family: arial, helvetica, sans-serif">CONFIGURE ENCRYPTION FOR DATABASE OFF; # default</span><br /> <span style="font-family: arial, helvetica, sans-serif">CONFIGURE ENCRYPTION ALGORITHM &#8216;AES128&#8217;; # default</span><br /> <span style="font-family: arial, helvetica, sans-serif">CONFIGURE COMPRESSION ALGORITHM &#8216;BASIC&#8217; AS OF RELEASE &#8216;DEFAULT&#8217; OPTIMIZE FOR LOAD TRUE ; # default</span><br /> <span style="font-family: arial, helvetica, sans-serif">CONFIGURE RMAN OUTPUT TO KEEP FOR 7 DAYS; # default</span><br /> <span style="font-family: arial, helvetica, sans-serif">CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default</span><br /> <span style="font-family: arial, helvetica, sans-serif">CONFIGURE SNAPSHOT CONTROLFILE NAME TO &#8216;/oracle/app/oracle/product/12.1.0.2/dbhome_1/dbs/snapcf_TESTDB21.f&#8217;; # default</span></p> <p><span style="font-family: arial, helvetica, sans-serif"><em><strong>CONFIGURE SNAPSHOT CONTROLFILE NAME TO ‘/oracle/app/oracle/product/12.1.0.2/dbhome_1/dbs/snapcf_TESTDB21.f’; # default</strong></em></span></p> <p><span style="font-family: arial, helvetica, sans-serif">The error is because, controlfile location is set to non shared file system.</span></p> <p><span style="font-family: arial, helvetica, sans-serif">To fix it, change the configuration to point it to a shared location or ASM disk.</span></p> <p><span style="font-family: arial, helvetica, sans-serif">RMAN&gt; configure SNAPSHOT CONTROLFILE NAME TO &#8216;+NEWTST&#8217;;</span></p> <p><span style="font-family: arial, helvetica, sans-serif">new RMAN configuration parameters:</span><br /> <span style="font-family: arial, helvetica, sans-serif">CONFIGURE SNAPSHOT CONTROLFILE NAME TO &#8216;+NEWTST&#8217;;</span><br /> <span style="font-family: arial, helvetica, sans-serif">new RMAN configuration parameters are successfully stored</span></p> <p><span style="font-family: arial, helvetica, sans-serif">RMAN&gt; show all;</span></p> <p><span style="font-family: arial, helvetica, sans-serif">RMAN configuration parameters for database with db_unique_name TESTDB2 are:</span><br /> <span style="font-family: arial, helvetica, sans-serif">CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default</span><br /> <span style="font-family: arial, helvetica, sans-serif">CONFIGURE BACKUP OPTIMIZATION OFF; # default</span><br /> <span style="font-family: arial, helvetica, sans-serif">CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default</span><br /> <span style="font-family: arial, helvetica, sans-serif">CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default</span><br /> <span style="font-family: arial, helvetica, sans-serif">CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO &#8216;%F&#8217;; # default</span><br /> <span style="font-family: arial, helvetica, sans-serif">CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default</span><br /> <span style="font-family: arial, helvetica, sans-serif">CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default</span><br /> <span style="font-family: arial, helvetica, sans-serif">CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default</span><br /> <span style="font-family: arial, helvetica, sans-serif">CONFIGURE MAXSETSIZE TO UNLIMITED; # default</span><br /> <span style="font-family: arial, helvetica, sans-serif">CONFIGURE ENCRYPTION FOR DATABASE OFF; # default</span><br /> <span style="font-family: arial, helvetica, sans-serif">CONFIGURE ENCRYPTION ALGORITHM &#8216;AES128&#8217;; # default</span><br /> <span style="font-family: arial, helvetica, sans-serif">CONFIGURE COMPRESSION ALGORITHM &#8216;BASIC&#8217; AS OF RELEASE &#8216;DEFAULT&#8217; OPTIMIZE FOR LOAD TRUE; # default</span><br /> <span style="font-family: arial, helvetica, sans-serif">CONFIGURE RMAN OUTPUT TO KEEP FOR 7 DAYS; # default</span><br /> <span style="font-family: arial, helvetica, sans-serif">CONFIGURE ARCHIVELOG DELETION POLICY </span>TO<span style="font-family: arial, helvetica, sans-serif"> NONE; # default</span><br /> <span style="font-family: arial, helvetica, sans-serif">CONFIGURE SNAPSHOT CONTROLFILE NAME TO &#8216;+NEWTST&#8217;;</span></p> <p><span style="font-family: arial, helvetica, sans-serif">Now try to take </span>backup<span style="font-family: arial, helvetica, sans-serif"> again. it will work fine.</span></p> <p>The post <a rel="nofollow" href="http://oracle-help.com/oracle-11g/ora00245-control-file-backup-failed-target-likely-local-file-system/">ORA00245:- Control File Backup Failed; Target Is Likely On A Local File System</a> appeared first on <a rel="nofollow" href="http://oracle-help.com">ORACLE-HELP</a>.</p> Anuradha Mudgal http://oracle-help.com/?p=2614 Thu Dec 07 2017 10:18:30 GMT-0500 (EST) Oracle Forms & Reports on Docker - The Concept and Technique behind http://dirknachbar.blogspot.com/2017/12/oracle-forms-reports-on-docker-concept.html In the last days I was working on my Oracle Forms &amp; Reports in Docker solution and I already published it via my blog and in my personal GitHub Repository.<br /><br /><ul><li>Oracle Forms &amp; Reports 12.2.1.2.0 in Docker:&nbsp;<a href="http://dirknachbar.blogspot.com/2017/11/oracle-forms-reports-122120-in-docker.html" target="_blank">http://dirknachbar.blogspot.com/2017/11/oracle-forms-reports-122120-in-docker.html</a></li><li>Oracle Forms &amp; Reports 12.2.1.3.0 in Docker:&nbsp;<a href="http://dirknachbar.blogspot.com/2017/12/oracle-forms-reports-122130-in-docker.html" target="_blank">http://dirknachbar.blogspot.com/2017/12/oracle-forms-reports-122130-in-docker.html</a></li><li>Oracle Forms &amp; Reports 12.2.1.3.0 with FADS in Docker:&nbsp;<a href="http://dirknachbar.blogspot.com/2017/12/oracle-forms-reports-122130-with-fads.html" target="_blank">http://dirknachbar.blogspot.com/2017/12/oracle-forms-reports-122130-with-fads.html</a></li><li>GitHub Repository with all sources:&nbsp;<a href="https://github.com/DirkNachbar/Docker" target="_blank">https://github.com/DirkNachbar/Docker</a></li></ul><div>With this blog post, I want to explain the Concept and Technique behind my solution and the motivation.</div><div><br /></div><div>Lets start with the motivation :-) With the Oracle Forms &amp; Reports 12.2.x releases, Oracle has decided to remove the option to create script-based the WebLogic Domain for Oracle Forms &amp; Reports. In case, I just have to install and configure one server with Oracle Forms &amp; Reports, its quite fine to click through the Domain Configuration Wizard, but normally you don't have to configure just one environment, mostly 3 or more environments. Questions directed to Oracle, if the script-based configuration will be enabled again, were just answered with "<b><i>you have to use the graphical Domain Configuration Wizard</i></b>" ...</div><div>So, Jan-Peter Timmermann (<a href="https://jan-peter.me/" target="_blank">https://jan-peter.me</a>), Robert Crames (<a href="http://robertcrames.blogspot.ch/" target="_blank">http://robertcrames.blogspot.ch</a>) and I, were developing together a script set for installation and configuration of a complete Oracle Forms &amp; Reports 12.2.x environment on Unix (Linux and so on) Servers, because we couldn't accept the fact, that we should start the Domain Configuration Wizard and click through several times just to create multiple Oracle Forms &amp; Reports 12.2.x environments.&nbsp;</div><div>The blog posts including the source code with the above mentioned solution can be found here:</div><div><ul><li>How to install and configure Oracle Forms &amp; Reports 12c fully unattended - Part 1:&nbsp;<a href="http://dirknachbar.blogspot.com/2017/05/how-to-install-and-configure-oracle.html" target="_blank">http://dirknachbar.blogspot.com/2017/05/how-to-install-and-configure-oracle.html</a></li><li>How to install and configure Oracle Forms &amp; Reports 12c fully unattended - Part 2:&nbsp;<a href="http://robertcrames.blogspot.ch/2017/05/how-to-install-and-configure-oracle.html" target="_blank">http://robertcrames.blogspot.ch/2017/05/how-to-install-and-configure-oracle.html</a></li></ul><div>We used this solution in our own test labs and also in real-life for customers, which reduced the efforts in installing and configuring Oracle Forms &amp; Reports 12.2.x environments dramatically.</div></div><div><br /></div><div>As I am a Docker fan and using heavily the by Oracle provided Docker solutions on&nbsp;https://github.com/oracle/docker-images, the next step was for me, to convert/integrate our script based solution for Oracle Forms &amp; Reports into a Docker Image and here we are ...</div><div><br /></div><div>The concept and technique behind the Oracle Forms &amp; Reports in Docker solution is quite straight forward and simple.</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-v_5mNA_hdLs/WikubjaF02I/AAAAAAAAAyE/8qjI9ChBL70zvOlHzLErHWKlLoIktLhHACLcBGAs/s1600/FR_on_Docker.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="405" data-original-width="720" height="360" src="https://1.bp.blogspot.com/-v_5mNA_hdLs/WikubjaF02I/AAAAAAAAAyE/8qjI9ChBL70zvOlHzLErHWKlLoIktLhHACLcBGAs/s640/FR_on_Docker.png" width="640" /></a></div><div>Assuming you have a server with Docker (I personally prefer an Oracle Enterprise Linux 7.4 with Docker Engine from the Oracle Repos), you just have to decide if your Oracle Database for the required Metadata Repository for Oracle Forms &amp; Reports should be also residing in your Docker or you have somewhere else (native) an Oracle Database (I am using an Oracle Database inside Docker on the same Docker server).</div><div>So at first you will pull your Oracle Linux 7 Image, which will be used as Base Image for your Oracle Database Image. For this I highly recommend the Oracle provided solution on GitHub (<a href="https://github.com/oracle/docker-images/tree/master/OracleDatabase" target="_blank">https://github.com/oracle/docker-images/tree/master/OracleDatabase</a>) mainly maintained by Gerald Venzl (<a href="https://twitter.com/GeraldVenzl" target="_blank">https://twitter.com/GeraldVenzl</a>). After you got your Oracle DB Image installed, you just have to create your Oracle Database by following the instructions on&nbsp;<a href="https://github.com/oracle/docker-images/tree/master/OracleDatabase#running-oracle-database-in-a-docker-container" target="_blank">https://github.com/oracle/docker-images/tree/master/OracleDatabase#running-oracle-database-in-a-docker-container</a>.</div><div><br /></div><div>The next step is to build up your Oracle Forms &amp; Reports Stack, just get a copy of my GitHub Repository&nbsp;<a href="https://github.com/DirkNachbar/Docker" target="_blank">https://github.com/DirkNachbar/Docker</a>. Download all the required Software binaries (JDK, Oracle WebLogic Server Infrastructure, Oracle Forms &amp; Reports, optionally SQL Developer if you want to use Forms Application Deployment Services) for your desired Release (currently I am supporting Forms &amp; Reports 12.2.1.2.0 and 12.2.1.3.0&nbsp;).</div><div><br /></div><div>The first step is to create your JDK Image (I am using a full JDK and not a server-side version), based on Oracle Linux 7 Base Image (will be automatically pulled if not present).</div><div>As next you will need to create your WebLogic Server Infrastructure Image based on the prior created JDK Image. Within the creation of the WebLogic Server Infrastructure Image, I am also installing all required RPM's for Oracle Forms &amp; Reports and fixing the libXm.so bug (without this fix Oracle Reports will not work).</div><div>After that you will need to create the Forms &amp; Reports Image, based on the prior created WebLogic Server Infrastructure Image. During the build of the Oracle Forms &amp; Reports Image, all required scripts for the Domain creation will be copied into the Image. These scripts will be used in the final step by the docker-compose file. In case you are using Forms &amp; Reports 12.2.1.3.0, you have also the option to use Forms Application Deployment Services (FADS). For this, if the variable DC_FADS12C is set to true in the OracleFormsReports/setenv.sh, the Image will transfer the required SQL Developer binary file and replace the old version of the SQL Developer under the Oracle Forms &amp; Reports ORACLE_HOME directory.</div><div><br /></div><div>Before you proceed with the final step to create your Forms &amp; Reports Domain, you need to align the script OracleFormsReports/setenv.sh. This is the most important step before you start with the Domain creation.&nbsp;</div><div>Most of the variables, which will be declared within the setenv.sh script are self-explained, like DC_ADM_USER, DC_ADM_PWD and so on). Some variables you need to take care very well, like the DC_DB%. In case you don't align them to your environment, the creation of the Metadata Repository will fail and finally your Domain creation will fail.&nbsp;</div><div>Another important variable is DC_USERHOME, this one configures the to be used volume on your Docker host, which will be mapped from your Docker Container. I am using volumes within the Forms &amp; Reports Docker Container, which will contain the complete DOMAIN_HOME, because this allows you later on, to configure directly from your Docker host on the defined volume various settings, eg. formsweb.cfg, rwserver.conf, httpd.conf and so on. The defined DC_USERHOME you will have to create before you are starting with the Domain creation.</div><div><br /></div><div>Finally (make sure that your target Database for the Metadata Repository is up and running) you can start the Domain Creation with the provided docker-compose file, which will create you a base domain, extend this with Forms &amp; Reports, configure an Oracle HTTP Server (OHS) and creates you a Reports Server and finally it will configure port-forwarding from your Docker Container to your Docker Host of the most important ports, e.g. WebLogic Admin Server, Managed Servers and Oracle HTTP Server. The provided docker-compose script will take all the defined variables from the setenv.sh script and push them into to the to-be created Container, so that at the beginning mentioned script-set for creating the Domain for Forms &amp; Reports can use them.</div><div>For fans of the new feature Forms Application Deployment Services (FADS), which is available from release 12.2.1.3.0 going. I have also implemented a pre-configuration task within the Domain creation for FADS, so that you just need later on, when your Container is running, to execute the fads_config.py script to get your FADS functionality.&nbsp;</div><div><br /></div><div>In case something goes wrong during the Domain creation, you can easily wipe out your half-Docker Container with "docker rm frfmw" and dont forget to cleanup below your defined volume ($DC_USERHOME/user_projects) potentially created directories like domains or applications. And then you can restart with the docker-compose your creation of the Docker Container.</div><div><br /></div><div>The last step is, after a successful build of the Docker Container, to start the Container. For this you can use the command "docker start frfmw" and thats all ...</div><div><br /></div><div>I will regularly update or enhance my Docker solution for Oracle Forms &amp; Reports, so check out my GitHub Repository (<a href="https://github.com/DirkNachbar/Docker" target="_blank">https://github.com/DirkNachbar/Docker</a>) from time to time. Or if you have some specific needs, just drop me a message here or give me a message in Twitter (<a href="https://twitter.com/DirkNachbar" target="_blank">https://twitter.com/DirkNachbar</a>) or create a Issue on the GitHub Repository.</div><div><br /></div><div><b><u>Last words:</u></b> even when Oracle tells you, something is not possible, mostly it is ;-)</div><div><br /></div><div>I hope you will enjoy and use my Docker solution for Oracle Forms &amp; Reports ;-)&nbsp;</div><div><br /></div><div><br /></div> Dirk Nachbar tag:blogger.com,1999:blog-4344684978957885806.post-6529269387662188320 Thu Dec 07 2017 08:13:00 GMT-0500 (EST) UKOUG Tech17 : Wednesday https://oracle-base.com/blog/2017/12/06/ukoug-tech17-wednesday/ <p><img class="alignleft wp-image-7698" src="https://oracle-base.com/blog/wp-content/uploads/2017/10/ukoug_tech17.png" alt="" width="200" height="42" />Wednesday started with a quick trip to the doctor, then I got a bus into town for the conference. I kept bumping into interesting people and chatting, so I didn&#8217;t manage to get to any of the early sessions.</p> <p>I missed picking up my Best UK Speaker award and the group photo yesterday, so I picked it up today and did a photo with Linda and Jennifer, two of the ladies that keep the Oracle ACE Program and the Developer Champion Programs running smoothly. While I was in the exhibition hall I got into a discussion about APEX, and rather than just talk I opened my laptop, headed to <a href="https://apex.oracle.com/en/">apex.oracle.com</a> and did an impromptu demo. One APEX talk and it&#8217;s gone to my head. <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p> <p>Then it was time for me to head up to the <a href="https://academy.oracle.com/en/oa-web-overview.html">Oracle Academy</a> sessions. UKOUG and Oracle Academy put on a program for students and <a href="http://www.oralytics.com/">Brendan Tierney</a> and I agreed to help out and each do a short talk for them. Some of the students got &#8220;lost&#8221; in the conference (or at the German market), and of the ones that did turn up I recognised all of them from either the BCU talks I&#8217;ve done recently, or the UKOUG NextGen session I did in 2014. <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p> <p>From there it was off to lunch, then I had a two hour Oracle ACE Director briefing. It was a mix of public and NDA stuff, so I&#8217;m not going to say anything about it (or the Oracle Games Console #OGC) for fear of getting disappeared&#8230;</p> <p>That pretty much wrapped up the conference. I popped into Starbucks to chat to <a href="https://twitter.com/miaurman">Mia</a>, <a href="https://twitter.com/debralilley">Debra</a> and <a href="https://twitter.com/fionaemartin">Fiona</a>, then it was a bus home and that was that.</p> <p>Cheers</p> <p>Tim&#8230;</p> <hr style="border-top:black solid 1px" /><a href="https://oracle-base.com/blog/2017/12/06/ukoug-tech17-wednesday/">UKOUG Tech17 : Wednesday</a> was first posted on December 6, 2017 at 8:29 pm.<br />©2012 "<a href="http://www.oracle-base.com/blog">The ORACLE-BASE Blog</a>". Use of this feed is for personal non-commercial use only. If you are not reading thiarticle in your feed reader, then the site is guilty of copyright infringement.<br /> Tim... https://oracle-base.com/blog/?p=7753 Wed Dec 06 2017 14:29:16 GMT-0500 (EST) UKOUG Tech17 : Tuesday https://oracle-base.com/blog/2017/12/06/ukoug-tech17-tuesday/ <p><img class="alignleft wp-image-7698" src="https://oracle-base.com/blog/wp-content/uploads/2017/10/ukoug_tech17.png" alt="" width="200" height="42" />Tuesday was a work day for me, so I was in work until the late afternoon, then left for the conference to do my APEX session. A little while later I was sitting in traffic thinking, &#8220;I&#8217;m not going to make it!&#8221; The traffic opened, I got a parking spot really quickly and I made it with 3 minutes to spare&#8230; <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p> <p>The session was based around API first development for APEX. I was quite nervous about doing a talk in the APEX stream, because I have a long history of being bad at APEX and I know some of the things I say contradict the way some APEX developers like to work. The session was based around a number of things already on my website, but I might put them together to put out an article that aligns with this session, even if it just ends up as a glorified links page. I enjoyed giving the session and I spoke to a few people after it and got some nice feedback. Remember, it&#8217;s all just my opinion, not the law. <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p> <p>After the session I spent some time speaking to <a href="https://twitter.com/poelger">Gert Poel</a>. He had done a session in the APEX track the day before, which had a lot of crossover with mine. Great minds think alike. <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Then it was coffee, more talking, and the evening bash. Not surprisingly I spent a lot of time chatting to people, eating some food and had a couple of sneaky diet cokes. At about 22:00 I drove home and crashed for the night.</p> <p>So Tuesday was a short day from a conference perspective for me, but I got to chat to a lot of people, which is the best bit about any conference. <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p> <p>Cheers</p> <p>Tim&#8230;</p> <hr style="border-top:black solid 1px" /><a href="https://oracle-base.com/blog/2017/12/06/ukoug-tech17-tuesday/">UKOUG Tech17 : Tuesday</a> was first posted on December 6, 2017 at 7:48 pm.<br />©2012 "<a href="http://www.oracle-base.com/blog">The ORACLE-BASE Blog</a>". Use of this feed is for personal non-commercial use only. If you are not reading this article in your feed reader, then the site is guilty of copyright infringement.<br /> Tim... https://oracle-base.com/blog/?p=7749 Wed Dec 06 2017 13:48:10 GMT-0500 (EST) Enter Amazon Aurora Serverless https://blog.pythian.com/enter-amazon-aurora-serverless/ <div class="l-submain"><div class="l-submain-h g-html i-cf"><p>More often than not, database administrators have to fight to get high loads out of their databases. It could be ad hoc queries, urgent reports, overflown jobs, or simply high frequency and volume of queries by the end users.</p> <p>DBAs try their best with generous capacity planning to ensure optimal response time and throughput for the end users. There are various scenarios where it becomes very hard to predict the demand. Storage and processing needs in case of unpredictable load are hard to foretell in advance.</p> <p><span id="more-102875"></span></p> <p>Cloud computing offers the promise of unmatched scalability for processing and storage needs. Amazon AWS has introduced a new service which gets closer to that ultimate scalability. <a href="https://aws.amazon.com/rds/aurora/">Amazon Aurora</a> is a hosted relational database service by AWS. You set your instance size and storage need while setting Aurora up. If your processing requirements change, you change your instance size and if you need more read throughput you add more read replicas.</p> <p>But that is good for the loads we know about and can more ore less predict. What about the loads which appear out of blue? Maybe for a blogging site, where a post has suddenly gone viral and it has started getting millions of views instead of hundreds? And then the traffic disappears after some time suddenly, just like it appeared out of nowhere and may be after a few days the same thing happens for another post?</p> <p>In this case if you are running Amazon Aurora, it would be fairly expensive to just increase the instance size or read replicas in the anticipation that some traffic burst would come. It might not, but then it might.</p> <p>Ahead of this uncertainty, enters <a href="https://aws.amazon.com/rds/aurora/serverless/">Amazon Aurora Serverless</a>. With this Serverless Aurora, you don&#8217;t select your instance size. You simply specify an endpoint and then all the queries are routed to that endpoint. Behind that endpoint lies a a warm proxy fleet of database capacity which can scale as per your requirements within 5 seconds. It&#8217;s all on-demand and ideal for transient spiky loads. What&#8217;s even sweeter is that billing is on a second by second basis and deals in Aurora capacity units and the minimum is one minute for each newly added resource.</p> </div></div> Fahd Mirza https://blog.pythian.com/?p=102875 Wed Dec 06 2017 10:22:47 GMT-0500 (EST) UKOUG and Microsoft Marathon Webinar http://dbakevlar.com/2017/12/ukoug-microsoft-marathon-webinar/ <div class="pf-content"><p><span style="font-size: 12pt;">I&#8217;m here for the last day of <a href="http://tech17.ukoug.org/"><span style="color: #0000ff;">UKOUG Tech17</span></a> and it&#8217;s been an awesome event.  This is my first time to this event while in Birmingham and although quite the party town on the weekends, its a great city to have an event like UKOUG&#8217;s trio of events during the week.</span></p> <p><span style="font-size: 12pt;"><a href="http://dbakevlar.com/2017/12/ukoug-microsoft-marathon-webinar/save_beer/" rel="attachment wp-att-7505"><img class="alignnone size-full wp-image-7505" src="https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/12/save_beer.gif?resize=500%2C213" alt="" data-recalc-dims="1" /></a></span></p> <p><span style="font-size: 12pt;">I was welcomed to great turnouts to both my presentations and then enjoyed numerous sessions by other&#8217;s, such as <span style="color: #0000ff;"><a style="color: #0000ff;" href="https://twitter.com/richardfootecon?lang=en">Richard Foote</a>,<a style="color: #0000ff;" href="https://twitter.com/JLOracle?lang=en"> Jonathan Lewi</a>s, <a style="color: #0000ff;" href="https://twitter.com/RogerMacNicol?lang=en">Roger MacNicol</a></span> and others that one might not get a chance to see in at most US Oracle User Group events.</span></p> <p><span style="font-size: 12pt;">My biggest challenge in my second session was that I was in the Hall 1, (aka the big arse room) where I couldn&#8217;t see anything past the main lights, so decided quickly to skip any questions during the session and asked folks to come see me afterwards.  Even with microphones half way up the theater, I was picturing the comedy of me trying to figure out where the question was coming from and what was being said beyond the echo in the huge chamber.</span></p> <p><span style="font-size: 12pt;"><a href="http://dbakevlar.com/2017/12/ukoug-microsoft-marathon-webinar/kgorman_ukoug1/" rel="attachment wp-att-7507"><img class="alignnone size-full wp-image-7507" src="https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/12/kgorman_ukoug1.jpg?resize=840%2C630" alt="" srcset="https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/12/kgorman_ukoug1.jpg?w=900 900w, https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/12/kgorman_ukoug1.jpg?resize=300%2C225 300w, https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/12/kgorman_ukoug1.jpg?resize=768%2C576 768w" sizes="(max-width: 840px) 100vw, 840px" data-recalc-dims="1" /></a></span></p> <p><span style="font-size: 12pt;">There were numerous social get-togethers around the conference, but with so many November events and travel, I found that I was a little less social than I would be normally.  I still had plenty of opportunity to catch up with folks and it was lovely to see everyone.</span></p> <p><span style="font-size: 12pt;">This is the last event for the year with travel for me, so next week I&#8217;m home and have <a href="http://www.pass.org/marathon/2017/december/Schedule.aspx"><span style="color: #0000ff;">Microsoft&#8217;s Pass Marathon virtual event</span></a>, where I and a number of other experts will be sharing our knowledge on Linux for the SQL Server DBA.</span></p> <p><span style="font-size: 12pt;"><a href="http://dbakevlar.com/2017/12/ukoug-microsoft-marathon-webinar/pass_marathon/" rel="attachment wp-att-7508"><img class="alignnone size-full wp-image-7508" src="https://i2.wp.com/dbakevlar.com/wp-content/uploads/2017/12/pass_marathon.png?resize=250%2C75" alt="" data-recalc-dims="1" /></a></span></p> <p><span style="font-size: 12pt;">If you haven&#8217;t had the chance to work with SQL Server 2017 on Linux, it&#8217;s a simple process to install Docker, (who doesn&#8217;t have Docker on their laptop these days??) and add the<span style="color: #0000ff;"><a style="color: #0000ff;" href="https://hub.docker.com/r/microsoft/mssql-server-linux/"> image for SQL Server 2017</a></span>, so seriously consider the option to get familiar with the newest version of SQL Server with the new OS.</span></p> <p>&nbsp;</p> </div><br><br><img src="https://i2.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/ico-tag.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"> Tags:&nbsp;&nbsp;<a href="http://dbakevlar.com/tag/linux/" rel="tag">Linux</a>, <a href="http://dbakevlar.com/tag/pass-marathon/" rel="tag">PASS Marathon</a>, <a href="http://dbakevlar.com/tag/sql-server-2017/" rel="tag">SQL Server 2017</a>, <a href="http://dbakevlar.com/tag/ukoug/" rel="tag">UKOUG</a>, <a href="http://dbakevlar.com/tag/webinar/" rel="tag">Webinar</a><br><br><div style="width:100%"><table align="left" width="100%" cellspacing="0" cellpadding="0" bgcolor="#f1f1f1" border="0px;"> <tbody> <tr bgcolor="#ffffff"><td align="center" width="17%" valign="top"> <span class="sb_title">Del.icio.us</span><br> <a href="http://del.icio.us/post?url=http://dbakevlar.com/2017/12/ukoug-microsoft-marathon-webinar/&title=UKOUG and Microsoft Marathon Webinar"> <img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/delicious.gif?w=840" border="0" align="absmiddle" data-recalc-dims="1"> </a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">Facebook</span><br> <a href="http://www.facebook.com/share.php?u=http://dbakevlar.com/2017/12/ukoug-microsoft-marathon-webinar/"><img src="https://i0.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/facebook_icon.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"></a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">TweetThis</span><br> <a href="http://twitthis.com/twit?url=http://dbakevlar.com/2017/12/ukoug-microsoft-marathon-webinar/&title=UKOUG and Microsoft Marathon Webinar"><img src="https://i2.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tweet.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"></a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">Digg</span><br> <a href="http://digg.com/submit?phase=2&url=http://dbakevlar.com/2017/12/ukoug-microsoft-marathon-webinar/&title=UKOUG and Microsoft Marathon Webinar"><img src="https://i0.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/digg.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"></a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">StumbleUpon</span><br> <a href="http://www.stumbleupon.com/submit?url=http://dbakevlar.com/2017/12/ukoug-microsoft-marathon-webinar/&title=UKOUG and Microsoft Marathon Webinar"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/stumble.gif?w=840" border="0" align="absmiddle" data-recalc-dims="1"></a> </td></tr> </tbody></table></div><br><div style="clear:both"></div><div style="background:#EEEEEE; padding:0px 0px 0px 15px; margin:10px 0px 0px 0px;"><div style="padding:5px 0px 5px 0px;"><b>Comments:</b>&nbsp;&nbsp;<a href="http://dbakevlar.com/2017/12/ukoug-microsoft-marathon-webinar/#respond">0 (Zero), Be the first to leave a reply!</a></div><br><div style="clear:both"></div><div style="padding:13px 0px 5px 0px;"><span style="border-bottom:1px dashed #003399;padding-bottom:4px;"><strong>You might be interested in this:</strong></span>&nbsp;&nbsp;<br><ul style="margin:0; padding:0; padding-top:10px; padding-bottom:5px;"><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2013/11/12c-pdbs-delphix-like-chocolate-peanut-butter/" >12c PDBs & Delphix: like chocolate & Peanut Butter</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2014/11/em12c-rel-4-oms-and-omr-health-part-ii/" >EM12c, Rel. 4, OMS and OMR Health, Part II</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2015/03/one-year-with-oracle/" >One Year With Oracle</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2014/12/em12c-management-agent-outofmemoryerror-and-ulimits/" >EM12c Management Agent, OutOfMemoryError and Ulimits</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2015/04/dbakevlar-at-collaborate-2015/" >DBAKevlar at Collaborate 2015</a></li></ul></div></div><hr style="color:#EBEBEB" /><small>Copyright © <a href="http://dbakevlar.com">DBA Kevlar</a> [<a href="http://dbakevlar.com/2017/12/ukoug-microsoft-marathon-webinar/">UKOUG and Microsoft Marathon Webinar</a>], All Right Reserved. 2017.</small><br><p>The post <a rel="nofollow" href="http://dbakevlar.com/2017/12/ukoug-microsoft-marathon-webinar/">UKOUG and Microsoft Marathon Webinar</a> appeared first on <a rel="nofollow" href="http://dbakevlar.com">DBA Kevlar</a>.</p> dbakevlar http://dbakevlar.com/?p=7504 Wed Dec 06 2017 09:22:46 GMT-0500 (EST) RMAN-20002: Target Database Already Registered In Recovery Catalog: Target Database Already Registered In Recovery Catalog http://oracle-help.com/articles/rman-20002-target-database-already-registered-recovery-catalog-target-database-already-registered-recovery-catalog/ <p>We are going to learn about &#8220;<strong> RMAN-20002&#8243; </strong>in this post. We explain this issue and solution of it . To make RMAN store the metadata information, you need to register the database in the recovery catalog. Before the database is registered, the metadata is written to the control file of the target database. So in order to register the database, you need to connect to both the target and catalog database. For this, you need to connect to the catalog database via Oracle Net by configuring both tnsnames.ora and listener.ora files.</p> <p><a href="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/4.png"><img data-attachment-id="2610" data-permalink="http://oracle-help.com/articles/rman-20002-target-database-already-registered-recovery-catalog-target-database-already-registered-recovery-catalog/attachment/4-29/" data-orig-file="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/4.png?fit=300%2C168" data-orig-size="300,168" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="4" data-image-description="" data-medium-file="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/4.png?fit=300%2C168" data-large-file="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/4.png?fit=300%2C168" class="alignnone wp-image-2610" src="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/4.png?resize=389%2C218" alt="" width="389" height="218" srcset="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/4.png?w=300 300w, https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/4.png?resize=60%2C34 60w, https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/4.png?resize=150%2C84 150w" sizes="(max-width: 389px) 100vw, 389px" data-recalc-dims="1" /></a></p> <p>&nbsp;</p> <p><strong>PROBLEM:</strong></p> <p>While registering database to rman catalog, getting below error.</p> <p>RMAN&gt; register database;</p> <p>RMAN-00571: ================================================<br /> RMAN-00569: ========== ERROR MESSAGE STACK FOLLOWS ==========<br /> RMAN-00571: ================================================<br /> RMAN-03009: failure of register command on default channel at 12/08/2010 13:03:21<br /> <strong><em>RMAN-20002: target database already registered in recovery catalog</em></strong></p> <p>&nbsp;</p> <p><strong>SOLUTION:</strong></p> <p><strong>1. Check </strong>dbid<strong> of the database.</strong></p> <p>SQL&gt; select dbid from v$database;</p> <p>DBID<br /> &#8212;&#8212;&#8212;-<br /> 1917723569</p> <p><strong>2. Connect to catalog and check whether </strong>same db<strong> is present or not</strong></p> <p>sqlplus catalog_user/rman@catdb</p> <p>SQL*Plus: Release 12.1.0.2.0 Production on Sun Feb 12 13:50:57 2017</p> <p>Copyright (c) 1982, 2014, Oracle. All rights reserved.</p> <p>Connected to:<br /> Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 &#8211; 64bit Production<br /> With the Partitioning, OLAP, Data Mining and Real Application Testing options</p> <p>SQL&gt; select DB_KEY,DBID,NAME from rc_database where dbid=1917723569;</p> <p>DB_KEY DBID NAME<br /> &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;- &#8212;&#8212;&#8211;<br /> 29531 1917723569 CONTEST</p> <p>&lt;/span&gt;</p> <p>We can see another database CONTEST is already present in the catalog with the same dbid.<br /> so adding new database to catalog with same DBid is failing.</p> <p>So fix it, we have two options now.<br /> <strong>OPTION – 1: ( UNREGISTER EXISTING DBID ENTRY)</strong><br /> If the database, for which same dbid exists in the catalog repository, it not in use , then we can remove the entry and try to register.</p> <p>sqlplus catalog_user/rman@catdb</p> <p>SQL&gt; select DB_KEY,DBID,NAME from rc_database where dbid=1917723569;</p> <p>DB_KEY DBID NAME<br /> &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;- &#8212;&#8212;&#8211;<br /> 29531 1917723569 CONTEST</p> <p>SQL&gt; EXECUTE dbms_rcvcat.unregisterdatabase(29531, 1917723569);</p> <p>RMAN&gt; register database;</p> <p>database registered in recovery catalog<br /> starting full resync of recovery catalog<br /> full resync complete</p> <p><strong>OPTION 2 (CHANGE THE DBID of the database:)</strong></p> <p>Use nid utility to change the dbid and try to register.</p> <p><strong>START DATABASE IN MOUNT STAGE</strong></p> <p>SQL&gt; shutdown immediate;<br /> Database closed.<br /> Database dismounted.<br /> ORACLE instance shut down.<br /> SQL&gt; startup mount<br /> ORACLE instance started.</p> <p>Total System Global Area 1.1107E+10 bytes<br /> Fixed Size 7644464 bytes<br /> Variable Size 9294584528 bytes<br /> Database Buffers 1711276032 bytes<br /> Redo Buffers 93011968 bytes<br /> Database mounted.</p> <p><strong>NID TOOL TO CHANGE DBID:</strong></p> <p>nid target=sys/oracle@DBATEST</p> <p>DBNEWID: Release 12.1.0.2.0 &#8211; Production on Sun Feb 12 14:03:42 2017</p> <p>Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved.</p> <p>Connected to database DBATEST (DBID=1917723569)</p> <p>Connected to server version 12.1.0</p> <p>Control Files in database:<br /> /archive/NONPLUG/NONCDB/control01.ctl<br /> /archive/NONPLUG/NONCDB/control02.ctl</p> <p>Change database ID of database NONCDB? (Y/[N]) =&gt; Y</p> <p>Proceeding with operation<br /> Changing database ID from 1742085976 to 1753637695<br /> Control File /archive/NONPLUG/NONCDB/control01.ctl &#8211; modified<br /> Control File /archive/NONPLUG/NONCDB/control02.ctl &#8211; modified<br /> Datafile /archive/NONPLUG/NONCDB/system01.db &#8211; dbid changed<br /> Datafile /archive/NONPLUG/NONCDB/sysaux01.db &#8211; dbid changed<br /> Datafile /archive/NONPLUG/NONCDB/NONCDB/datafile/o1_mf_prim_d9v1bqq3_.db &#8211; dbid changed<br /> Datafile /archive/NONPLUG/NONCDB/PLUG/prim01.db &#8211; dbid changed<br /> Datafile /archive/NONPLUG/NONCDB/NONCDB/datafile/o1_mf_prim_d9v1fq7k_.db &#8211; dbid changed<br /> Datafile /archive/NONPLUG/NONCDB/PLUG/undo_new01.db &#8211; dbid changed<br /> Control File /archive/NONPLUG/NONCDB/control01.ctl &#8211; dbid changed<br /> Control File /archive/NONPLUG/NONCDB/control02.ctl &#8211; dbid changed<br /> Instance shut down</p> <p>The database ID for database DBATEST changed to 1753637695.<br /> All previous backups and archived redo logs for this database are unusable.<br /> The database is not aware of previous backups and archived logs in Recovery Area.<br /> The database has been shut down, the open database with RESETLOGS option.<br /> Successfully changed database ID.<br /> DBNEWID &#8211; Completed successfully.</p> <p><strong>OPEN DATABASE IN RESETLOGS:</strong></p> <p>SQL&gt; startup mount<br /> ORACLE instance started.</p> <p>Total System Global Area 1.1107E+10 bytes<br /> Fixed Size 7644464 bytes<br /> Variable Size 9294584528 bytes<br /> Database Buffers 1711276032 bytes<br /> Redo Buffers 93011968 bytes<br /> Database mounted.<br /> SQL&gt; alter database open resetlogs;</p> <p>Database altered.</p> <p>Now try to register:</p> <p>RMAN&gt; register database;</p> <p>database registered in recovery catalog<br /> starting full resync of recovery catalog<br /> full resync complete</p> <p>&nbsp;</p> <p>The post <a rel="nofollow" href="http://oracle-help.com/articles/rman-20002-target-database-already-registered-recovery-catalog-target-database-already-registered-recovery-catalog/">RMAN-20002: Target Database Already Registered In Recovery Catalog: Target Database Already Registered In Recovery Catalog</a> appeared first on <a rel="nofollow" href="http://oracle-help.com">ORACLE-HELP</a>.</p> Anuradha Mudgal http://oracle-help.com/?p=2608 Wed Dec 06 2017 02:25:24 GMT-0500 (EST) Database Server Components of Exadata X7-2 http://oracle-help.com/oracle-12c/oracle-12cr2/database-server-components-exadata-x7-2/ <div class="sect3"> <h3 id="DBMSO-GUID-BA886B8A-78BD-4624-B7C6-041172932C8C" class="sect3">Database Server Components of Oracle Exadata Database Machine X7-2</h3> <div> <p>Oracle Exadata Database Machine X7-2 database servers include the following components:</p> <ul> <li>2 x 24-core Intel Xeon Platinum 8160 Processors (2.10GHz)</li> <li>384GB RAM 1.5T (24 x 64GB) with memory expansion kit</li> <li>4 x 600 GB 10K RPM SAS disks, hot swappable, expandable to 8x</li> <li>Disk controller HBA with 2 GB cache (no batteries)</li> <li>2 x InfiniBand 4X QDR (40 Gbps) ports (PCIe 3.0), both ports active</li> <li>2 x 1 GbE/10 GbE Base-T Ethernet ports or 2 x 10GbE/25GbE Ethernet SFP28 Ports</li> <li>2 x 10GbE/25GbE Ethernet SFP28 Ports</li> <li>1 x 1GbE/10GbE  Base-T ethernet port for Integrated Lights Out Manager (ILOM) for remote management</li> <li>Oracle Linux 6.9 with Unbreakable Enterprise Kernel 4 or Oracle VM Server 3.4.4</li> </ul> </div> </div> <div class="sect3"> <h3 id="DBMSO-GUID-51F703B7-8B5B-4C31-A41F-76F758E1CC26" class="sect3"><span class="enumeration_section">1.2.2</span> Database Server Components of Oracle Exadata Database Machine X7-8</h3> <div> <p>Oracle Exadata Database Machine X7-8 database servers include the following components:</p> <ul> <li>8x 24-core Intel(R) Xeon(R) Platinum 8168 Processors (2.70GHz)</li> <li>3TB (48 x 64 GB) RAM, expandable to 6 TB (96 x 64 GB) with memory expansion kit</li> <li>8 x InfiniBand 4X QDR (40 Gbps) ports (PCIe 3.0) &#8211; all ports active</li> <li>8x 1/10 GbE Base-T Ethernet ports (8 embedded ports based on the Intel 722 1/10GbE Controller)</li> <li>8x 10GbE/25GbE Ethernet SFP28 Ports (4 Dual-port 10/25 GbE PCIe 3.0 network card based on the Broadcom BCM57414 10Gb/25Gb Ethernet Controller technology)</li> <li>1 Ethernet port for Integrated Lights Out Manager (ILOM) for remote management</li> <li>Redundant hot swappable power supplies and fans</li> <li>Oracle Linux 6.9 with Unbreakable Enterprise Kernel 4</li> </ul> <h3 id="DBMSO-GUID-83C5C1D6-FE1C-4BFA-B21A-51ECA4CDEF6D" class="sect3"> Components of Oracle Exadata Storage Expansion Rack X7-2</h3> <div> <p>The Oracle Exadata Storaxpansion Rack X7-2 includes the following components:</p> <ul> <li>4 Exadata Storage Server X7-2 Servers with 6.4 TB Flash Accelerator F640 PCIe cards or 10 TB 7.2 K RPM High Capacity SAS disks</li> <li>3 Sun Datacenter InfiniBand Switch 36</li> <li>2 redundant 15 kVA PDU (single phase or three phase, high voltage or low voltage)</li> <li>1x 48-port Cisco Nexus 93108-1G Ethernet switch</li> <li>102.4 TB of raw flash capacity for high capacity storage servers only</li> <li>480 TB of raw capacity disks for high capacity storage servers only</li> </ul> <p>(In the list above, for raw capacity, 1 GB = 1 billion bytes. Capacity is calculated using normal space terminology of 1 TB = 1024 * 1024 * 1024 * 1024 bytes. Actual formatted capacity is less.)</p> <div class="section"> <p class="subhead3">Spares Kit Components for Oracle Exadata Storage Expansion Rack X7-2</p> <p>The spares kit for Oracle Exadata Storage Expansion Rack X7-2 contains the following:</p> <ul> <li>1x 10 TB 7.2K RPM High Capacity SAS disk</li> <li>1x Flash Accelerator F640 PCIe card</li> </ul> </div> </div> </div> </div> <div class="sect3"></div> <p>The post <a rel="nofollow" href="http://oracle-help.com/oracle-12c/oracle-12cr2/database-server-components-exadata-x7-2/">Database Server Components of Exadata X7-2</a> appeared first on <a rel="nofollow" href="http://oracle-help.com">ORACLE-HELP</a>.</p> Skant Gupta http://oracle-help.com/?p=2605 Tue Dec 05 2017 17:51:36 GMT-0500 (EST) Oracle Forms & Reports 12.2.1.3.0 with FADS in Docker http://dirknachbar.blogspot.com/2017/12/oracle-forms-reports-122130-with-fads.html <div class="separator" style="clear: both; text-align: center;"><a href="https://3.bp.blogspot.com/-cjyaBuG_CPo/Wibu8CKjlrI/AAAAAAAAAxw/y7VPAT0-r08xmruTRJboLPWmgH3qrhGfQCLcBGAs/s1600/Forms_Logo.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="240" data-original-width="240" height="200" src="https://3.bp.blogspot.com/-cjyaBuG_CPo/Wibu8CKjlrI/AAAAAAAAAxw/y7VPAT0-r08xmruTRJboLPWmgH3qrhGfQCLcBGAs/s200/Forms_Logo.png" width="200" /></a></div>The next release of my Oracle Forms &amp; Reports 12.2.1.3.0 Docker solution is now containing an option on running the Oracle Forms Application Deployment Services (FADS) within the Docker container.<br /><br />The source code can be found under my personal GitHub Repository:&nbsp;<a href="https://github.com/DirkNachbar/Docker" target="_blank">https://github.com/DirkNachbar/Docker</a><br /><br />Feel free to get a copy and enjoy playing around with Oracle Forms Application Deployment Services (FADS) under a Docker container.<br /><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://4.bp.blogspot.com/-3Tpverfr7tU/WibvSXrIFDI/AAAAAAAAAx0/dQ7AqU5Z2C8EKunWJHIX54yPYAiTILpYwCLcBGAs/s1600/docker_logo.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="160" data-original-width="594" height="85" src="https://4.bp.blogspot.com/-3Tpverfr7tU/WibvSXrIFDI/AAAAAAAAAx0/dQ7AqU5Z2C8EKunWJHIX54yPYAiTILpYwCLcBGAs/s320/docker_logo.png" width="320" /></a></div><br /><br /><br /><br /> Dirk Nachbar tag:blogger.com,1999:blog-4344684978957885806.post-5472522674527819223 Tue Dec 05 2017 14:11:00 GMT-0500 (EST) JDev/ADF sample - JET Composite Component in ADF Faces UI - Deep Integration http://andrejusb-samples.blogspot.com/2017/12/jdevadf-sample-jet-composite-component.html <div dir="ltr" style="text-align: left;" trbidi="on"><ul><li><a href="http://andrejusb.blogspot.de/2017/12/jet-composite-component-in-adf-faces-ui.html" target="_blank">JET Composite Component in ADF Faces UI - Deep Integration</a>. Finding ways of further JET integration into ADF Faces is important. Next step would be to implement editable grid JET based component and integrate it into ADF to improve fast user data entry experience..</li></ul><ol>Download - <a href="https://github.com/abaranovskis-redsamurai/jetadfcomposite" target="_blank">jetadfcomposite</a></ol></div> Andrejus Baranovskis tag:blogger.com,1999:blog-4301764760924839143.post-3843620101946232646 Tue Dec 05 2017 13:54:00 GMT-0500 (EST) MySQL Crashes on DDL statement: A Lesson on purge threads https://blog.pythian.com/mysql-crashes-ddl-statement-lesson-purge-threads/ <div class="l-submain"><div class="l-submain-h g-html i-cf"><p>Recently there have been several issues reported to me about DDL activity causing MySQL crash scenarios. In one case it stemmed from dropping multiple databases, one after the other in rapid succession. But in the case that I was recently dealing with directly, where we were upgrading to MySQL 5.7, it was the result of mysql_upgrade running an ALTER TABLE FORCE on a 2.2Tb table in order to convert it to the new microsecond precision supporting data format.</p> <p>The issue occurred after the intermediate table had been completely filled with all the necessary data and right when MySQL would swap out the existing table for the intermediate. After a period of time MySQL crashed and the following InnoDB monitor output was found in the error log.</p> <p>&nbsp;</p> <hr /> <p><code>2017-11-19T00:22:44.070363Z 7 [ERROR] <strong>InnoDB: The age of the last checkpoint is 379157140, which exceeds the log group capacity 377483674</strong>.<br /> InnoDB: ###### Diagnostic info printed to the standard error stream<br /> 2017-11-19T00:22:57.447115Z 0 [Warning] InnoDB: A long semaphore wait:<br /> --Thread 140690671367936 has waited at srv0srv.cc line 1982 for 921.00 seconds the semaphore:<br /> X-lock on RW-latch at 0x750a368 created in file <strong>dict0dict.cc</strong> line 1184<br /> a writer (thread id 140690645923584) has reserved it in mode exclusive<br /> number of readers 0, waiters flag 1, lock_word: 0<br /> Last time read locked in file <strong>row0purge.cc</strong> line 862<br /> Last time write locked in file /build/mysql-5.7-RrA758/mysql-5.7-5.7.20/storage/innobase/row/row0mysql.cc line 4305<br /> 2017-11-19T00:22:57.447181Z 0 [Warning] InnoDB: A long semaphore wait:<br /> --Thread 140690535433984 has waited at buf0flu.cc line 1209 for 660.00 seconds the semaphore:<br /> SX-lock on RW-latch at 0x7ff5d4a5eaa0 created in file buf0buf.cc line 1460<br /> a writer (thread id 140690645923584) has reserved it in mode exclusive<br /> number of readers 0, waiters flag 1, lock_word: 0<br /> Last time read locked in file row0sel.cc line 1335<br /> Last time write locked in file /build/mysql-5.7-RrA758/mysql-5.7-5.7.20/storage/innobase/row/row0upd.cc line 2856<br /> 2017-11-19T00:22:57.447210Z 0 [Warning] InnoDB: A long semaphore wait:<br /> --Thread 140690654582528 has waited at row0purge.cc line 862 for 923.00 seconds the semaphore:<br /> S-lock on RW-latch at 0x750a368 created in file dict0dict.cc line 1184<br /> a writer (thread id 140690645923584) has reserved it in mode exclusive<br /> number of readers 0, waiters flag 1, lock_word: 0<br /> Last time read locked in file row0purge.cc line 862<br /> Last time write locked in file /build/mysql-5.7-RrA758/mysql-5.7-5.7.20/storage/innobase/row/row0mysql.cc line 4305<br /> InnoDB: ###### Starts InnoDB Monitor for 30 secs to print diagnostic info:<br /> InnoDB: Pending preads 0, pwrites 0<br /> .....<br /> ----------------------------<br /> END OF INNODB MONITOR OUTPUT<br /> ============================<br /> InnoDB: ###### Diagnostic info printed to the standard error stream<br /> 2017-11-19T00:23:27.448900Z 0 [ERROR] [FATAL] InnoDB: <strong>Semaphore wait has lasted &gt; 600 seconds. We intentionally crash the server because it appears to 10364 be hung</strong>.<br /> 2017-11-18 19:23:27 0x7ff51a7d9700 InnoDB: Assertion failure in thread 140690688153344 in file ut0ut.cc line 916</code></p> <hr /> <p>&nbsp;</p> <p>The key thing to note here is that there was a purge event (row0purge.cc) on the data dictionary (dict0dict.cc) that formed a semaphore, which <a href="https://github.com/mysql/mysql-server/blob/mysql-5.7.20/storage/innobase/srv/srv0srv.cc#L81">lasted longer than 600 seconds</a>. In the event of a semaphore wait lasting longer than 600 seconds, MySQL will intentionally crash itself.</p> <p>There were a few other things that we noticed in the output, specifically that there was a warning that the last checkpoint age was beyond the threshold of the redo log files, indicating the redo log accumulation was exceeding InnoDB’s ability to flush changes to persistent space and this was definitely causing a bottleneck.</p> <p>In order to get past this issue, we increased the redo log space to 8G, as some testing indicated that this is how much data would be written to the redo log during the ALTER TABLE FORCE process on a table that was 2.2Tb in size. The amount of memory and the buffer pool size were also increased in order to speed up the ALTER TABLE FORCE process.</p> <p>One other key change, and the change that we believe resolved the issue was setting the variable innodb_purge_threads from the 5.7 default value of 4 to 1. If you check the MySQL reference guide you’ll see that there is a note that states to <a href="https://dev.mysql.com/doc/refman/5.7/en/innodb-improved-purge-scheduling.html">keep this setting low so that the threads do not contend with each other for access to the busy tables</a>. With a little googling you can also find bugs reports like <a href="https://bugs.mysql.com/bug.php?id=80919">this one</a> where similar issues where setting this variable to 1 was suggested.</p> <h2>Conclusion</h2> <p>The takeaway from this is simply to suggest that if you are running MySQL 5.7, you will want to consider changing the variable innodb_purge_threads from it’s <a href="https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_purge_threads">new default value of 4</a>, to the <a href="https://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html#sysvar_innodb_purge_threads">5.6 default value of 1</a> to avoid purge thread contention. That is, unless you have a strong need for multiple purge threads running. This also begs the question of why the default was changed from 4 to 1 in 5.7 as it could be considered as an unsafe value.</p> </div></div> Peter Sylvester https://blog.pythian.com/?p=102858 Tue Dec 05 2017 13:52:17 GMT-0500 (EST) How Artificial Intelligence and Machine Learning are Changing Data Intelligence https://blog.pythian.com/artificial-intelligence-machine-learning-changing-data-intelligence/ <div class="l-submain"><div class="l-submain-h g-html i-cf"><p><span style="font-weight: 400;">Flagged as </span><a href="https://venturebeat.com/2017/02/08/deloitte-predicts-machine-intelligence-not-mere-ai-as-a-big-trend-for-2017/"><span style="font-weight: 400;">a mega trend for 2017 and beyond</span></a><span style="font-weight: 400;">, Artificial Intelligence (AI) is a term we often hear, but what is it, really? </span></p> <p><a href="http://www.gartner.com/it-glossary/artificial-intelligence/"><span style="font-weight: 400;">Gartner&#8217;s </span></a><span style="font-weight: 400;">definition is this: </span><i><span style="font-weight: 400;">Artificial Intelligence </span></i><i><span style="font-weight: 400;">is technology that appears to emulate human performance typically by learning, coming to its own conclusions, appearing to understand complex content, engaging in natural dialogs with people, enhancing human cognitive performance (also known as cognitive computing) or replacing people on execution of non-routine tasks. </span></i></p> <p><span style="font-weight: 400;">There are many ways AI is being used in our everyday lives. Siri, Alexa, Netflix, Spotify, and even Facebook are all examples of AI in action. However, AI is not limited to the realm of personal entertainment, it&#8217;s also being used in the business world to analyze millions of pieces of data every minute of every  day</span><span style="font-weight: 400;">—</span><span style="font-weight: 400;">in ways you may not realize. For example, AI plays a big part in data mining.</span></p> <p><b>Strong AI VS. Weak AI</b></p> <p><span style="font-weight: 400;">There are two types of AI: strong AI and weak AI, according to </span><span style="font-weight: 400;">Claudia Perlich, </span><span style="font-weight: 400;">Chief Scientist at New York&#8217;s Dstillery, an advertising technology company that helps marketers target prospects through scientific methods, and a speaker at Pythian’s 2017 Love Your Data conference in New York. </span></p> <p><span style="font-weight: 400;">Strong AI refers to machines that can think for themselves. While there is still a long road to get to the point where we can rely on this type of intelligence, for now, we must rely on weak AI</span><span style="font-weight: 400;">—</span><span style="font-weight: 400;">machines that can do intelligent things. Though it&#8217;s called weak, it&#8217;s actually quite powerful.</span></p> <p><span style="font-weight: 400;">&#8220;The same way a three-year-old learns that when you touch a hot oven, it burns, they eventually figure out that this is not a smart move and they will get hurt if they do it again. This is the same way we now train machines,&#8221; says Perlich.</span></p> <p><span style="font-weight: 400;">For example, if you are an insurance company, you can see historical data on who signed up for insurance. You may have a customer relationship management (CRM) system that holds data about your consumers. You can analyze this data in a spreadsheet, make pivot tables, pie charts, and line graphs. Or you can input the data into a machine and tell the machine to figure the data out and give you the info you need, without having the same margin of error you&#8217;d have doing it manually.</span></p> <p><span style="font-weight: 400;">This is what is referred to as weak AI. Not so weak, though, right?</span></p> <p><b>AI and Machine Learning</b></p> <p><span style="font-weight: 400;">When we talk about weak AI, we are really talking about machine learning. Machine learning is a form of computational pattern recognition, in which algorithms learn how to recognize patterns without being explicitly told what the patterns are.  Machine learning shows up in a number of advanced applications, including self-driving cars and medical applications such as image-based diagnostics.</span></p> <p><span style="font-weight: 400;">&#8220;There are millions of different tools out there that now all fall under the umbrella of machine learning. This kind of technology is embedded into our everyday life. If it really works well, you don&#8217;t even know it&#8217;s there. You only see it when it actually fails and makes mistakes,&#8221; says Perlich.</span></p> <p><span style="font-weight: 400;">Think of apps on your phone that give recommendations, such as those that can recommend a dining spot nearby you may enjoy or your email service flagging a message that may be spam.</span></p> <p><span style="font-weight: 400;">All of these apps utilize machine learning when making their recommendations/predictions to you. In a business setting, it works the same way.</span></p> <p><b>Using AI to make business predictions</b></p> <p><span style="font-weight: 400;">A big use for AI in business is making predictions and having stakeholders decide how to best use these predictions to make solid business decisions.</span></p> <p><span style="font-weight: 400;">&#8220;Applications can range from oil companies analyzing the underground structure with machine learning to identify optimal drill placements. Machines are now assisting medical personnel in identifying breast cancer based on MRI machines and the images they are taking. The TSA is also trying to figure out how to get you to your airplane a lot faster how to identify possible threats,&#8221; Perlich noted.</span></p> <p><span style="font-weight: 400;">The many uses for AI in business are endless, however, Perlich cautioned that businesses must be vigilant when entering the AI world.</span></p> <p><span style="font-weight: 400;">&#8220;These methods can go off the road and you want to make sure if you engage with AI, that you have data scientists or an expert involved. This is not for the faint of heart to just try out because you have a new tool to play with,&#8221; she said.</span></p> <p><span style="font-weight: 400;">AI is not a trend to be ignored, its push is gaining momentum every day. According to aitrends.com, </span><a href="https://aitrends.com/business/abi-research-forecasts-almost-one-million-businesses-worldwide-will-adopt-ai-technologies-2022/"><span style="font-weight: 400;">nearly one million businesses will adopt AI by 2022</span></a><span style="font-weight: 400;">. </span></p> <p><span style="font-weight: 400;">Claudia Perlich was a speaker at Pythian&#8217;s recent Love Your Data Conference. </span><span style="font-weight: 400;">Click for more key </span><a href="https://www.pythian.com/blog/tag/love-your-data/"><span style="font-weight: 400;">highlights of the 2017 Love Your Data Conference</span></a><span style="font-weight: 400;">.</span></p> <p><img class="alignnone wp-image-102912" src="https://blog.pythian.com/wp-content/uploads/Claudia-Perlich-Blog-1.png" alt="" width="600" height="333" srcset="https://blog.pythian.com/wp-content/uploads/Claudia-Perlich-Blog-1.png 810w, https://blog.pythian.com/wp-content/uploads/Claudia-Perlich-Blog-1-465x258.png 465w, https://blog.pythian.com/wp-content/uploads/Claudia-Perlich-Blog-1-350x194.png 350w" sizes="(max-width: 600px) 100vw, 600px" /></p> </div></div> Beth Johnson https://blog.pythian.com/?p=102909 Tue Dec 05 2017 13:05:44 GMT-0500 (EST) Oracle database upgrade on RDS AWS and SPM baselines https://blog.pythian.com/oracle-database-upgrade-rds-aws-spm-baselines/ <div class="l-submain"><div class="l-submain-h g-html i-cf"><p>A couple of days ago I saw a question posted online asking about how AWS upgrades an RDS Oracle database and what happens with SPM baselines. To be more precise whether the existing Oracle SPM baselines would survive the upgrade or not. There were some debates about that, and for me, it looked interesting enough to take a look under the hood even though I could guess the answer. I want to clarify that I do not work for AWS, have no access to any internal information and use the tools and method that are accessible to everyone.</p> <p>I created an AWS RDS instance with Oracle 11.2.0.4 v.6 using default settings:</p> <p><img class="alignnone size-full wp-image-102892" src="https://blog.pythian.com/wp-content/uploads/01_init11ginstance.png" alt="" width="1052" height="360" srcset="https://blog.pythian.com/wp-content/uploads/01_init11ginstance.png 1052w, https://blog.pythian.com/wp-content/uploads/01_init11ginstance-465x159.png 465w, https://blog.pythian.com/wp-content/uploads/01_init11ginstance-350x120.png 350w" sizes="(max-width: 1052px) 100vw, 1052px" /></p> <p>And parameters group:<br /> <img class="alignnone size-full wp-image-102893" src="https://blog.pythian.com/wp-content/uploads/02_init11g_options.png" alt="" width="1042" height="528" srcset="https://blog.pythian.com/wp-content/uploads/02_init11g_options.png 1042w, https://blog.pythian.com/wp-content/uploads/02_init11g_options-465x236.png 465w, https://blog.pythian.com/wp-content/uploads/02_init11g_options-350x177.png 350w" sizes="(max-width: 1042px) 100vw, 1042px" /></p> <p>To verify the baseline behavior I have created a sample schema SCOTT with a table TABLE_X for tests. The created baseline is using full table scan for the query.</p> <pre lang="oracle" escaped="true">Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, Oracle Label Security, OLAP, Data Mining and Real Application Testing options orcl.inst01.us-east-1.rds.amazonaws.com:1521/orcl&gt; select sql_handle, plan_name, sql_text, enabled, accepted, fixed from dba_sql_plan_baselines; SQL_HANDLE PLAN_NAME SQL_TEXT ENA ACC FIX ------------------------------ ------------------------------ ---------------------------------------- --- --- --- SQL_afe447b28e378f0f SQL_PLAN_azt27qa73g3sg34c84014 select count(*) from scott.table_x where YES YES NO txt1='c' orcl.inst01.us-east-1.rds.amazonaws.com:1521/orcl&gt; select count(*) from scott.table_x where txt1='c'; COUNT(*) ------------------ 33 orcl.inst01.us-east-1.rds.amazonaws.com:1521/orcl&gt; select * from table(dbms_xplan.display_cursor()); PLAN_TABLE_OUTPUT ------------------------------------------------------------------------------------------------------------------------ SQL_ID 6w0wmda09cpam, child number 1 ------------------------------------- select count(*) from scott.table_x where txt1='c' Plan hash value: 1529419959 ------------------------------------------------------------------------------ | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | ------------------------------------------------------------------------------ | 0 | SELECT STATEMENT | | | | 3 (100)| | | 1 | SORT AGGREGATE | | 1 | 2 | | | |* 2 | TABLE ACCESS FULL| TABLE_X | 33 | 66 | 3 (0)| 00:00:01 | ------------------------------------------------------------------------------ Predicate Information (identified by operation id): --------------------------------------------------- 2 - filter("TXT1"='c') Note ----- - SQL plan baseline SQL_PLAN_azt27qa73g3sg34c84014 used for this statement </pre> <p>Without baseline the query is using an index range scan.</p> <pre lang="oracle" escaped="true">orcl.inst01.us-east-1.rds.amazonaws.com:1521/orcl&gt; alter session set optimizer_use_sql_plan_baselines=false; Session altered. orcl.inst01.us-east-1.rds.amazonaws.com:1521/orcl&gt; select count(*) from scott.table_x where txt1='c'; COUNT(*) ------------------ 33 orcl.inst01.us-east-1.rds.amazonaws.com:1521/orcl&gt; select * from table(dbms_xplan.display_cursor()); PLAN_TABLE_OUTPUT ------------------------------------------------------------------------------------------------------------------------ SQL_ID 6w0wmda09cpam, child number 0 ------------------------------------- select count(*) from scott.table_x where txt1='c' Plan hash value: 2333958128 -------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | -------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | | | 1 (100)| | | 1 | SORT AGGREGATE | | 1 | 2 | | | |* 2 | INDEX RANGE SCAN| IND_TABLE_X_TXT1 | 33 | 66 | 1 (0)| 00:00:01 | -------------------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 2 - access("TXT1"='c') </pre> <p>So far so good, we have a baseline created on our database version 11.2.0.4 and we are ready for the upgrade.</p> <p>The upgrade in AWS RDS is easy and you need only to modify instance picking up an available version for the upgrade. By default you will be offered the latest compatible version. In my case it was 12.1.0.2 v9.<br /> <img class="alignnone size-full wp-image-102894" src="https://blog.pythian.com/wp-content/uploads/03_choose_version.png" alt="" width="1538" height="732" srcset="https://blog.pythian.com/wp-content/uploads/03_choose_version.png 1538w, https://blog.pythian.com/wp-content/uploads/03_choose_version-465x221.png 465w, https://blog.pythian.com/wp-content/uploads/03_choose_version-350x167.png 350w" sizes="(max-width: 1538px) 100vw, 1538px" /></p> <p>Check option to apply the changes immediately, pressing &#8220;Continue&#8221; and &#8220;Modify instance&#8221; buttons.<br /> <img class="alignnone size-full wp-image-102895" src="https://blog.pythian.com/wp-content/uploads/04_modify_instance.png" alt="" width="1760" height="760" srcset="https://blog.pythian.com/wp-content/uploads/04_modify_instance.png 1760w, https://blog.pythian.com/wp-content/uploads/04_modify_instance-465x201.png 465w, https://blog.pythian.com/wp-content/uploads/04_modify_instance-350x151.png 350w" sizes="(max-width: 1760px) 100vw, 1760px" /><br /> Before pressing the &#8220;Modify instance&#8221; button you are going to be warned about potential risk of the upgrade.<br /> <img class="alignnone size-full wp-image-102896" src="https://blog.pythian.com/wp-content/uploads/05_warning_before_upg.png" alt="" width="1704" height="778" srcset="https://blog.pythian.com/wp-content/uploads/05_warning_before_upg.png 1704w, https://blog.pythian.com/wp-content/uploads/05_warning_before_upg-465x212.png 465w, https://blog.pythian.com/wp-content/uploads/05_warning_before_upg-350x160.png 350w" sizes="(max-width: 1704px) 100vw, 1704px" /></p> <p>After that, your instance is going to be switched to the upgrade mode until end of the upgrade process which will go through several stages.<br /> <img class="alignnone size-full wp-image-102897" src="https://blog.pythian.com/wp-content/uploads/06_upgrading_instance.png" alt="" width="1504" height="374" srcset="https://blog.pythian.com/wp-content/uploads/06_upgrading_instance.png 1504w, https://blog.pythian.com/wp-content/uploads/06_upgrading_instance-465x116.png 465w, https://blog.pythian.com/wp-content/uploads/06_upgrading_instance-350x87.png 350w" sizes="(max-width: 1504px) 100vw, 1504px" /></p> <p>Of course, we don&#8217;t have direct access to the OS and the scripts used for the upgrade but we have an AWS log for the actions and also have access to the alert log for the database. That information is going to be sufficient enough to give us a high overview of the process.</p> <p>The first step is to take backup of your database before the upgrade. The name for backup will be something like &#8220;rds:preupgrade-orcl-11-2-0-4-v6-to-12-1-0-2-v9-&#8230;&#8221;. It has the source and target versions along with the instance name and a clear tag &#8220;preupgrade&#8221;. The instance will be shut down and started up a couple of times.<br /> <img class="alignnone size-full wp-image-102898" src="https://blog.pythian.com/wp-content/uploads/07_alarm_and_recent_events.png" alt="" width="1388" height="612" srcset="https://blog.pythian.com/wp-content/uploads/07_alarm_and_recent_events.png 1388w, https://blog.pythian.com/wp-content/uploads/07_alarm_and_recent_events-465x205.png 465w, https://blog.pythian.com/wp-content/uploads/07_alarm_and_recent_events-350x154.png 350w" sizes="(max-width: 1388px) 100vw, 1388px" /></p> <p>When we look to the alert log for the database we can see that the first action reported in the alert log has been about 5-7 min later than the time when we&#8217;ve started the upgrade. Most likely that time was spent to prepare for the upgrade gathering information and preparing parameters for the scripts.<br /> The first reboot was starting the database in exclusive mode. What was interesting that I saw the &#8220;end backup&#8221; in the alert log but no &#8220;begin backup&#8221;. It looked like the &#8220;end backup&#8221; command was just a part of standard procedure to start an Oracle RDS instance. Later it was confirmed having the same for all subsequential restarts.</p> <pre lang="text" escaped="true">Completed: ALTER DATABASE MOUNT Fri Dec 01 17:43:29 2017 alter database end backup ORA-1142 signaled during: alter database end backup... </pre> <p>The next step looked like converting the spfile to the new format, but, again I was able to see it several times later.</p> <pre lang="text" escaped="true">Spfile /rdsdbbin/oracle/dbs/spfileORCL.ora is in old pre-11 format and compatible &gt;= 11.0.0; converting to new H.A.R.D. compliant format. Fri Dec 01 17:44:07 2017 ALTER SYSTEM SET job_queue_processes=0 SCOPE=MEMORY; Stopping background process QMNC ALTER SYSTEM SET aq_tm_processes=0 SCOPE=MEMORY; ALTER SYSTEM SET aq_tm_processes=0 SCOPE=MEMORY; Shutting down instance (immediate) </pre> <p>After that the instance is started again with enabled restricted session and following execution of the standard &#8220;utlrp.sql&#8221; script to recompile all invalid objects.</p> <pre lang="text" escaped="true">MMNL started with pid=16, OS id=17145 ALTER SYSTEM enable restricted session; Fri Dec 01 17:44:24 2017 SERVER COMPONENT id=UTLRP_BGN: timestamp=2017-12-01 17:44:24 SERVER COMPONENT id=UTLRP_END: timestamp=2017-12-01 17:44:25 Fri Dec 01 17:44:29 2017 </pre> <p>After that the database is going down again.</p> <p>All the previous actions were done when the database was started using the same 11.2.0.4 software. But now the database is started using the new 12.1.0.2 binaries:</p> <pre lang="text" escaped="true">NOTE: Using default ASM root directory ASM NOTE: Cluster configuration type = NONE [2] Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options. </pre> <p>The database is mounted and opened in the upgrade mode:</p> <pre lang="text" escaped="true">Fri Dec 01 17:47:55 2017 ALTER DATABASE MOUNT Fri Dec 01 17:48:00 2017 Control file expanded from 478 to 498 blocks for upgrade. Fri Dec 01 17:48:00 2017 ... Fri Dec 01 17:48:00 2017 Database mounted in Exclusive Mode ... Fri Dec 01 17:48:00 2017 alter database open upgrade ... Fri Dec 01 17:48:05 2017 ALTER SYSTEM enable restricted session; Fri Dec 01 17:48:05 2017 ALTER SYSTEM SET _system_trig_enabled=FALSE SCOPE=MEMORY; ... Fri Dec 01 17:48:05 2017 CJQ0 started with pid=27, OS id=18102 Completed: alter database open upgrade Fri Dec 01 17:48:13 2017 </pre> <p>As you can see, everything looks pretty much normal for an in-place upgrade of an Oracle database. The following output just confirm the execution of the standard upgrade scripts.</p> <pre lang="text" escaped="true">Fri Dec 01 17:56:26 2017 SERVER COMPONENT id=CATPROC: timestamp=2017-12-01 17:56:26 Fri Dec 01 17:56:29 2017 SERVER COMPONENT id=RDBMS: status=UPGRADED, version=12.1.0.2.0, timestamp=2017-12-01 17:56:29 ... Fri Dec 01 17:57:04 2017 SERVER COMPONENT id=CONTEXT: status=VALID, version=12.1.0.2.0, timestamp=2017-12-01 17:57:04 ... Fri Dec 01 17:57:58 2017 SERVER COMPONENT id=XDB: status=VALID, version=12.1.0.2.0, timestamp=2017-12-01 17:57:58 ... SERVER COMPONENT id=CATREQ_BGN: timestamp=2017-12-01 17:59:13 SERVER COMPONENT id=CATREQ_END: timestamp=2017-12-01 17:59:19 SERVER ACTION=UPGRADE id=: Upgraded from 11.2.0.4.0 SERVER COMPONENT id=ACTIONS_END: timestamp=2017-12-01 17:59:20 SERVER COMPONENT id=UPGRD_END: timestamp=2017-12-01 17:59:20 ... </pre> <p>After the first upgrade phase the instance rebooted to run the next set of scripts:</p> <pre lang="text" escaped="true">Completed: ALTER DATABASE MOUNT Fri Dec 01 17:59:57 2017 ALTER DATABASE OPEN MIGRATE Fri Dec 01 17:59:57 2017 ... Fri Dec 01 18:00:00 2017 CJQ0 started with pid=27, OS id=23176 Completed: ALTER DATABASE OPEN MIGRATE [rds-upgrade]: startupupg.sql Fri Dec 01 18:00:01 2017 [rds-upgrade]: starting 3.upgrade.sql Fri Dec 01 18:00:01 2017 ALTER SYSTEM SET _system_trig_enabled=FALSE SCOPE=MEMORY; [rds-upgrade]: finished 3.upgrade.sql Fri Dec 01 18:00:02 2017 [rds-upgrade]: starting 4.upgrade.sql Fri Dec 01 18:00:02 2017 ALTER SYSTEM SET _system_trig_enabled=FALSE SCOPE=MEMORY; [rds-upgrade]: finished 4.upgrade.sql Fri Dec 01 18:00:10 2017 [rds-upgrade]: starting 5.upgrade.sql [rds-upgrade]: finished 5.upgrade.sql Fri Dec 01 18:00:11 2017 [rds-upgrade]: starting 6.upgrade.sql Fri Dec 01 18:00:11 2017 ALTER SYSTEM SET _system_trig_enabled=FALSE SCOPE=MEMORY; [rds-upgrade]: finished 6.upgrade.sql Fri Dec 01 18:00:12 2017 [rds-upgrade]: starting 7.upgrade.sql [rds-upgrade]: finished 7.upgrade.sql ... </pre> <p>After that the database shut down to start back in normal mode. The compatibility is going to be changed as well.</p> <pre lang="text" escaped="true">... Fri Dec 01 18:05:03 2017 ALERT: Compatibility of the database is changed from 11.2.0.0.0 to 12.0.0.0.0. Increased the record size of controlfile section 12 to 96 bytes Control file expanded from 498 blocks to 502 blocks ... </pre> <p>The database is going to be backed up again to have the first post upgrade backup.</p> <pre lang="text" escaped="true">Fri Dec 01 18:10:31 2017 alter database backup controlfile to '/rdsdbdata/tmp/backup_control_file' reuse Completed: alter database backup controlfile to '/rdsdbdata/tmp/backup_control_file' reuse alter database begin backup Completed: alter database begin backup alter database end backup Completed: alter database end backup </pre> <p>The final backup is finishing the upgrade procedure and the database is open and available for tests.</p> <p>We could see that the upgrade was more or less similar to what we would do during a manual upgrade of an Oracle database. So, we should expect the same behavior and, returning to the original question, the SPM baselines should stay and work as before. Let&#8217;s test it:</p> <pre lang="sql" escaped="true">Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options orcl.inst01.us-east-1.rds.amazonaws.com:1521/orcl&gt; select count(*) from scott.table_x where txt1='c'; COUNT(*) ------------------ 33 orcl.inst01.us-east-1.rds.amazonaws.com:1521/orcl&gt; select * from table(dbms_xplan.display_cursor()); PLAN_TABLE_OUTPUT ---------------------------------------------------------------------------------------------------- SQL_ID 6w0wmda09cpam, child number 1 ------------------------------------- select count(*) from scott.table_x where txt1='c' Plan hash value: 1529419959 ------------------------------------------------------------------------------ | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | ------------------------------------------------------------------------------ | 0 | SELECT STATEMENT | | | | 3 (100)| | | 1 | SORT AGGREGATE | | 1 | 2 | | | |* 2 | TABLE ACCESS FULL| TABLE_X | 33 | 66 | 3 (0)| 00:00:01 | ------------------------------------------------------------------------------ Predicate Information (identified by operation id): --------------------------------------------------- 2 - filter("TXT1"='c') Note ----- - SQL plan baseline SQL_PLAN_azt27qa73g3sg34c84014 used for this statement </pre> <p>As you can see we have the same baseline and the same execution plan.</p> <p>Here is a short summary. The upgrade for an AWS RDS Oracle database is not different in general than an upgrade using Oracle standard approach and we may expect the standard behavior for our database. And, speaking about SPM baselines, they have to stay and provide the expected plan stability. I hope that this small exercise may help a few people save the time and effort it takes to dig through documentation searching for an answer.</p> </div></div> Gleb Otochkin https://blog.pythian.com/?p=102891 Tue Dec 05 2017 09:01:49 GMT-0500 (EST) What does ‘Skip NLS Settings’ really do? https://www.thatjeffsmith.com/archive/2017/12/what-does-skip-nls-settings-really-do/ <p>In SQL Developer you can configure how you want things to work for your session. How DATES should appear. If numbers should use a &#8216;.&#8217; or a &#8216;,&#8217; to indicate group separators and decimal points. </p> <p>We try to guess these things based on your local machine settings, but you can of course override them.</p> <div id="attachment_6423" style="width: 710px" class="wp-caption aligncenter"><img src="https://www.thatjeffsmith.com/wp-content/uploads/2017/12/nls0.png" alt="" width="700" height="666" class="size-full wp-image-6423" /><p class="wp-caption-text">Basically this means, we do &#8216;nothing.&#8217;</p></div> <p>But let&#8217;s see what happens when you DO set something. </p> <p>I&#8217;m going to change a whole bunch of stuff, stuff that&#8217;s dramatically different from what&#8217;s going on with my machine and even the database configuration.</p> <div id="attachment_6424" style="width: 1034px" class="wp-caption aligncenter"><img src="https://www.thatjeffsmith.com/wp-content/uploads/2017/12/nls01.png" alt="" width="1024" height="316" class="size-full wp-image-6424" /><p class="wp-caption-text">Upon opening the connection, we can see SQL Developer telling the database how we&#8217;ve configured our session for these items.</p></div> <p>OK, that feels a little icky, but no worries I still realize <a href="https://en.wikipedia.org/wiki/Vegemite" rel="noopener" target="_blank">vegemite</a> is an abomination. </p> <h3>The Statements Panel</h3> <p>One of my favorite meta features in SQL Developer, the Statements panel shows everything we send across the JDBC driver for thin connections to the database. So you can change things in the preference, clear the panel, &#8216;do stuff&#8217;, and check the panel again to see what&#8217;s changed.</p> <p>Like, toggling the &#8216;Skip&#8217; option for NLS, and seeing that we&#8217;re not setting stuff anymore, even for NLS_DATE and TIMESTAMP_FORMAT.</p> <div id="attachment_6425" style="width: 1034px" class="wp-caption aligncenter"><a href="https://www.thatjeffsmith.com/wp-content/uploads/2017/12/nls02.png"><img src="https://www.thatjeffsmith.com/wp-content/uploads/2017/12/nls02.png" alt="" width="1024" height="376" class="size-full wp-image-6425" /></a><p class="wp-caption-text">No NLS settings are being configured for the session now, you&#8217;re just going to get what the DB gives you.</p></div> <p>And we DO get something for NLS_SESSION for our session(s).</p> <div id="attachment_6426" style="width: 809px" class="wp-caption aligncenter"><a href="https://www.thatjeffsmith.com/wp-content/uploads/2017/12/nls03.png"><img src="https://www.thatjeffsmith.com/wp-content/uploads/2017/12/nls03.png" alt="" width="799" height="628" class="size-full wp-image-6426" /></a><p class="wp-caption-text">I&#8217;m ok with what you give me, I&#8217;m an easy going fella.</p></div> <h3>How does the DB Pick Stuff?</h3> <p>In general the DB doesn&#8217;t pick anything. You are telling the DB about your client side environment. There are a few ways. You can tell the DB explicitly in an alter session or by adding it to your SQL statement itself, you can setup your machine with environment variables and registry entries (SQL Developer is a java app and we don&#8217;t use those like SQL*Plus does), or you can live with what the DB has setup.</p> <p>Since SQL Developer is a Java app and of course uses a JDBC driver, the driver itself will detect local setups and config certain NLS properties &#8211; even if SQL Developer itself does not &#8211; for example <em>The language and territory settings, by default, are set to the Java VM locale settings</em>. </p> <div id="attachment_6427" style="width: 747px" class="wp-caption aligncenter"><a href="https://docs.oracle.com/database/122/NLSPG/setting-up-globalization-support-environment.htm#GUID-6475CA50-6476-4559-AD87-35D431276B20"><img src="https://www.thatjeffsmith.com/wp-content/uploads/2017/12/nls04.png" alt="" width="737" height="343" class="size-full wp-image-6427" /></a><p class="wp-caption-text">Click on the pic to get to the 12cR2 database docs on this topic.</p></div> <p>#2 is what the preference screen for NLS is the bucket that SQL Developer is ultimately falling into. </p> <!-- Easy AdSense Unfiltered [count: 3 is not less than 3] --> thatjeffsmith https://www.thatjeffsmith.com/?p=6422 Tue Dec 05 2017 08:24:55 GMT-0500 (EST) UKOUG Tech17 : Monday https://oracle-base.com/blog/2017/12/05/ukoug-tech17-monday/ <p><img class="size-full wp-image-7698 alignleft" src="https://oracle-base.com/blog/wp-content/uploads/2017/10/ukoug_tech17.png" alt="" width="379" height="80" />I couldn&#8217;t face the traffic, so I walked to the station and got the train into town. I got to the event in time for the first sessions, but got waylaid meeting people, so the first session for me was the morning keynote, where I got my 30 seconds of fame as they announced the speaker awards.</p> <p>After the keynote I grabbed a drink and went to watch &#8220;Flashback Features in Oracle Database&#8221; by <a href="https://connor-mcdonald.com/">Connor McDonald</a>. Connor is always good to watch, although I felt a little cheated as he only used about 260 slides over the 50 minutes. It was practically sedate for him&#8230; <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p> <p>Next I went to see <a href="http://www.petefinnigan.com/">Pete Finnigan</a> with &#8220;GDPR for the Oracle DBA&#8221;, who had a full room. As a techie it&#8217;s really easy to focus on the tech aspect of GDPR, but it&#8217;s such an expansive subject, spanning all aspects of the business. After the session someone tweeted,</p> <blockquote><p>&#8220;So you could say the architecture that underpins Oracle technology is not GDPR compliant, or did I miss something&#8221;</p></blockquote> <p>My reply was,</p> <blockquote><p>&#8220;I think you missed something. I don&#8217;t think any app is GDPR compliant itself. It&#8217;s bigger than that.&#8221;</p></blockquote> <p>I&#8217;m struggling to see how companies will even scratch the surface of GDPR&#8230;</p> <p>After lunch I had my session called <a href="/articles/12c/multitenant-overview-container-database-cdb-12cr1#12201">Multitenant : What&#8217;s new in Oracle Database 12c Release 2 (12.2)</a>. It was in the big auditorium, but most people sat towards the front of the room, so it didn&#8217;t feel like I was just presenting to chairs this year. <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p> <p>After me came the community keynote &#8220;Solving the Most Common User Request &#8230;. Make it go Faster!&#8221;, which was a tag-team made up of <a href="https://connor-mcdonald.com/">Connor McDonald</a>, <a href="https://twitter.com/chrisrsaxon">Chris Saxon</a> and my sister-in-law <a href="https://sqlmaria.com/">Maria Colgan</a>. I think this format is fun, and the general message about us needing to be more user-driven is important. At one point Connor was talking about instrumentation and showed a screen with V$SESSION information on it, asking the audience how anyone could tell which row represented the problem session. I shouted out it was row three as a joke, and it turned out to be true. I am available for performance tuning work. I don&#8217;t need to see you&#8217;re system. I am data-sensitive&#8230; <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p> <p>From there I went to see &#8220;Making the APEX Universal Theme Your own&#8221; by <a href="https://twitter.com/msewtz">Marc Sewtz</a>. I&#8217;m possibly the worst APEX developer in the world, so I have to keep throwing in APEX sessions, just so I feel a little less guilty&#8230; <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p> <p><img class="alignleft" src="https://pbs.twimg.com/media/DQOrIMPWAAAFRt2.jpg" width="233" height="175" /></p> <p>On the way out of the previous session I got talking to <a href="https://stewashton.wordpress.com/">Stew Ashton</a>, and we missed the last session of the day chatting, mostly talking about #SmartDB. From there we headed up for the drinks and mingling. A little before 20:00 I headed across to the Oracle ACE Dinner, where we had a family table. <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Having a large group of presenters in a room is not a good way to keep the volume down. <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p> <p>A short taxi ride home and Monday was done for me. I&#8217;m at work on Tuesday, but I will be in to present my session called, &#8220;Using PL/SQL and ORDS to Develop RESTful Web Services for APEX? Why?&#8221;, in the APEX stream.  I understand the irony of me being a crap APEX developer and doing a session in the APEX stream, but if you see it I think it will make sense why. <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p> <p>Cheers</p> <p>Tim&#8230;</p> <hr style="border-top:black solid 1px" /><a href="https://oracle-base.com/blog/2017/12/05/ukoug-tech17-monday/">UKOUG Tech17 : Monday</a> was first posted on December 5, 2017 at 12:10 pm.<br />©2012 "<a href="http://www.oracle-base.com/blog">The ORACLE-BASE Blog</a>". Use of this feed is for personal non-commercial use only. If you are not reading this article in your feed reader, then the site is guilty of copyright infringement.<br /> Tim... https://oracle-base.com/blog/?p=7745 Tue Dec 05 2017 06:10:04 GMT-0500 (EST) RMAN-06429: TARGET Database Is Not Compatible Version http://oracle-help.com/articles/rman-06429-target-database-not-compatible-version/ <p>This post is about to solve the issue <strong>RMAN-06429</strong>. While connecting to catalog and running rman script, you may face below error.  Whenever you connect to a database (rman version if different from source database version, in fact, rman version is higher than the source database) through RMAN using/without recovery catalog it fails with <strong>RMAN-06429: TARGET</strong> database is not compatible with this version of <strong>RMAN</strong> as below.<br /> Most of the companies using <strong>RMAN</strong> catalog for their <strong>ORACLE</strong> database backup strategy. If you try to connect RMAN catalog database using lower target database version, it works fine. But if you try to connect rman catalog using higher target database version(rman client) it gives an error.</p> <p><a href="https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/12/2.jpg"><img data-attachment-id="2602" data-permalink="http://oracle-help.com/articles/rman-06429-target-database-not-compatible-version/attachment/2-44/" data-orig-file="https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/12/2.jpg?fit=294%2C171" data-orig-size="294,171" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="2" data-image-description="" data-medium-file="https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/12/2.jpg?fit=294%2C171" data-large-file="https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/12/2.jpg?fit=294%2C171" class="alignnone wp-image-2602" src="https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/12/2.jpg?resize=363%2C212" alt="" width="363" height="212" srcset="https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/12/2.jpg?w=294 294w, https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/12/2.jpg?resize=60%2C35 60w, https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/12/2.jpg?resize=150%2C87 150w" sizes="(max-width: 363px) 100vw, 363px" data-recalc-dims="1" /></a></p> <p>In order to resolve this issue, sometimes <strong>DBA</strong> connects to the target database and rman catalog and runs upgrade catalog command, and if upgrade catalog does not execute successfully then it corrupts current rman catalog schema.</p> <h4>ERROR:</h4> <p>RMAN-06429: TARGET database is not compatible with this version of RMAN<br /> RMAN-06618: RMAN client and database release mismatch; indicated database release is 12.1.0.2</p> <h4>Solution:</h4> <h4>Upgrade the catalog database as below.</h4> <p><strong>1 . Connect to catalog database</strong></p> <p>rman target sys/oracle@TESTDB catalog cat_user/pwd@CATDB</p> <p><strong>2. Upgrade catalog:</strong><br /> RMAN&gt; upgrade catalog;</p> <p>recovery catalog owner is RMAN_SEC58_6<br /> enter UPGRADE CATALOG command again to confirm catalog upgrade</p> <p>&nbsp;</p> <p>RMAN&gt; upgrade catalog;</p> <p>The post <a rel="nofollow" href="http://oracle-help.com/articles/rman-06429-target-database-not-compatible-version/">RMAN-06429: TARGET Database Is Not Compatible Version</a> appeared first on <a rel="nofollow" href="http://oracle-help.com">ORACLE-HELP</a>.</p> Anuradha Mudgal http://oracle-help.com/?p=2600 Tue Dec 05 2017 04:34:46 GMT-0500 (EST) ORA-02095: Specified Initialization Parameter Cannot Be Modified http://oracle-help.com/articles/ora-02095-specified-initialization-parameter-cannot-modified/ <h3>As we know Troubleshooting is the process of identifying, planning and resolving a problem, error or fault within a software or computer system. It enables the repair and restoration of a computer or software when it becomes faulty, unresponsive or acts in an abnormal way.</h3> <p>We are going to know the steps we use to resolve the issue ORA-02095.</p> <h3></h3> <h3>PROBLEM:</h3> <p>While modifying the parameter in the database, got below error.</p> <p>SQL&gt; alter system set processes=1000 scope=both;<br /> alter system set processes=1000 scope=both<br /> *<br /> ERROR at line 1:<br /> ORA-02095: specified initialization parameter cannot be modified</p> <p>&nbsp;</p> <h3>SOLUTION:</h3> <p>First, we need to check whether the parameter is system modifiable or not.</p> <p>SQL&gt; select name,VALUE,ISSYS_MODIFIABLE from SYS.V$PARAMETER where name=&#8217;processes&#8217;;</p> <p>NAME VALUE ISSYS_MODIFIABLE<br /> &#8212;&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;<br /> processes 7680 FALSE</p> <p>So to fix this error, use scope=spfile and restart the database.</p> <div id="crayon-5a265f69b3efd111047590" class="crayon-syntax crayon-theme-github crayon-font-monaco crayon-os-pc print-yes notranslate"> <div class="crayon-plain-wrap"></div> <div>alter system set processes=1000 scope=SPFILE;</p> <p>SHUTDOWN IMMEDIATE;<br /> STARTUP;</p></div> <div></div> </div> <p>The post <a rel="nofollow" href="http://oracle-help.com/articles/ora-02095-specified-initialization-parameter-cannot-modified/">ORA-02095: Specified Initialization Parameter Cannot Be Modified</a> appeared first on <a rel="nofollow" href="http://oracle-help.com">ORACLE-HELP</a>.</p> Anuradha Mudgal http://oracle-help.com/?p=2594 Tue Dec 05 2017 04:18:01 GMT-0500 (EST) The Natural Evolution of Data Warehousing—Where We Are Today https://blog.pythian.com/natural-evolution-data-warehousing-today/ <div class="l-submain"><div class="l-submain-h g-html i-cf"><p><span style="font-weight: 400;">It’s a fact that technology is always evolving—rapidly. What’s new and hot today, may be old news and on its way to becoming obsolete tomorrow. Traditionalarehousing is no exception. We have been seeing that the old school data warehouse is on its way out and a new data platform approach is taking its place. We’re also seeing the rise of several trends and have a few thoughts on why they&#8217;re happening and how we think the industry will respond over the next several years.</span></p> <p><b>Why are data warehouses becoming obsolete?</b></p> <p><span style="font-weight: 400;">There are several factors causing data warehouses to meet their boundaries. A few of them include:</span></p> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">An increase in demand to acquire data when it’s needed. Traditional warehouses were designed to consume flat file structures and data from other relational systems. Today, that’s no longer the case.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">The variety of data sources has increased dramatically and this has pushed data warehouses to the edge of their capacity, in terms of how fast data sources can be acquired. Some of the legacy warehouses can&#8217;t keep up with this real-time demand.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">The type of users working with legacy warehouses has changed. Data scientists are one of the biggest and newest groups and they have very specific requirements for the data they use. They need way more processing power than a traditional warehouse may be able to give. They also need the ability to use the tool sets they&#8217;re most comfortable with, which, in many cases, warehouse databases don&#8217;t support. One of the top requests we hear from data scientists is they want access to raw data.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">More automated systems consume data for analytics and existing warehouses are just not well-suited to serve this type of workload. </span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Maintaining traditional data warehouses is a capital expenditure. And maintaining a modern data warehouse on the cloud is an operational spend, which many organizations find an attractive alternative.  </span></li> </ul> <p><b>What are the consequences of sticking with a traditional data warehouse?</b></p> <p><span style="font-weight: 400;">All of the reasons listed above, lead to the following negative outcomes for enterprises:</span></p> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">Lost business opportunities</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Unhappy users</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Performance problems</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Rising costs</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Shadow IT</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Limited visibility into KPIs</span></li> </ul> <p><b>What is the alternative to traditional data warehouses?</b></p> <p><span style="font-weight: 400;">There are new cloud-based warehousing products and services that provide a cost-efficient way to serve and allow analytics of large amounts of data. We&#8217;ve been seeing a </span><span style="font-weight: 400;">trend toward moving to the cloud in part because it takes a lot less effort to set up than it does to set up a data warehouse on-premise. </span></p> <p><span style="font-weight: 400;">We think these components of automated open-source, new types of optimization tools, and new products from cloud platforms, will demand a new approach to design and implement a new BI platform.</span></p> <p><b>What will the design of these platforms look like? </b></p> <p><span style="font-weight: 400;">The architecture of the modern data platform, is built on several key premises. The modern BI platform should provide both  data lake and the warehouse components, meaning that it should be able to store the structure and the structure data in the same place. But it should also be able to provide a place where analytics can run queries on a more structured and curated data set, with very fast response times and the ability to use standard SQL tools or standard BI exploration tools. </span></p> <p><span style="font-weight: 400;">The right approach to BI in today&#8217;s world is to stop thinking about a warehouse as being the center of the BI universe, as we thought in the past. In the model we&#8217;re exploring, the warehouse is just one of the components and becomes a part of the data platform. The role of the data platform is to be able to ingest, process, and serve the data in any shape or size it comes in</span><span style="font-weight: 400;">—</span><span style="font-weight: 400;">to provide a combination of a data lake and warehouse technology.</span></p> <p><span style="font-weight: 400;">The benefits of having a modern data platform and not just a warehouse, is that the data platform will do all the analytics and processing for you. It will also unlock possibilities, new opportunities, and increase the velocity at which changes can be made to the data pipeline. </span></p> <p><span style="font-weight: 400;">Another benefit to moving over to a modern data platform is that you can take advantage of the best of both open source technologies and service offerings from cloud platform vendors. </span></p> <p><span style="font-weight: 400;">At Pythian, we have implemented a number of solutions based on this concept, in the form of our <a href="https://pythian.com/analytics-as-a-service/">Kick Analytics as a Service</a>. Making sure that a platform is trusted and that businesses are comfortable bringing more and more critical data into a solution like this, can only make an enterprise more successful.</span></p> <p><b>Download this full <a href="http://resources.pythian.com/webinar/traditional-data-warehouse-to-modern-data-platform-video/?hsCtaTracking=239ee829-ff33-4173-a06f-3ed071a98e11%7C1a944715-0365-42fd-8106-d95b1bc2b3ad">webinar</a></b><b> to learn more about the transition from data warehouses to modern data platforms.</b></p> <p><a href="http://resources.pythian.com/webinar/traditional-data-warehouse-to-modern-data-platform-video/?hsCtaTracking=239ee829-ff33-4173-a06f-3ed071a98e11%7C1a944715-0365-42fd-8106-d95b1bc2b3ad"><img class="alignnone size-full wp-image-102906" src="https://blog.pythian.com/wp-content/uploads/Evolution-data-warehousing-2-e1512417427211.jpg" alt="" width="600" height="300" /></a></p> <p>&nbsp;</p> </div></div> Danil Zburivsky https://blog.pythian.com/?p=102904 Mon Dec 04 2017 14:58:41 GMT-0500 (EST) Resolve tns alias from the database (DBMS_TNS.RESOLVE_TNSNAME) http://oracledba.blogspot.com/2017/12/resolve-tns-alias-from-database.html <div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-2Mm4vHVhNbw/Wgm_LAY6nyI/AAAAAAAFjqw/DkC-eDG9Qa4pZZ3Wv4ZMinG7I391CmX_QCLcBGAs/s1600/Untitled.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="142" data-original-width="668" height="136" src="https://1.bp.blogspot.com/-2Mm4vHVhNbw/Wgm_LAY6nyI/AAAAAAAFjqw/DkC-eDG9Qa4pZZ3Wv4ZMinG7I391CmX_QCLcBGAs/s640/Untitled.png" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"></div><br />When a given tns alias is not working, via SQL*Plus, database link or within data guard, traditionally I troubleshoot connectivity via tnsping utility, at first just to understand the target host, port and service name.<br /><br />In oracle 12.2 we have a new function called <b>DBMS_TNS.RESOLVE_TNSNAME</b> that enables to query the return string as we receive it from tnsping.<br /><h3>Using oracle utility tnsping from the command line</h3><blockquote class="tr_bq">$ tnsping stndby_db<br /><br />TNS Ping Utility for Linux: Version 12.2.0.1.0 - Production on 13-NOV-2017 14:45:39<br /><br />Copyright (c) 1997, 2016, Oracle.&nbsp; All rights reserved.<br /><br />Used parameter files:<br />/oracle/product/12.2.0.1/dbhome_1/network/admin/sqlnet.ora<br /><br />Used TNSNAMES adapter to resolve the alias<br />Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = stndby_host)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = stndby_db)))<br />OK (0 msec)</blockquote><h3>Using dbms_tns</h3><blockquote class="tr_bq">SQL&gt; select dbms_tns.resolve_tnsname ('stndby_db') as TNS_ALIAS from dual;<br />TNS_ALIAS<br />--------------------------------------------------------------------------------------------------------------------------------------------------------------------------<br />(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=stndby_host)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=stndby_db)(CID=(PROGRAM=oracle)(HOST=prmry_host)(USER=oracle))))</blockquote><h2>Extracting service name from a tns alias</h2><blockquote class="tr_bq">SQL&gt; col SERVICE for a15<br />SQL&gt; SELECT REGEXP_REPLACE (<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dbms_tns.resolve_tnsname ( 'stndby_db' )<br />,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;'(.*)(SERVICE_NAME|SID_NAME)[[:blank:]]*=[[:blank:]]*([^\)]+*)\).*'<br />,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;'\3'<br />,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1<br />,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1<br />,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;'i'<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;AS SERVICE<br />&nbsp;10&nbsp; &nbsp; FROM DUAL;<br /><br />SERVICE<br />---------------<br />stndby_db</blockquote><h3>Extracting host name from a tns alias</h3><blockquote class="tr_bq">SQL&gt; col HOST for a15<br />SELECT REGEXP_REPLACE (<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dbms_tns.resolve_tnsname ( 'stndby_db' )<br />,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;'(.*)(HOST)[[:blank:]]*=[[:blank:]]*([^\)]+*)\).*'<br />,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;'\3'<br />,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1<br />,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1<br />,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;'i'<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;AS HOST<br />&nbsp;10&nbsp; &nbsp; &nbsp; &nbsp;FROM DUAL;<br /><br />HOST<br />---------------<br />stndby_host</blockquote><h3>Extracting port from a tns alias</h3><blockquote class="tr_bq">SQL&gt; col PORT for a10<br />SELECT REGEXP_REPLACE (<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dbms_tns.resolve_tnsname ( 'stndby_db' )<br />,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;'(.*)(PORT)[[:blank:]]*=[[:blank:]]*([^\)]+*)\).*'<br />,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;'\3'<br />,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1<br />,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1<br />,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;'i'<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;AS HOST<br />&nbsp;10&nbsp; &nbsp; &nbsp; &nbsp;FROM DUAL;<br /><br />PORT<br />---------------<br />1521</blockquote><h2>Extracting target information of a standby</h2><blockquote class="tr_bq">SQL&gt; col TARGET_HOST for a15 heading "TARGET|HOST"&nbsp; <br />SQL&gt; col TARGET_PORT for a15 heading "TARGET|PORT"<br />SQL&gt; col TARGET_SERVICE_NAME for a15 heading "TARGET|SERVICE|NAME"<br />SQL&gt; SELECT dest_name,db_unique_name<br />,REGEXP_REPLACE ( dbms_tns.resolve_tnsname ( db_unique_name ), '(.*)(HOST)[[:blank:]]*=[[:blank:]]*([^\)]+*)\).*', '\3', 1, 1, 'i' ) AS TARGET_HOST<br />,REGEXP_REPLACE ( dbms_tns.resolve_tnsname ( db_unique_name ), '(.*)(PORT)[[:blank:]]*=[[:blank:]]*([^\)]+*)\).*', '\3', 1, 1, 'i' ) AS TARGET_PORT<br />,REGEXP_REPLACE ( dbms_tns.resolve_tnsname ( db_unique_name ), '(.*)(SERVICE_NAME|SID_NAME)[[:blank:]]*=[[:blank:]]*([^\)]+*)\).*', '\3', 1, 1, 'i' ) AS TARGET_SERVICE_NAME<br />FROM gv$archive_dest WHERE destination IS NOT NULL and TARGET not in ('LOCAL','PRIMARY');<br /><br /><span style="white-space: pre;"> </span>&nbsp; &nbsp; &nbsp;DB <span style="white-space: pre;"> </span>&nbsp; &nbsp; &nbsp;TARGET<br />DEST<span style="white-space: pre;"> </span>&nbsp; &nbsp; &nbsp;UNIQUE&nbsp; TARGET<span style="white-space: pre;"> </span>&nbsp; &nbsp; &nbsp;TARGET<span style="white-space: pre;"> </span>&nbsp; &nbsp; &nbsp;SERVICE<br />NAME<span style="white-space: pre;"> </span>&nbsp; &nbsp; &nbsp;NAME&nbsp; &nbsp; HOST<span style="white-space: pre;"> </span>&nbsp; &nbsp; &nbsp;PORT<span style="white-space: pre;"> </span>&nbsp; &nbsp; &nbsp;NAME<br />-------------------- ------- --------------- --------------- ---------------<br />LOG_ARCHIVE_DEST_2&nbsp; &nbsp;stndby_db prmry_host<span style="white-space: pre;"> </span>&nbsp; &nbsp; &nbsp;1521<span style="white-space: pre;"> </span>&nbsp; &nbsp; &nbsp;stndby_db</blockquote><div><br /></div> Yossi Nixon tag:blogger.com,1999:blog-6061714.post-1943117731584713874 Mon Dec 04 2017 12:00:00 GMT-0500 (EST) Exploring Couchbase Server – Datascape Podcast Episode 19 https://blog.pythian.com/datascape-podcast-episode-19-episode-19-exploring-couchbase-server-with-terry/ <div class="l-submain"><div class="l-submain-h g-html i-cf"><p>On today’s show we welcome Terry Dhariwal to take us further into our exploration of NoSQL databases and talk about Couchbase Server. Terry started his career as a developer in 2003 after completing a computer science degree. His love of coding and passion for the cloud naturally pushed him towards web applications and backend systems. Terry unpacks Couchbase’s three separate products; Couchbase Server, the focus of today’s episode, which essentially stores documents and binary blobs; Couchbase Analytics, which is a data warehouse; and Couchbase Mobile, a lite version of the technology, which is smart device friendly. Terry takes us through a brief history of Couchbase, looking at its origins in Membase and CouchDB, before detailing a bit more of what makes Couchbase special. The four pillars of the company that were set in place from the start were consistent performance, horizontal scaling, high availability, and flexibility. Through today&#8217;s episode we hear about these, how they have influenced the software and how the software can be useful to you.</p> <p><iframe src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/363477617&amp;color=%23ff5500&amp;auto_play=false&amp;hide_related=false&amp;show_comments=true&amp;show_user=true&amp;show_reposts=false&amp;show_teaser=true&amp;visual=true" width="100%" height="300" frameborder="no" scrolling="no"></iframe></p> <p>Key points from this episode:</p> <p>• What is Couchbase and why does it exist?<br /> • NoSQL vs relational databases.<br /> • The different solutions available through Couchbase.<br /> • The problems that Couchbase Server solves.<br /> • The history of Couchbase as a company.<br /> • The importance of flexibility for customers.<br /> • Membase &#8211; the original form of Couchbase.<br /> • How iterative improvements of the technology have developed.<br /> • Prevention of workload contention within the system.<br /> • The relationship of the software to different pieces of hardware.<br /> • The four pillars of Couchbase and how they were decided upon.<br /> • Automatic and even distribution of data in Couchbase.<br /> • Key differences between Couchbase and MongoDB and Cassandra.<br /> • Memory assignment within the database.<br /> • Consistency versus latency trade-offs.<br /> • Data, global index and other services.<br /> • Architecture of the nodes and servers.<br /> • Recovery and backing up and the mechanisms for this.<br /> • Automatic sharding, replication, MDS and other stand-out features.<br /> • Practical applications and usage examples of the software.<br /> • Terry answers the Lightning round.<br /> • And much more!<br /> <strong><br /> Links mentioned in today’s episode:</strong></p> <p><a href="https://uk.linkedin.com/in/terrydhariwal">Terry Dhariwal</a><br /> <a href="https://www.couchbase.com">Couchbase</a><br /> <a href="http://couchdb.apache.org/">CouchDB</a><br /> <a href="https://www.mongodb.com/">MondoDB</a><br /> <a href="http://cassandra.apache.org/">Cassandra</a><br /> <a href="https://www.sky.com/">Sky </a><br /> <a href="https://www.hbo.com/game-of-thrones">Game of Thrones</a><br /> <a href="https://www.oracle.com/middleware/data-integration/index.html">Oracle</a><br /> <a href="http://bigcouch.cloudant.com/">BigCouch</a><br /> <a href="https://www.amazon.com/Head-First-Design-Patterns-Brain-Friendly/dp/0596007124">Head First Design Patterns</a><br /> <a href="https://www.smashingmagazine.com/2015/07/become-command-line-power-user-oh-my-zsh-z/">ZSH</a></p> <p><img class="alignnone size-full wp-image-102888" src="https://blog.pythian.com/wp-content/uploads/Episode-19-2-e1512155408114.jpg" alt="" width="600" height="300" /></p> </div></div> Chris Presley https://blog.pythian.com/?p=102886 Mon Dec 04 2017 08:55:14 GMT-0500 (EST) SQL Server 2017 on Linux- Processes http://dbakevlar.com/2017/12/sql-server-2017-linux-processes/ <div class="pf-content"><p><span style="font-family: arial, helvetica, sans-serif; font-size: 12pt;">So while finishing up my slides for the Microsoft Pass Linux Marathon webinar on Dec. 13th, Tim and I started to discuss the apples vs. oranges comparison of SQL Server on Linux process management vs. an Oracle instance.</span></p> <p><a href="http://dbakevlar.com/2017/12/sql-server-2017-linux-processes/apple_orange/" rel="attachment wp-att-7473"><img class="alignnone size-full wp-image-7473" src="https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/11/apple_orange.gif?resize=300%2C200" alt="" data-recalc-dims="1" /></a></p> <p><span style="font-family: arial, helvetica, sans-serif; font-size: 12pt;">We discussed the differences one might expect to see using different tools with the two database platforms and the first question surrounded information </span>pmap<span style="font-family: arial, helvetica, sans-serif; font-size: 12pt;"> would provide.  We commonly use </span>pmap<span style="font-family: arial, helvetica, sans-serif; font-size: 12pt;"> to map out processes, including child and sub-processes of a particular PID.   As my current images have multiple database platforms on each of them,  I quickly spun up a Docker image of SQL Server 2017 to ensure I had a clean image to work from.</span></p> <p><span style="font-family: arial, helvetica, sans-serif; font-size: 12pt;">First, what processes are running?</span></p> <pre class="p1"><span class="s1"><strong>$ ps -ef</strong> root <span class="Apple-converted-space">        </span>1 <span class="Apple-converted-space">    </span>0<span class="Apple-converted-space">  </span>0 22:22 ?<span class="Apple-converted-space">        </span>00:00:00 /bin/sh -c /opt/mssql/bin/sqlservr</span> <span class="s1">root <span class="Apple-converted-space">        </span><span style="color: #ff0000;">7</span> <span class="Apple-converted-space">    </span>1<span class="Apple-converted-space">  </span>0 22:22 ?<span class="Apple-converted-space">        </span>00:00:00 <span style="color: #ff0000;">/opt/mssql/bin/sqlservr</span></span> <span class="s1">root <span class="Apple-converted-space">        </span><span style="color: #ff0000;">9</span> <span class="Apple-converted-space">    </span>7<span class="Apple-converted-space">  </span>3 22:22 ?<span class="Apple-converted-space">        </span>00:00:24 <span style="color: #ff0000;">/opt/mssql/bin/sqlservr</span></span> <span class="s1">root <span class="Apple-converted-space">      </span>165 <span class="Apple-converted-space">    </span>0<span class="Apple-converted-space">  </span>0 22:24 pts/0<span class="Apple-converted-space">    </span>00:00:00 bash</span> <span class="s1">root <span class="Apple-converted-space">      </span>300 <span class="Apple-converted-space">  </span>165<span class="Apple-converted-space">  </span>0 22:34 pts/0<span class="Apple-converted-space">    </span>00:00:00 ps -ef</span></pre> <p class="p1"><span style="font-size: 12pt;"><span style="font-family: arial, helvetica, sans-serif;">Unlike Oracle, there aren&#8217;t separate background processes like the </span>pmon<span style="font-family: arial, helvetica, sans-serif;">, log writer, etc. that was present for us to identify, as you see in the following example:</span></span></p> <pre class="p1"><strong><span class="s1">$ ps -ef | grep orcl</span></strong> <span class="s1">delphix <span class="Apple-converted-space">  </span>2927 <span class="Apple-converted-space">    </span>1<span class="Apple-converted-space">  </span>0 Nov22 ?<span class="Apple-converted-space">        </span>00:06:49 ora_vkrm_orcl</span> <span class="s1">delphix <span class="Apple-converted-space">  </span>4542 <span class="Apple-converted-space">    </span>1<span class="Apple-converted-space">  </span>0 18:48 ?<span class="Apple-converted-space">        </span>00:00:00 ora_w000_orcl</span> <span class="s1">delphix <span class="Apple-converted-space">  </span>9331 <span class="Apple-converted-space">    </span>1<span class="Apple-converted-space">  </span>0 Oct18 ?<span class="Apple-converted-space">        </span>00:04:24 ora_pmon_orcl </span><span class="s1">delphix <span class="Apple-converted-space">  </span>9333 <span class="Apple-converted-space">    </span>1<span class="Apple-converted-space">  </span>0 Oct18 ?<span class="Apple-converted-space">        </span>00:05:21 ora_psp0_orcl</span> <span class="s1">delphix <span class="Apple-converted-space">  </span>9335 <span class="Apple-converted-space">    </span>1<span class="Apple-converted-space">  </span>0 Oct18 ?<span class="Apple-converted-space">        </span>05:45:03 ora_vktm_orcl</span> <span class="s1">delphix <span class="Apple-converted-space">  </span>9339 <span class="Apple-converted-space">    </span>1<span class="Apple-converted-space">  </span>0 Oct18 ?<span class="Apple-converted-space">        </span>00:01:01 ora_gen0_orcl</span> <span class="s1">delphix <span class="Apple-converted-space">  </span>9341 <span class="Apple-converted-space">    </span>1<span class="Apple-converted-space">  </span>0 Oct18 ?<span class="Apple-converted-space">        </span>00:01:44 ora_diag_orcl</span> <span class="s1">delphix <span class="Apple-converted-space">  </span>9343 <span class="Apple-converted-space">    </span>1<span class="Apple-converted-space">  </span>0 Oct18 ?<span class="Apple-converted-space">        </span>00:01:37 ora_dbrm_orcl</span> <span class="s1">delphix <span class="Apple-converted-space">  </span>9345 <span class="Apple-converted-space">    </span>1<span class="Apple-converted-space">  </span>0 Oct18 ?<span class="Apple-converted-space">        </span>00:16:50 ora_dia0_orcl</span> <span class="s1">delphix <span class="Apple-converted-space">  </span>9347 <span class="Apple-converted-space">    </span>1<span class="Apple-converted-space">  </span>0 Oct18 ?<span class="Apple-converted-space">        </span>00:00:57 ora_mman_orcl</span> <span class="s1">delphix <span class="Apple-converted-space">  </span>9349 <span class="Apple-converted-space">    </span>1<span class="Apple-converted-space">  </span>0 Oct18 ?<span class="Apple-converted-space">        </span>00:03:55 ora_dbw0_orcl </span><span class="s1">delphix <span class="Apple-converted-space">  </span>9351 <span class="Apple-converted-space">    </span>1<span class="Apple-converted-space">  </span>0 Oct18 ?<span class="Apple-converted-space">        </span>00:18:27 ora_lgwr_orcl</span> <span class="s1">delphix <span class="Apple-converted-space">  </span>9353 <span class="Apple-converted-space">    </span>1<span class="Apple-converted-space">  </span>0 Oct18 ?<span class="Apple-converted-space">        </span>00:05:58 ora_ckpt_orcl</span> <span class="s1">delphix <span class="Apple-converted-space">  </span>9355 <span class="Apple-converted-space">    </span>1<span class="Apple-converted-space">  </span>0 Oct18 ?<span class="Apple-converted-space">        </span>00:01:36 ora_smon_orcl</span> <span class="s1">delphix <span class="Apple-converted-space">  </span>9357 <span class="Apple-converted-space">    </span>1<span class="Apple-converted-space">  </span>0 Oct18 ?<span class="Apple-converted-space">        </span>00:00:19 ora_reco_orcl</span> <span class="s1">delphix <span class="Apple-converted-space">  </span>9359 <span class="Apple-converted-space">    </span>1<span class="Apple-converted-space">  </span>0 Oct18 ?<span class="Apple-converted-space">        </span>00:05:22 ora_mmon_orcl</span> <span class="s1">delphix <span class="Apple-converted-space">  </span>9361 <span class="Apple-converted-space">    </span>1<span class="Apple-converted-space">  </span>0 Oct18 ?<span class="Apple-converted-space">        </span>00:12:19 ora_mmnl_orcl</span> <span class="s1">delphix <span class="Apple-converted-space">  </span>9363 <span class="Apple-converted-space">    </span>1<span class="Apple-converted-space">  </span>0 Oct18 ?<span class="Apple-converted-space">        </span>00:00:26 ora_d000_orcl</span> <span class="s1">delphix <span class="Apple-converted-space">  </span>9365 <span class="Apple-converted-space">    </span>1<span class="Apple-converted-space">  </span>0 Oct18 ?<span class="Apple-converted-space">        </span>00:00:24 ora_s000_orcl </span><span class="s1">delphix <span class="Apple-converted-space">  </span>9886 <span class="Apple-converted-space">    </span>1<span class="Apple-converted-space">  </span>0 Oct18 ?<span class="Apple-converted-space">        </span>00:58:21 ora_arc0_orcl</span> <span class="s1">delphix <span class="Apple-converted-space">  </span>9888 <span class="Apple-converted-space">    </span>1<span class="Apple-converted-space">  </span>0 Oct18 ?<span class="Apple-converted-space">        </span>00:58:44 ora_arc1_orcl</span> <span class="s1">delphix <span class="Apple-converted-space">  </span>9890 <span class="Apple-converted-space">    </span>1<span class="Apple-converted-space">  </span>0 Oct18 ?<span class="Apple-converted-space">        </span>00:00:34 ora_arc2_orcl</span> <span class="s1">delphix <span class="Apple-converted-space">  </span>9892 <span class="Apple-converted-space">    </span>1<span class="Apple-converted-space">  </span>0 Oct18 ?<span class="Apple-converted-space">        </span>00:58:21 ora_arc3_orcl</span> <span class="s1">delphix <span class="Apple-converted-space">  </span>9894 <span class="Apple-converted-space">    </span>1<span class="Apple-converted-space">  </span>0 Oct18 ?<span class="Apple-converted-space">        </span>00:01:11 ora_ctwr_orcl</span> <span class="s1">delphix <span class="Apple-converted-space">  </span>9896 <span class="Apple-converted-space">    </span>1<span class="Apple-converted-space">  </span>0 Oct18 ?<span class="Apple-converted-space">        </span>00:00:26 ora_qmnc_orcl</span> <span class="s1">delphix <span class="Apple-converted-space">  </span>9911 <span class="Apple-converted-space">    </span>1<span class="Apple-converted-space">  </span>0 Oct18 ?<span class="Apple-converted-space">        </span>00:06:54 ora_cjq0_orcl</span> <span class="s1">delphix<span class="Apple-converted-space">  </span>10082 <span class="Apple-converted-space">    </span>1<span class="Apple-converted-space">  </span>0 Oct18 ?<span class="Apple-converted-space">        </span>00:00:27 ora_q000_orcl </span><span class="s1">delphix<span class="Apple-converted-space">  </span>10084 <span class="Apple-converted-space">    </span>1<span class="Apple-converted-space">  </span>0 Oct18 ?<span class="Apple-converted-space">        </span>00:02:42 ora_q001_orcl</span> <span class="s1">delphix<span class="Apple-converted-space">  </span>14181 <span class="Apple-converted-space">    </span>1<span class="Apple-converted-space">  </span>0 Oct18 ?<span class="Apple-converted-space">        </span>00:01:17 ora_smco_orcl</span> <span class="s1">delphix<span class="Apple-converted-space">  </span>30148 <span class="Apple-converted-space">    </span>1<span class="Apple-converted-space">  </span>0 Nov22 ?<span class="Apple-converted-space">        </span>00:02:25 ora_m002_orcl</span> <span class="s1">delphix<span class="Apple-converted-space">  </span>30151 <span class="Apple-converted-space">    </span>1<span class="Apple-converted-space">  </span>0 Nov22 ?<span class="Apple-converted-space">        </span>00:02:27 ora_j000_orcl</span> <span class="s1">delphix<span class="Apple-converted-space">  </span>30456 <span class="Apple-converted-space">    </span>1<span class="Apple-converted-space">  </span>0 Nov22 ?<span class="Apple-converted-space">        </span>00:00:22 ora_j001_orcl</span> <span class="s1">delphix<span class="Apple-converted-space">  </span>31062 <span class="Apple-converted-space">    </span>1<span class="Apple-converted-space">  </span>0 Nov22 ?<span class="Apple-converted-space">        </span>00:02:25 ora_j002_orcl</span> <span class="s1">delphix<span class="Apple-converted-space">  </span>31456 <span class="Apple-converted-space">    </span>1<span class="Apple-converted-space">  </span>0 Nov22 ?<span class="Apple-converted-space">        </span>00:00:21 ora_j003_orcl</span></pre> <p><span style="font-family: arial, helvetica, sans-serif; font-size: 12pt;">In our Oracle environment, we can see every background process, with </span>it&#8217;s<span style="font-family: arial, helvetica, sans-serif; font-size: 12pt;"> own </span>pid<span style="font-family: arial, helvetica, sans-serif; font-size: 12pt;"> and along with the process monitor, (</span>pmon<span style="font-family: arial, helvetica, sans-serif; font-size: 12pt;">) </span>db<span style="font-family: arial, helvetica, sans-serif; font-size: 12pt;"> writer, (</span>dbwr<span style="font-family: arial, helvetica, sans-serif; font-size: 12pt;">), log writer, (</span>lgwr<span style="font-family: arial, helvetica, sans-serif; font-size: 12pt;">), we also have </span>archiving<span style="font-family: arial, helvetica, sans-serif; font-size: 12pt;">, (</span>arcx<span style="font-family: arial, helvetica, sans-serif; font-size: 12pt;">), job processing, (j00x) performance and other background processing.  I didn&#8217;t even grep for the Oracle executable, so you recognize how quickly we can see what is running.</span></p> <p class="p1"><span style="font-family: arial, helvetica, sans-serif; font-size: 12pt;">In the SQL Server environment, we only have two processes- our parent process is PID 7 and the child is 9 for SQL Server and nothing to distinguish what they actually are doing.  If we decide to use the </span>pmap<span style="font-family: arial, helvetica, sans-serif; font-size: 12pt;"> utility to view what the parent and child process </span>are<span style="font-family: arial, helvetica, sans-serif; font-size: 12pt;"> doing, we see only </span>sqlservr<span style="font-family: arial, helvetica, sans-serif; font-size: 12pt;"> as the mapping information.</span></p> <pre class="p1"><strong><span class="s1">$ pmap -x 7</span></strong> <span class="s1">7: <span class="Apple-converted-space">  </span><span style="color: #ff0000;">/opt/mssql/bin/sqlservr</span></span> <span class="s1">Address <span class="Apple-converted-space">          </span>Kbytes <span class="Apple-converted-space">t�   </span>RSS <span class="Apple-converted-space">  </span>Dirty Mode<span class="Apple-converted-space">  </span>Mapping</span> <span class="s1">000000762cbcb000 <span class="Apple-converted-space">    </span>888 <span class="Apple-converted-space">    </span>724 <span class="Apple-converted-space">      </span>0 r-x-- sqlservr</span> <span class="s1">000000762cbcb000 <span class="Apple-converted-space">      </span>0 <span class="Apple-converted-space">      </span>0 <span class="Apple-converted-space">      </span>0 r-x-- sqlservr</span> <span class="s1">000000762cea8000<span class="Apple-converted-space">      </span>24<span class="Apple-converted-space">      </span>24<span class="Apple-converted-space">      </span>24 rw--- sqlservr</span> <span class="s1">000000762cea8000 <span class="Apple-converted-space">      </span>0 <span class="Apple-converted-space">      </span>0 <span class="Apple-converted-space">      </span>0 rw--- sqlservr</span> <span class="s1">000000762ceae000 <span class="Apple-converted-space">    </span>300<span class="Apple-converted-space">      </span>20<span class="Apple-converted-space">      </span>20 rw--- <span class="Apple-converted-space">  </span>[ anon ]</span> <span class="s1">000000762ceae000 <span class="Apple-converted-space">      </span>0 <span class="Apple-converted-space">      </span>0 <span class="Apple-converted-space">      </span>0 rw--- <span class="Apple-converted-space">  </span>[ anon ] </span> <span class="s1">0000400000000000 <span class="Apple-converted-space">      </span>4 <span class="Apple-converted-space">      </span>4 <span class="Apple-converted-space">      </span>4 rw--- <span class="Apple-converted-space">  </span>[ anon ]</span> ... <span class="s1">ffffffffff600000 <span class="Apple-converted-space">      </span>4 <span class="Apple-converted-space">      </span>0 <span class="Apple-converted-space">      </span>0 r-x-- <span class="Apple-converted-space">  </span>[ anon ]</span> <span class="s1">ffffffffff600000 <span class="Apple-converted-space">      </span>0 <span class="Apple-converted-space">      </span>0 <span class="Apple-converted-space">      </span>0 r-x-- <span class="Apple-converted-space">  </span>[ anon ]</span> <span class="s1">---------------- ------- ------- ------- </span> <span class="s1">total kB <span class="Apple-converted-space">          </span>80212 <span class="Apple-converted-space">  </span>13660<span class="Apple-converted-space">    </span>8896</span> </pre> <p><span style="font-family: arial, helvetica, sans-serif; font-size: 12pt;">The information mapping is filled with heap, (anon) info, along with libraries and bin executables.  Nothing out of the ordinary here, but nothing of detail, either.</span></p> <p><span style="font-size: 12pt;"><span style="font-family: arial, helvetica, sans-serif;">If I were to do the same for Oracle-  let&#8217;s say the </span></span>pmon<span style="font-size: 12pt;"><span style="font-family: arial, helvetica, sans-serif;"> process, you&#8217;d see more information, including what the process is doing:</span></span></p> <pre class="p1"><strong><span class="s1">$ pmap -x 9331</span></strong> <span class="s1">9331: <span class="Apple-converted-space">  </span><span style="color: #ff0000;">ora_pmon_orcl</span></span> <span class="s1">Address <span class="Apple-converted-space">          </span>Kbytes <span class="Apple-converted-space">    </span>RSS <span class="Apple-converted-space">  </span>Dirty Mode <span class="Apple-converted-space">  </span>Mapping</span> <span class="s1">0000000000400000<span class="Apple-converted-space">  </span>189264 <span class="Apple-converted-space">  </span>12340 <span class="Apple-converted-space">      </span>0 r-x--<span class="Apple-converted-space">  </span>oracle</span> <span class="s1">000000000bed4000<span class="Apple-converted-space">    </span>2020 <span class="Apple-converted-space">    </span>256<span class="Apple-converted-space">      </span>36 rw---<span class="Apple-converted-space">  </span>oracle </span><span class="s1">000000000c0cd000 <span class="Apple-converted-space">    </span>348<span class="Apple-converted-space">      </span>60<span class="Apple-converted-space">      </span>60 rw---<span class="Apple-converted-space">    </span>[ anon ]</span> <span class="s1">000000000c6d5000 <span class="Apple-converted-space">    </span>584<span class="Apple-converted-space">      </span>84<span class="Apple-converted-space">      </span>84 rw---<span class="Apple-converted-space">    </span>[ anon ]</span> <span class="s1">0000000060000000 <span class="Apple-converted-space">  </span>12288 <span class="Apple-converted-space">    </span>356 <span class="Apple-converted-space">    </span>356 rw-s-<span class="Apple-converted-space">    </span>[ shmid=0x50001 ]</span> <span class="s1">0000000060c00000<span class="Apple-converted-space">  </span>364544<span class="Apple-converted-space">    </span>2824<span class="Apple-converted-space">    </span>2824 rw-s-<span class="Apple-converted-space">    </span>[ shmid=0x58002 ]</span> <span class="s1">0000000077000000<span class="Apple-converted-space">    </span>2048 <span class="Apple-converted-space">      </span>4 <span class="Apple-converted-space">      </span>4 rw-s-<span class="Apple-converted-space">    </span>[ shmid=0x60003 ] ... </span></pre> <p><span style="font-family: arial, helvetica, sans-serif; font-size: 12pt;">We would see every library being called, along with the memory usage, etc.  The child process of 9 showed substantially more memory usage, but we&#8217;re left with little to go on for what each process is responsible for in the database engine:</span></p> <pre class="p1"><strong><span class="s1">$ pmap -x 9 </span></strong> <span class="s1">9: <span class="Apple-converted-space">  </span><span style="color: #ff0000;">/opt/mssql/bin/sqlservr </span></span><span class="s1">Address <span class="Apple-converted-space">          </span>Kbytes <span class="Apple-converted-space">    </span>RSS <span class="Apple-converted-space">  </span>Dirty Mode<span class="Apple-converted-space">  </span>Mapping</span> <span class="s1">000000006a400000 <span class="Apple-converted-space">      </span>4 <span class="Apple-converted-space">      </span>4 <span class="Apple-converted-space">      </span>4 r---- system.sfp</span> <span class="s1">000000006a400000 <span class="Apple-converted-space">      </span>0 <span class="Apple-converted-space">      </span>0 <span class="Apple-converted-space">      </span>0 r---- system.sfp</span> <span class="s1">000000006a401000<span class="Apple-converted-space">    </span>1308<span class="Apple-converted-space">    </span>1304 <span class="Apple-converted-space">    </span>164 r-x-- system.sfp</span> ... <span class="s1">ffffffffff600000 <span class="Apple-converted-space">      </span>4 <span class="Apple-converted-space">      </span>0 <span class="Apple-converted-space">      </span>0 r-x-- <span class="Apple-converted-space">  </span>[ anon ]</span> <span class="s1">ffffffffff600000 <span class="Apple-converted-space">      </span>0 <span class="Apple-converted-space">      </span>0 <span class="Apple-converted-space">      </span>0 r-x-- <span class="Apple-converted-space">  </span>[ anon ]</span> <span class="s1">---------------- ------- ------- ------- </span> <span class="s1">total kB <span class="Apple-converted-space">        </span>3064272<span class="Apple-converted-space">  </span>604820<span class="Apple-converted-space">  </span>587480</span></pre> <p><span style="font-family: arial, helvetica, sans-serif; font-size: 12pt;">Digging further into this process and using TOP, we can filter for just the child PID 9 and see the memory usage, but </span>still<span style="font-family: arial, helvetica, sans-serif; font-size: 12pt;"> nothing that tells us what 9 is responsible for.</span></p> <pre class="p1"><span class="s1">$ <strong>top -H -p</strong> 9 </span><span class="s1">top - 22:50:39 up 34 min,<span class="Apple-converted-space">  </span>0 users,<span class="Apple-converted-space">  </span>load average: 0.00, 0.00, 0.00</span> <span class="s1">Threads:<b> 154 </b>total,<b> <span class="Apple-converted-space">  </span>0 </b>running,<b> 154 </b>sleeping,<b> <span class="Apple-converted-space">  </span>0 </b>stopped,<b> <span class="Apple-converted-space">  </span>0 </b>zombie</span> <span class="s1">%Cpu(s):<b><span class="Apple-converted-space">  </span>0.1 </b>us,<b><span class="Apple-converted-space">  </span>0.1 </b>sy,<b><span class="Apple-converted-space">  </span>0.0 </b>ni,<b> 99.8 </b>id,<b><span class="Apple-converted-space">  </span>0.0 </b>wa,<b><span class="Apple-converted-space">  </span>0.0 </b>hi,<b><span class="Apple-converted-space">  </span>0.0 </b>si,<b><span class="Apple-converted-space">  </span>0.0 </b>st</span> <span class="s1">KiB Mem :<b><span class="Apple-converted-space">  </span>4042116 </b>total,<b><span class="Apple-converted-space">  </span>1722984 </b>free,<b> <span class="Apple-converted-space">  </span>678736 </b>used,<b><span class="Apple-converted-space">  </span>1640396 </b>buff/cache</span> <span class="s1">KiB Swap:<b><span class="Apple-converted-space">  </span>1048572 </b>total,<b><span class="Apple-converted-space">  </span>1048572 </b>free,<b><span class="Apple-converted-space">        </span>0 </b>used.<b><span class="Apple-converted-space">  </span>2936276 </b>avail Mem </span><span class="s1"><span class="Apple-converted-space">  </span>PID USER<span class="Apple-converted-space">      </span>PR<span class="Apple-converted-space">  </span>NI<span class="Apple-converted-space">    </span>VIRT<span class="Apple-converted-space">    </span>RES<span class="Apple-converted-space">    </span>SHR S %CPU %MEM <span class="Apple-converted-space">    </span>TIME+ COMMAND </span> <span class="s1">26 root<span class="Apple-converted-space">      </span>20 <span class="Apple-converted-space">  </span>0 3017376 591652<span class="Apple-converted-space">  </span>15800 S<span class="Apple-converted-space">  </span>1.7 14.6 <span class="Apple-converted-space">  </span>0:27.98 sqlservr<span class="Apple-converted-space">                    </span></span><span class="s1"> 22 root<span class="Apple-converted-space">      </span>20 <span class="Apple-converted-space">  </span>0 3017376 591652<span class="Apple-converted-space">  </span>15800 S<span class="Apple-converted-space">  </span>0.3 14.6 <span class="Apple-converted-space">  </span>0:01.41 sqlservr<span class="Apple-converted-space">                   </span></span><span class="s1"> 14 root<span class="Apple-converted-space">      </span>20 <span class="Apple-converted-space">  </span>0 3017376 591652<span class="Apple-converted-space">  </span>15800 S<span class="Apple-converted-space">  </span>0.3 14.6 <span class="Apple-converted-space">  </span>0:00.32 sqlservr<span class="Apple-converted-space">                  </span></span><span class="s1">9 root<span class="Apple-converted-space">      </span>20 <span class="Apple-converted-space">  </span>0 3017376 591652<span class="Apple-converted-space">  </span>15800 S<span class="Apple-converted-space">  </span>0.0 14.6 <span class="Apple-converted-space">  </span>0:00.00 sqlservr<span class="Apple-converted-space">                     </span></span><span class="s1">10 root<span class="Apple-converted-space">      </span>20 <span class="Apple-converted-space">  </span>0 3017376 591652<span class="Apple-converted-space">  </span>15800 S<span class="Apple-converted-space">  </span>0.0 14.6 <span class="Apple-converted-space">  </span>0:00.04 sqlservr<span class="Apple-converted-space">                    </span></span><span class="s1">11 root<span class="Apple-converted-space">      </span>20 <span class="Apple-converted-space">  </span>0 3017376 591652<span class="Apple-converted-space">  </span>15800 S<span class="Apple-converted-space">  </span>0.0 14.6 <span class="Apple-converted-space">  </span>0:00.00 sqlservr<span class="Apple-converted-space">                  </span></span><span class="s1">12 root<span class="Apple-converted-space">      </span>20 <span class="Apple-converted-space">  </span>0 3017376 591652<span class="Apple-converted-space">  </span>15800 S<span class="Apple-converted-space">  </span>0.0 14.6 <span class="Apple-converted-space">  </span>0:00.04 sqlservr<span class="Apple-converted-space">                  </span></span><span class="s1"><span class="Apple-converted-space">    </span>13 root<span class="Apple-converted-space">      </span>20 <span class="Apple-converted-space">  </span>0 3017376 591652<span class="Apple-converted-space">  </span>15800 S<span class="Apple-converted-space">  </span>0.0 14.6 <span class="Apple-converted-space">  </span>0:00.43 sqlservr <span class="Apple-converted-space">     </span></span> ...</pre> <p><span style="font-family: arial, helvetica, sans-serif; font-size: 12pt;">We can verify that there are a number of background processes, but like we discussed in the beginning, there isn&#8217;t any type of assignment letting us know what they are each responsible for.</span></p> <p><span style="font-family: arial, helvetica, sans-serif; font-size: 12pt;">Using the PS utility doesn&#8217;t provide us much more:</span></p> <pre class="p1"><span class="s1">ps -T -p 9</span> <span class="s1"><span class="Apple-converted-space">  </span>PID<span class="Apple-converted-space">  </span>SPID TTY<span class="Apple-converted-space">          </span>TIME CMD </span><span class="s1"><span class="Apple-converted-space">    </span>9 <span class="Apple-converted-space">    </span>9 ?<span class="Apple-converted-space">        </span>00:00:00 sqlservr</span> <span class="s1"><span class="Apple-converted-space">l�   </span>9<span class="Apple-converted-space">     </span>1 ?<span class="Apple-converted-space">        </span>00:00:00 sqlservr</span> <span class="s1"><span class="Apple-converted-space">    </span>9<span class="Apple-converted-space">     2</span> ?<span class="Apple-converted-space">        </span>00:00:00 sqlservr</span> ... <span class="s1"><span class="Apple-converted-space">    </span>9<span class="Apple-converted-space">    </span>12 ?<span class="Apple-converted-space">        </span>00:00:00 sqlservr</span> ... <span class="s1"><span class="Apple-converted-space">    </span>9 <span class="Apple-converted-space">   60</span> ?<span class="Apple-converted-space">        </span>00:00:00 sqlservr</span> <span class="s1"><span class="Apple-converted-space">    </span>9 <span class="Apple-converted-space">   61</span> ?<span class="Apple-converted-space">        </span>00:00:00 sqlservr</span></pre> <p><span style="font-family: arial, helvetica, sans-serif; font-size: 12pt;">It does inform us that there are 56 subprocesses connected to child PID 9 and now I&#8217;ve decided there&#8217;s only one way to get the details behind what is what.  It&#8217;s time to log into the database and look inside:</span></p> <p><span style="font-family: arial, helvetica, sans-serif; font-size: 12pt;">Connect via SQLCMD:</span></p> <pre class="p1">$ /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P ‘&lt;password&gt;’</pre> <p><span style="font-family: arial, helvetica, sans-serif; font-size: 12pt;">Then queried the information I needed, (going old school) from </span>sysprocesses<span style="font-family: arial, helvetica, sans-serif; font-size: 12pt;">, as the DMVs weren&#8217;t as efficient:</span></p> <pre class="p1"><span class="s1">1&gt; select spid, program_name, cmd from MASTER..sysprocesses;</span> <span class="s1">2&gt; go</span> <span class="s1">spid <span class="Apple-converted-space">  </span>program_name <span class="Apple-converted-space">                        </span>cmd<span class="Apple-converted-space">    </span></span> <span class="s1">------ ----------------------------------------------------- </span><span class="s1"> 1<span class="Apple-converted-space">                                          </span>XTP_CKPT_AGENT </span> <span class="s1"> 2<span class="Apple-converted-space">                                          </span>LOG WRITER <span class="Apple-converted-space">     </span></span> <span class="s1"> 3<span class="Apple-converted-space">                                          </span>LAZY WRITER<span class="Apple-converted-space">     </span></span> <span class="s1"> 4<span class="Apple-converted-space">                                          </span>RECOVERY WRITER </span> <span class="s1"> 5<span class="Apple-converted-space">                                          </span>SIGNAL HANDLER  </span><span class="s1"> 6<span class="Apple-converted-space">                                          </span>LOCK MONITOR <span class="Apple-converted-space">   </span></span> <span class="s1"> 7<span class="Apple-converted-space">                                          </span>XIO_RETRY_WORKER</span> <span class="s1"> 8<span class="Apple-converted-space">                                          </span>XIO_LEASE_RENEWA</span> <span class="s1"> 9<span class="Apple-converted-space">                                          </span>BRKR TASK<span class="Apple-converted-space">       </span></span> <span class="s1"> 10<span class="Apple-converted-space">                                         </span>TASK MANAGER <span class="Apple-converted-space">    </span></span><span class="s1"> 11<span class="Apple-converted-space">                                         </span>TASK MANAGER <span class="Apple-converted-space">   </span></span> <span class="s1"> 12<span class="Apple-converted-space">                                         </span>XE TIMER <span class="Apple-converted-space">       </span></span> <span class="s1"> 13<span class="Apple-converted-space">                                         </span>RESOURCE MONITOR</span> <span class="s1"> 14<span class="Apple-converted-space">                                         </span>XE DISPATCHER<span class="Apple-converted-space">   </span></span> <span class="s1"> 15<span class="Apple-converted-space">                                         </span>TASK MANAGER <span class="Apple-converted-space">    </span></span><span class="s1"> 16<span class="Apple-converted-space">                                         </span>TASK MANAGER <span class="Apple-converted-space">   </span></span> <span class="s1"> 17<span class="Apple-converted-space">                                         </span>TRACE QUEUE TASK</span> <span class="s1"> 18<span class="Apple-converted-space">                                         </span>SYSTEM_HEALTH_MO</span> <span class="s1"> 19<span class="Apple-converted-space">                                         </span>RECEIVE<span class="Apple-converted-space">         </span></span> <span class="s1"> 20<span class="Apple-converted-space">                                         </span>TASK MANAGER <span class="Apple-converted-space">   </span></span> <span class="s1"> 21<span class="Apple-converted-space">                                         </span>CHECKPOINT <span class="Apple-converted-space">      </span></span><span class="s1"> 22<span class="Apple-converted-space">                                         </span>TASK MANAGER <span class="Apple-converted-space">   </span></span> <span class="s1"> 23<span class="Apple-converted-space">                                         </span>HADR_AR_MGR_NOTI</span> <span class="s1"> 24<span class="Apple-converted-space">                                         </span>BRKR EVENT HNDLR</span> <span class="s1"> 25<span class="Apple-converted-space">                                         </span>BRKR TASK<span class="Apple-converted-space">       </span></span> <span class="s1"> 26<span class="Apple-converted-space">                                         </span>BRKR TASK<span class="Apple-converted-space">       </span></span> <span class="s1"> 27<span class="Apple-converted-space">                                         </span>BRKR TASK<span class="Apple-converted-space">      </span></span><span class="s1"> 28<span class="Apple-converted-space">                                         </span>TASK MANAGER <span class="Apple-converted-space">   </span></span> <span class="s1"> 29<span class="Apple-converted-space">                                         </span>TASK MANAGER <span class="Apple-converted-space">   </span></span> <span class="s1"> 30<span class="Apple-converted-space">                                         </span>TASK MANAGER <span class="Apple-converted-space">   </span></span> ...<span class="s1"><span class="Apple-converted-space">  </span></span> <span class="s1"> 51 SQLCMD <span class="Apple-converted-space">                            </span>SELECT <span class="Apple-converted-space">         </span></span> <span class="s1"> 52<span class="Apple-converted-space">                                         </span>TASK MANAGER <span class="Apple-converted-space">    </span></span><span class="s1"> 53 SQLServerCEIP<span class="Apple-converted-space">                      </span>AWAITING COMMAND</span> <span class="s1"> 54<span class="Apple-converted-space">                                         </span>TASK MANAGER <span class="Apple-converted-space">   </span></span> <span class="s1"><span class="Apple-converted-space"> ... </span></span><span class="s1"><span class="Apple-converted-space">   </span></span> <span class="s1"> 60<span class="Apple-converted-space">                                         </span>TASK MANAGER <span class="Apple-converted-space">   </span></span> <span class="s1"> 61<span class="Apple-converted-space">                                         </span>TASK MANAGER <span class="Apple-converted-space">   </span></span> <span class="s1">(61 rows affected)</span></pre> <p><span style="font-family: arial, helvetica, sans-serif; font-size: 12pt;">If you were curious what I queried looking at the </span>DMVs<span style="font-family: arial, helvetica, sans-serif; font-size: 12pt;">, here&#8217;s the </span>high level<span style="font-family: arial, helvetica, sans-serif; font-size: 12pt;"> versions:</span></p> <pre class="p1">select thread_address, os_thread_id from sys.dm_os_threads; select session_id, host_process_id, endpoint_id, program_name, client_interface_name, is_user_process, quoted_identifier, database_id, authenticating_database_id from sys.dm_exec_sessions;</pre> <p><span style="font-family: arial, helvetica, sans-serif; font-size: 12pt;">Well, no matter what, that answers some of my questions, but there&#8217;s still a lot more to learn&#8230; <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></span></p> <p>&nbsp;</p> <p>&nbsp;</p> </div><br><br><img src="https://i2.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/ico-tag.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"> Tags:&nbsp;&nbsp;<a href="http://dbakevlar.com/tag/linux/" rel="tag">Linux</a>, <a href="http://dbakevlar.com/tag/processes/" rel="tag">Processes</a>, <a href="http://dbakevlar.com/tag/sql-server/" rel="tag">SQL Server</a><br><br><div style="width:100%"><table align="left" width="100%" cellspacing="0" cellpadding="0" bgcolor="#f1f1f1" border="0px;"> <tbody> <tr bgcolor="#ffffff"><td align="center" width="17%" valign="top"> <span class="sb_title">Del.icio.us</span><br> <a href="http://del.icio.us/post?url=http://dbakevlar.com/2017/12/sql-server-2017-linux-processes/&title=SQL Server 2017 on Linux- Processes"> <img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/delicious.gif?w=840" border="0" align="absmiddle" data-recalc-dims="1"> </a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">Facebook</span><br> <a href="http://www.facebook.com/share.php?u=http://dbakevlar.com/2017/12/sql-server-2017-linux-processes/"><img src="https://i0.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/facebook_icon.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"></a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">TweetThis</span><br> <a href="http://twitthis.com/twit?url=http://dbakevlar.com/2017/12/sql-server-2017-linux-processes/&title=SQL Server 2017 on Linux- Processes"><img src="https://i2.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tweet.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"></a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">Digg</span><br> <a href="http://digg.com/submit?phase=2&url=http://dbakevlar.com/2017/12/sql-server-2017-linux-processes/&title=SQL Server 2017 on Linux- Processes"><img src="https://i0.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/digg.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"></a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">StumbleUpon</span><br> <a href="http://www.stumbleupon.com/submit?url=http://dbakevlar.com/2017/12/sql-server-2017-linux-processes/&title=SQL Server 2017 on Linux- Processes"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/stumble.gif?w=840" border="0" align="absmiddle" data-recalc-dims="1"></a> </td></tr> </tbody></table></div><br><div style="clear:both"></div><div style="background:#EEEEEE; padding:0px 0px 0px 15px; margin:10px 0px 0px 0px;"><div style="padding:5px 0px 5px 0px;"><b>Comments:</b>&nbsp;&nbsp;<a href="http://dbakevlar.com/2017/12/sql-server-2017-linux-processes/#comments">2 comments on this item</a></div><br><div style="clear:both"></div><div style="padding:13px 0px 5px 0px;"><span style="border-bottom:1px dashed #003399;padding-bottom:4px;"><strong>You might be interested in this:</strong></span>&nbsp;&nbsp;<br><ul style="margin:0; padding:0; padding-top:10px; padding-bottom:5px;"><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2010/07/dba-crushes/" >DBA Crushes</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2017/02/can-aws-ec2-instances-exist-without-volumes/" >Can AWS EC2 Instances "Exist" Without Any Volumes?</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2013/12/em12c-managing-incidents-stop-the-insanity-part-ii/" >EM12c- Managing Incidents, Stop the Insanity Part II</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2013/09/em12c-enterprise-monitoring-part-v-warning-management/" >EM12c Enterprise Monitoring, Part V "Warning Management"</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2016/04/ioug-collaborate-2016-c16lv/" >IOUG Collaborate 2016! #C16LV</a></li></ul></div></div><hr style="color:#EBEBEB" /><small>Copyright © <a href="http://dbakevlar.com">DBA Kevlar</a> [<a href="http://dbakevlar.com/2017/12/sql-server-2017-linux-processes/">SQL Server 2017 on Linux- Processes</a>], All Right Reserved. 2017.</small><br><p>The post <a rel="nofollow" href="http://dbakevlar.com/2017/12/sql-server-2017-linux-processes/">SQL Server 2017 on Linux- Processes</a> appeared first on <a rel="nofollow" href="http://dbakevlar.com">DBA Kevlar</a>.</p> dbakevlar http://dbakevlar.com/?p=7468 Mon Dec 04 2017 07:16:10 GMT-0500 (EST) Oracle Exadata 18c and Database Machine X7-2 http://oracle-help.com/articles/oracle-exadata-18c-database-machine-x7-2/ <p><strong>Oracle</strong> <strong>Exadata</strong> Database Machine consists of <strong>Oracle</strong> <strong>Database</strong> servers, <strong>Exadata</strong> Storage <strong>Servers</strong>, and the <strong>network</strong> components to connect to your network.</p> <p><strong>Oracle</strong> <strong>Exadata</strong> <strong>Database</strong> Machine is available as a full rack, half rack, quarter rack or eighth rack. The following table lists the components included for each type of Oracle Exadata Database Machine.</p> <p><strong>Components of Oracle Exadata Database Machines</strong></p> <div id="GUID-1C6D6FCA-6B44-42DE-AA64-EA5F9791F9DC__BHCCDFHB" class="tblformalwide"> <table class="cellalignment19" title="Components of Oracle Exadata Database Machines" summary="Comparison of Oracle Database Machine configurations"> <thead> <tr class="cellalignment2"> <th id="d2859e625" class="cellalignment9">Edition</th> <th id="d2859e628" class="cellalignment9">Oracle Exadata Database Machine Full Rack</th> <th id="d2859e631" class="cellalignment9">Oracle Exadata Database Machine Half Rack</th> <th id="d2859e634" class="cellalignment9">Oracle Exadata Database Machine Quarter Rack</th> <th id="d2859e637" class="cellalignment9">Oracle Exadata Database Machine Eighth Rack</th> </tr> </thead> <tbody> <tr class="cellalignment2"> <td id="d2859e642" class="cellalignment2" headers="d2859e625"><strong>Oracle Exadata Database Machine X7-2</strong></td> <td class="cellalignment2" headers="d2859e642 d2859e628"> <ul> <li>8 database servers</li> <li>14 Exadata Storage Server X7-2 Servers</li> <li>2 Sun Datacenter InfiniBand Switch 36</li> <li>2 redundant PDUs (single phase or three phase, high voltage or low voltage)</li> <li>1 48-port Cisco Nexus 93108-1G Ethernet switch</li> <li>Raw PCI flash capacity: 716.8 TB for EF, or 358.4 TB for HC</li> <li>Raw hard disk capacity: 1680 TB for high capacity disks</li> </ul> </td> <td class="cellalignment2" headers="d2859e642 d2859e631"> <ul> <li>4 database servers</li> <li>7 Exadata Storage Server X7-2 Servers</li> <li>2 Sun Datacenter InfiniBand Switch 36</li> <li>2 redundant PDUs (single phase or three phase, high voltage or low voltage)</li> <li>1 48-port Cisco Nexus 93108-1G Ethernet switch</li> <li>Raw PCI flash capacity: 358.4 TB for EF, or 179.2 TB for HC</li> <li>Raw hard disk capacity: 840 TB for high capacity disks</li> </ul> </td> <td class="cellalignment2" headers="d2859e642 d2859e634"> <ul> <li>2 database servers</li> <li>3 Exadata Storage Server X7-2 Servers</li> <li>2 Sun Datacenter InfiniBand Switch 36</li> <li>2 redundant PDUs (single phase or three phase, high voltage or low voltage)</li> <li>1 48-port Cisco Nexus 93108-1G Ethernet switch</li> <li>Raw PCI flash capacity: 153.6 TB for EF, or 76.8 TB for HC</li> <li>Raw hard disk capacity: 360 TB for high capacity disks</li> </ul> </td> <td class="cellalignment2" headers="d2859e642 d2859e637"> <ul> <li>2 database servers. Each server has: <p>&#8211; 1x 24-core processors with all 24-cores enabled</li> <li>3 Exadata Storage Server X7-2 Servers. Each server has: <p>&#8211; 2 x 10-core processors, each with 5 cores enabled</p> <p>&#8211; 2 PCI flash cards, each with 6.4 TB (raw) Exadata Smart Flash Cache and 6 x 10 TB 7,200 RPM High Capacity disks, OR</p> <p>&#8211; 8 PCI flash drives, 4 enabled, each with 3.2 TB (raw) storage</li> <li>2 Sun Datacenter InfiniBand Switch 36</li> <li>2 redundant PDUs (single phase or three phase, high voltage or low voltage)</li> <li>1 48-port Cisco Nexus 93108-1G Ethernet switch</li> <li>Raw PCI flash capacity: 76.8 TB for EF, or 38.4 TB for HC</li> <li>Raw hard disk capacity: 180 TB for high capacity disks</li> </ul> </td> </tr> <tr class="cellalignment2"> <td id="d2859e746" class="cellalignment2" headers="d2859e625"><strong>Oracle Exadata Database Machine X7-8</strong></td> <td class="cellalignment2" headers="d2859e746 d2859e628"> <ul> <li>2 database servers</li> <li>14 Exadata Storage Server X7-2 Servers</li> <li>2 Sun Datacenter InfiniBand Switch 36</li> <li>2 redundant PDUs (single phase or three phase, high voltage or low voltage)</li> <li>1 48-port Cisco Nexus 93108-1G Ethernet switch</li> <li>Raw PCI flash capacity: 716.8 TB for EF, or 358.4 TB for HC</li> <li>Raw hard disk capacity: 1680 TB for high capacity disks</li> </ul> </td> <td class="cellalignment2" headers="d2859e746 d2859e631">Not applicable</td> <td class="cellalignment2" headers="d2859e746 d2859e634">Not applicable</td> <td class="cellalignment2" headers="d2859e746 d2859e637">Not applicable</td> </tr> </tbody> </table> </div> <p><span style="font-size: 18pt;"><strong>What&#8217;s New in Oracle Exadata Database Machine 18c (18.1.0)</strong></span></p> <p>The following features are new for Oracle Exadata System Software 18c (18.1.0):</p> <ul> <li>In-Memory OLTP and Consolidation Acceleration</li> <li>In-Memory Columnar Caching on Storage Servers</li> <li>Storage Server Cloud Scale Software Update</li> <li>Faster Database Server Software Update</li> <li>Improved Ethernet Performance in Oracle VM</li> <li>Performance Improvement Following Disk Online Completion</li> <li>Improved High Availability After Flash Failures</li> <li>OEDA Command Line Interface</li> </ul> <p><span style="font-size: 18pt;"><strong>Exadata Database Machine X7 New Features</strong></span></p> <p>The following new features are available with Exadata Database Machine X7:</p> <ul> <li>Do-Not-Service LED on Storage Servers</li> <li>Online Flash Disk Replacement Exadata X7 Storage Servers</li> <li>New Configuration for System Partitions on Storage Servers</li> <li>Secure Boot</li> </ul> <p>Thank you for giving your valuable time to read the above information.</p> <p><span class="s1">If you want to be updated with all our articles s</span>end us the Invitation or Follow us:</p> <p><span class="s1"><span class="s2"><strong>Skant Gupta’s</strong> LinkedIn: <a class="jive-link-external-small" href="http://www.linkedin.com/in/skantali/" rel="nofollow">www.linkedin.com/in/skantali/</a></span></span></p> <p class="p4"><span class="s1"><strong>Joel Perez’s</strong> LinkedIn: <a href="http://www.linkedin.com/in/SirDBaaSJoelPerez"><strong>Joel Perez’s Profile</strong></a></span></p> <p><strong>Anuradha’s </strong><span class="s1">LinkedIn: <strong><a href="https://www.linkedin.com/in/dbaanuradhamudgal/">Anuradha’s Profile</a></strong></span></p> <p>LinkedIn Group: <em><strong><a class="js-entity-name entity-name" href="https://www.linkedin.com/groups/12065270" data-app-link="">Oracle Cloud DBAAS</a></strong></em></p> <p>Facebook Page: <em><strong><a href="https://www.facebook.com/oraclehelp">OracleHelp</a></strong></em></p> <p>The post <a rel="nofollow" href="http://oracle-help.com/articles/oracle-exadata-18c-database-machine-x7-2/">Oracle Exadata 18c and Database Machine X7-2</a> appeared first on <a rel="nofollow" href="http://oracle-help.com">ORACLE-HELP</a>.</p> Skant Gupta http://oracle-help.com/?p=2584 Sun Dec 03 2017 05:10:36 GMT-0500 (EST) COLS & COLSEXCEPT FILTER in goldengate http://oracle-help.com/oracle-12c/oracle-12cr2/cols-colsexcept-filter-goldengate/ <p><strong>Introduction:-  </strong> We are going to have look at <strong>COLS &amp; COLSEXCEPT FILTER in goldengate. </strong> First, we have mentioned the technical definition of COLS &amp; COLSEXCEPT FILTER. after completing, we are going to learn about the steps use of<strong>COLS &amp; COLSEXCEPT FILTER in goldengate .</strong> These parameters are used to Replicat only specific columns from the Source to Target. Suppose, let us consider a scenario, we have 10 columns in the source and we need only 9 columns to be replicated to the target table. Yes, this is possible using the above parameters.</p> <p><strong>COLS</strong> and <strong>COLSEXCEPT</strong> control the columns for which data is captured. It means, only data of specific columns are captured and not all the columns. This parameter is valid for Extract Process and should. Upon using this parameter, only the specified columns values are captured by the Extract Process and not all column’s values. COLS This clause specifies the columns whose data needs to be captured. The columns which are used in this COLS clause are captured and the remaining columns will be ignored.</p> <p><strong>COLS</strong> – This is used to include/select set of columns of a table from replication.</p> <p><strong>COLSEXCEPT</strong> – This is used to exclude a set of columns of a table from replication.</p> <h3><strong>EXAMPLE:</strong></h3> <p><a href="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/COL_EXCE1-768x169.jpg"><img data-attachment-id="2579" data-permalink="http://oracle-help.com/oracle-12c/oracle-12cr2/cols-colsexcept-filter-goldengate/attachment/col_exce1-768x169/" data-orig-file="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/COL_EXCE1-768x169.jpg?fit=768%2C169" data-orig-size="768,169" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;TCSKSA1471&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1501067284&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="COL_EXCE1-768&#215;169" data-image-description="" data-medium-file="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/COL_EXCE1-768x169.jpg?fit=300%2C66" data-large-file="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/COL_EXCE1-768x169.jpg?fit=768%2C169" class="alignnone wp-image-2579" src="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/COL_EXCE1-768x169.jpg?resize=434%2C97" alt="" width="434" height="97" srcset="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/COL_EXCE1-768x169.jpg?resize=300%2C66 300w, https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/COL_EXCE1-768x169.jpg?resize=768%2C169 768w, https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/COL_EXCE1-768x169.jpg?resize=60%2C13 60w, https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/COL_EXCE1-768x169.jpg?resize=150%2C33 150w" sizes="(max-width: 434px) 100vw, 434px" data-recalc-dims="1" /></a></p> <p>Here we will extract only EMP_ID, EMP_NAME, DEPTNO and exclude SALCATGOERY, SERVICE_TYPE.</p> <p>COLS and COLEXCPET parameter can be defined either in EXTRACT or EXTRACT PUMP PARAMETER.</p> <h4>COLSEXCEPT:</h4> <p>If we are defining COLSEXCEPT parameter in extract parameter, then extract prm file will look as below.</p> <p><strong>extract parameter file:</strong></p> <p>EXTRACT EXT1<br /> userid ggate_user, password ggate_user<br /> FETCHOPTIONS FETCHPKUPDATECOLS, USESNAPSHOT, USELATESTVERSION<br /> DBOPTIONS ALLOWUNUSEDCOLUMN<br /> DISCARDFILE /u01/ggate/datacapture/EXT4.dsc, APPEND, MEGABYTES 100<br /> EXTTRAIL /u0/ggate/datacapture/T0<br /> WARNLONGTRANS 6H, CHECKINTERVAL 1H<br /> TABLE APPLIANCE.EMPTAG,COLSEXCEPT (SALCATGOERY,SERVICE_TYPE);</p> <p><strong>Extract pump parameter file:</strong></p> <p>As we used COLSEXCEPT filter in the extract, We need to use <strong>PASSTHRU</strong> parameter in pump parameter file.</p> <p>EXTRACT EXT1P<br /> userid ggatebss, password ggatebss#123<br /> PASSTHRU<br /> RMTHOST 172.18.83.472, PORT 7893<br /> RMTTRAIL /ggatebss/oradata/TI2/y0<br /> TABLE APPLIANCE.EMPTAG;</p> <p>But, If we are defining colsexcept parameter in pump parameter, then pump prm file will look as below.i.e no changes to extract file.</p> <p><strong>Extract parameter file:</strong></p> <p>EXTRACT EXT1<br /> userid ggate_user, password ggate_user<br /> FETCHOPTIONS FETCHPKUPDATECOLS, USESNAPSHOT, USELATESTVERSION<br /> DBOPTIONS ALLOWUNUSEDCOLUMN<br /> DISCARDFILE /u01/ggate/datacapture/EXT4.dsc, APPEND, MEGABYTES 100<br /> EXTTRAIL /u01/ggate/datacapture/T0<br /> WARNLONGTRANS 6H, CHECKINTERVAL 1H</p> <p><strong>Extract pump parameter file:</strong></p> <p>As we used COLSEXCEPT filter in the pump itself, No need to add <strong>PASSTHRU</strong> parameter.</p> <div id="crayon-5a22cea842850711318143-3" class="crayon-line"><span class="crayon-e">EXTRACT </span><span class="crayon-e">EXT1P</span></div> <div id="crayon-5a22cea842850711318143-4" class="crayon-line crayon-striped-line"><span class="crayon-e">userid </span><span class="crayon-v">ggatebss</span><span class="crayon-sy">,</span> <span class="crayon-e">password </span><span class="crayon-v">ggatebss</span><span class="crayon-p">#123</span></div> <div id="crayon-5a22cea842850711318143-5" class="crayon-line"><span class="crayon-i">RMTHOST</span> <span class="crayon-cn">172.18.83.472</span><span class="crayon-sy">,</span> <span class="crayon-i">PORT</span> <span class="crayon-cn">7893</span></div> <div id="crayon-5a22cea842850711318143-6" class="crayon-line crayon-striped-line"><span class="crayon-v">RMTTRAIL</span> <span class="crayon-o">/</span><span class="crayon-v">ggatebss</span><span class="crayon-o">/</span><span class="crayon-v">oradata</span><span class="crayon-o">/</span><span class="crayon-v">TI2</span><span class="crayon-o">/</span><span class="crayon-e">y0</span></div> <div id="crayon-5a22cea842850711318143-7" class="crayon-line"><span class="crayon-e">TABLE </span><span class="crayon-v">APPLIANCE</span><span class="crayon-sy">.</span><span class="crayon-v">EMPTAG</span><span class="crayon-sy">,</span><span class="crayon-e">COLSEXCEPT</span> <span class="crayon-sy">(</span><span class="crayon-v">SALCATGOERY</span><span class="crayon-sy">,</span><span class="crayon-v">SERVICE_TYPE</span><span class="crayon-sy">)</span><span class="crayon-sy">;</span></div> <div id="crayon-5a22cea842850711318143-8" class="crayon-line crayon-striped-line"></div> <div><a href="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/COL_EXCE33-768x479.jpg"><img data-attachment-id="2580" data-permalink="http://oracle-help.com/oracle-12c/oracle-12cr2/cols-colsexcept-filter-goldengate/attachment/col_exce33-768x479/" data-orig-file="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/COL_EXCE33-768x479.jpg?fit=768%2C479" data-orig-size="768,479" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;TCSKSA1471&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1501075991&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="COL_EXCE33-768&#215;479" data-image-description="" data-medium-file="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/COL_EXCE33-768x479.jpg?fit=300%2C187" data-large-file="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/COL_EXCE33-768x479.jpg?fit=768%2C479" class="alignnone wp-image-2580" src="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/COL_EXCE33-768x479.jpg?resize=412%2C257" alt="" width="412" height="257" srcset="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/COL_EXCE33-768x479.jpg?resize=300%2C187 300w, https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/COL_EXCE33-768x479.jpg?resize=768%2C479 768w, https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/COL_EXCE33-768x479.jpg?resize=60%2C37 60w, https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/12/COL_EXCE33-768x479.jpg?resize=150%2C94 150w" sizes="(max-width: 412px) 100vw, 412px" data-recalc-dims="1" /></a></div> <div> <h4>COLS:</h4> <p>Instead of COLSEXCEPT, if you are using COLS , then the only change is</p> <p><em><strong>COLSEXCEPT (SALCATGOERY,SERVICE_TYPE); – &gt;&gt; COLS(EMP_ID,EMP_NAME,DEPTNO);</strong></em></p> <p><a href="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/COL_EXCE33-768x479-1.jpg"><img data-attachment-id="2581" data-permalink="http://oracle-help.com/oracle-12c/oracle-12cr2/cols-colsexcept-filter-goldengate/attachment/col_exce33-768x479-2/" data-orig-file="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/COL_EXCE33-768x479-1.jpg?fit=768%2C479" data-orig-size="768,479" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;TCSKSA1471&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1501075991&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="COL_EXCE33-768&#215;479" data-image-description="" data-medium-file="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/COL_EXCE33-768x479-1.jpg?fit=300%2C187" data-large-file="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/COL_EXCE33-768x479-1.jpg?fit=768%2C479" class="alignnone wp-image-2581" src="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/COL_EXCE33-768x479-1.jpg?resize=388%2C242" alt="" width="388" height="242" srcset="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/COL_EXCE33-768x479-1.jpg?resize=300%2C187 300w, https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/COL_EXCE33-768x479-1.jpg?w=768 768w, https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/COL_EXCE33-768x479-1.jpg?resize=60%2C37 60w, https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/12/COL_EXCE33-768x479-1.jpg?resize=150%2C94 150w" sizes="(max-width: 388px) 100vw, 388px" data-recalc-dims="1" /></a></p> <p><strong>RESTRICTIONS</strong>:</p> <ol> <li>Do not exclude key columns, and do not use COLSEXCEPT to exclude columns that contain unsupported data types.</li> <li>COLS should include the column used in KEYCOL in replicat.</li> </ol> <p>&nbsp;</p> </div> <p>The post <a rel="nofollow" href="http://oracle-help.com/oracle-12c/oracle-12cr2/cols-colsexcept-filter-goldengate/">COLS &amp; COLSEXCEPT FILTER in goldengate</a> appeared first on <a rel="nofollow" href="http://oracle-help.com">ORACLE-HELP</a>.</p> Anuradha Mudgal http://oracle-help.com/?p=2577 Sat Dec 02 2017 11:20:26 GMT-0500 (EST) Schema replication using oracle goldengate http://oracle-help.com/goldengate/schema-replication-using-oracle-goldengate/ <p>Being a  DBA we are must aware of replication in DATA field.  In this tutorial, we will explain how to do schema replication in goldengate. Schema replication means, replicating all the tables of a schema. This table explains about the HOST IP , DB_NAME, Goldengate Process, SCHEMA To Repulicat. All steps mention the way to replication in goldengate.</p> <table style="height: 67px" width="1015"> <tbody> <tr> <td style="width: 332px"></td> <td style="width: 332px"> SOURCE</td> <td style="width: 333.333px">TERGET</td> </tr> <tr> <td style="width: 332px"> HOST IP</td> <td style="width: 332px">172.65.47.32</td> <td style="width: 333.333px">172.41.32.24</td> </tr> <tr> <td style="width: 332px">DB_NAME</td> <td style="width: 332px">SRCDB</td> <td style="width: 333.333px">TRGDB</td> </tr> <tr> <td style="width: 332px">GG Process</td> <td style="width: 332px">EX_C1 (extract)</p> <p>EX_C1P((extract pump)</td> <td style="width: 333.333px">REP_S1(replicat)</td> </tr> <tr> <td style="width: 332px">SCHEMA TO REPULICAT</td> <td style="width: 332px">COMP_USER.*</td> <td style="width: 333.333px">COMP_USER.*</td> </tr> </tbody> </table> <h4>1. add supplemental for all tables of a schema [ SOURCE ]</h4> <p><em><strong>add trandata &lt;schema_name&gt;.*</strong></em></p> <p>GGSCI &gt; dblogin userid ggate_user, password ggate_user<br /> Successfully logged into database.</p> <p>GGSCI &gt; ADD TRANDATA COMP_USR.*</p> <p>Logging of supplemental redo data enabled for table COMP_USR.TAB1.<br /> TRANDATA for scheduling columns has been added on table &#8216;COMP_USR.TAB1&#8217;.<br /> TRANDATA for instantiation CSN has been added on table &#8216;COMP_USR.TAB1&#8217;.<br /> Logging of supplemental redo data enabled for table COMP_USR.TAB2.<br /> TRANDATA for scheduling columns has been added on table &#8216;COMP_USR.TAB2&#8217;.<br /> TRANDATA for instantiation CSN has been added on table &#8216;COMP_USR.TAB2&#8217;.<br /> Logging of supplemental redo data enabled for table COMP_USR.TAB3.<br /> TRANDATA for scheduling columns has been added on table &#8216;COMP_USR.TAB3&#8217;.<br /> TRANDATA for instantiation CSN has been added on table &#8216;COMP_USR.TAB3&#8217;.</p> <h4>2. Prepare extract file [ SOURCE ]</h4> <p>ggsci&gt; edit params EX_C1<br /> EXTRACT EX_C1<br /> SETENV (ORACLE_SID=&#8221;SRCDB&#8221;)<br /> SETENV (ORACLE_HOME=&#8221;/oracle/app/oracle/product/12.1.0.2/dbhome_1&#8243;)<br /> userid ggate_user, password ggate_user<br /> FETCHOPTIONS FETCHPKUPDATECOLS, USESNAPSHOT, USELATESTVERSION<br /> DBOPTIONS ALLOWUNUSEDCOLUMN<br /> CACHEMGR CACHESIZE 500M<br /> DISCARDFILE /ggate_user/DISCARD/CRM_B2B1.dsc, APPEND, MEGABYTES 100<br /> EXTTRAIL /ggate_user/TRAILFILE/S2<br /> WARNLONGTRANS 6H, CHECKINTERVAL 1H<br /> TABLE COMP_USR.*;</p> <h4>3. Prepare extract pump parameter file [ SOURCE ]</h4> <p>ggsci&gt;edit params EX_C1P</p> <p>EXTRACT EX_C1P<br /> userid ggate_user, password ggate_user<br /> SETENV (ORACLE_HOME=&#8221;/oracle/app/oracle/product/12.1.0.2/dbhome_1&#8243;)<br /> RMTHOST 172.41.32.42, MGRPORT 7809<br /> RMTTRAIL /ggate/install/datacapture/T2<br /> DBOPTIONS ALLOWUNUSEDCOLUMN<br /> TABLE COMP_USR.*;</p> <h4>4. Add extract process [SOURCE]</h4> <p>add extract EX_C1,tranlog,begin now</p> <p>EXTRACT added.</p> <h4>5. Add the extract trail [SOURCE]</h4> <p>GGSCI &gt; add exttrail /ggate_user/TRAILFILE/S2,extract EX_C1<br /> EXTTRAIL added.</p> <h4>6. Add the extract pump process [SOURCE]</h4> <p>GGSCI &gt; add extract EX_C1P, exttrailsource /ggate_user/TRAILFILE/S2<br /> EXTRACT added.</p> <h4>7. Add remote trail [SOURCE]</h4> <p>GGSCI &gt; add rmttrail /ggate/install/datacapture/T2,extract EX_C1P<br /> RMTTRAIL added.</p> <h4>8. Prepare replicat file [ TARGET ]</h4> <p>Here we have to add HANDLECOLLISION parameter to resolve conflicts for the transactions during initial loading. We will remove this parameter once the lag is cleared after initial loading.</p> <p>ggsci&gt; edit params REP_S1</p> <p>REPLICAT REP_S1<br /> SETENV (ORACLE_HOME = &#8220;/u01/app/oracle/product/12.1.0/db_1&#8221;)<br /> SETENV (ORACLE_SID = &#8220;TRGDB&#8221;)<br /> USERID ggate_user, PASSWORD ggate_user<br /> DBOPTIONS SUPPRESSTRIGGERS,DEFERREFCONST<br /> ASSUMETARGETDEFS<br /> HANDLECOLLISIONS<br /> DISCARDFILE /ggate/install/datacapture/discardcrm.dsc,append<br /> MAP COMP_USR.*,TARGET COMP_USR.*;</p> <h4>9. add the replicat process [ TARGET ]</h4> <p>GGSCI &gt; add replicat REPR1, exttrail /ggate/install/datacapture/T2<br /> REPLICAT added.</p> <h4>10.Start the extract and pump process [ SOURCE ]</h4> <p>START EX_C1</p> <p>START EX_C1P</p> <p>GGSCI &gt; info all</p> <p>Program Status Group Lag at Chkpt Time Since Chkpt</p> <p>MANAGER RUNNING<br /> EXTRACT RUNNING EX_C1 00:00:00 00:00:03<br /> EXTRACT RUNNING EX_C1P 00:00:00 00:02:34</p> <h4>11. Initial loading:</h4> <p>Now export this schema using expdp in the source database and import in the target database.</p> <p>&#8212; SOURCE DB</p> <p>expdp dumpfile=initload.dmp logfile=initload.log directory=DIRT schemas=COMP_USR</p> <p>Username: / as sysdba</p> <p>Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 &#8211; 64bit Production<br /> With the Partitioning, OLAP, Data Mining and Real Application Testing options<br /> FLASHBACK automatically enabled to preserve database integrity.<br /> Starting &#8220;SYS&#8221;.&#8221;SYS_EXPORT_TABLE_02&#8243;: /******** AS SYSDBA dumpfile=initload.dmp logfile=initload.log directory=DIRT schemas=COMP_USR<br /> Estimate in progress using BLOCKS method&#8230;<br /> Processing object type TABLE_EXPORT/TABLE/TABLE_DATA<br /> Total estimation using BLOCKS method: 16 MB<br /> Processing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS<br /> . . exported &#8220;COMP_USR&#8221;.&#8221;TAB1&#8243; 3.473 MB 90323 rows<br /> . . exported &#8220;COMP_USR&#8221;.&#8221;TAB2&#8243; 3.473 MB 90323 rows<br /> . . exported &#8220;COMP_USR&#8221;.&#8221;TAB3&#8243; 3.473 MB 90323 rows<br /> Master table &#8220;SYS&#8221;.&#8221;SYS_EXPORT_TABLE_02&#8243; successfully loaded/unloaded<br /> ******************************************************************************<br /> Dump file set for SYS.SYS_EXPORT_TABLE_02 is:<br /> /archive/dump/initload.dmp</p> <p>&#8212; TRANSFER THE DUMP TO TARGET SERVER:</p> <p>scp oracle@**********:/archive/dump/initload.dmp .</p> <p>&#8212; -IMPORT IN TARGET DATABASE:</p> <p>impdp dumpfile=initload.dmp logfile=imp_initialload.log directory=FULL_REFRESH</p> <p>Import: Release 12.1.0.2.0 &#8211; Production on Sun Jul 23 12:01:58 2017</p> <p>Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved.</p> <p>Username: / as sysdba</p> <p>Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 &#8211; 64bit Production<br /> With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options<br /> Master table &#8220;SYS&#8221;.&#8221;SYS_IMPORT_FULL_04&#8243; successfully loaded/unloaded<br /> import done in AL32UTF8 character set and AL16UTF16 NCHAR character set<br /> export done in AL32UTF8 character set and UTF8 NCHAR character set<br /> WARNING: possible data loss in character set conversions<br /> Starting &#8220;SYS&#8221;.&#8221;SYS_IMPORT_FULL_04&#8243;: /******** AS SYSDBA dumpfile=initload.dmp logfile=imp_initialload.log directory=FULL_REFRESH<br /> Processing object type TABLE_EXPORT/TABLE/PROCACT_INSTANCE<br /> Processing object type TABLE_EXPORT/TABLE/TABLE<br /> Processing object type TABLE_EXPORT/TABLE/TABLE_DATA<br /> . . imported &#8220;COMP_USR&#8221;.&#8221;TAB1&#8243; 3.473 MB 90323 rows<br /> . . imported &#8220;COMP_USR&#8221;.&#8221;TAB2&#8243; 3.473 MB 90323 rows<br /> . . imported &#8220;COMP_USR&#8221;.&#8221;TAB3&#8243; 3.473 MB 90323 rows<br /> Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT</p> <h4>12. Start the replicat: [ SOURCE ]</h4> <p>GGSCI &gt; start REP_S1</p> <p>Sending START request to MANAGER &#8230;<br /> REPLICAT REP_S1 starting</p> <p>Use LAG command to monitor the lag at replicat.</p> <p>GGSCI &gt; lag replicat REP_S1</p> <p>2017-07-24 15:33:12 INFO OGG-14054 Lag from heartbeat table requires DBLOGIN.</p> <p>Sending GETLAG request to REPLICAT REPR1 &#8230;<br /> Last record lag 6 seconds.</p> <p>GGSCI &gt; !</p> <p>2017-07-24 15:33:12 INFO OGG-14054 Lag from heartbeat table requires DBLOGIN.</p> <p>Sending GETLAG request to REPLICAT REP_S1 &#8230;<br /> Last record lag 6 seconds.</p> <p>At EOF, no more records to process. &#8212;&#8212;&#8211; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; This indicates lag is zero.</p> <p>As lag is zero now, Remove the handlescollision parameter and restart the replicat.</p> <h4>13. Remove handlecollison parameter and restart replicat[ TARGET ]</h4> <p>REPLICAT REP_S1<br /> SETENV (ORACLE_HOME = &#8220;/u01/app/oracle/product/12.1.0/db_1&#8221;)<br /> SETENV (ORACLE_SID = &#8220;TRGDB&#8221;)<br /> USERID ggate_user, PASSWORD ggate_user<br /> DBOPTIONS SUPPRESSTRIGGERS,DEFERREFCONST<br /> ASSUMETARGETDEFS<br /> &#8211;HANDLECOLLISIONS<br /> DISCARDFILE /ggate/install/datacapture/discardcrm.dsc,append<br /> MAP COMP_USR.*,TARGET COMP_USR.*;</p> <p>ggsci&gt;stop REP_S1</p> <p>ggsci&gt;start REP_S1</p> <p>goldengate Schema replication has been completed.</p> <p>The post <a rel="nofollow" href="http://oracle-help.com/goldengate/schema-replication-using-oracle-goldengate/">Schema replication using oracle goldengate</a> appeared first on <a rel="nofollow" href="http://oracle-help.com">ORACLE-HELP</a>.</p> Anuradha Mudgal http://oracle-help.com/?p=2572 Sat Dec 02 2017 10:51:32 GMT-0500 (EST) Oracle Managed Kubernetes Cloud– First Steps with Automated Deployment using Wercker Pipelines https://technology.amis.nl/2017/12/02/oracle-managed-kubernetes-cloud-first-steps-with-automated-deployment-using-wercker-pipelines/ <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image.png?ssl=1"><img width="702" height="124" title="image" align="right" style="float: right; display: inline; background-image: none;" alt="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image_thumb.png?resize=702%2C124&#038;ssl=1" border="0" data-recalc-dims="1"></a>Oracle announced a managed Kubernetes Cloud service during Oracle OpenWorld 2017. This week, I had an opportunity to work with this new container native cloud offering. It is quite straightforward:</p> <p>Through the Wercker console</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image-1.png?ssl=1"><img width="702" height="98" title="image" style="margin: 0px auto; float: none; display: block; background-image: none;" alt="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image_thumb-1.png?resize=702%2C98&#038;ssl=1" border="0" data-recalc-dims="1"></a></p> <p>a new Cluster can be created on a Oracle BareMetal Cloud (aka Oracle Cloud Infrastructure) environment. The cloud credentials are provided</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/SNAGHTMLff83abb.png?ssl=1"><img width="584" height="412" title="SNAGHTMLff83abb" style="margin: 0px auto; float: none; display: block; background-image: none;" alt="SNAGHTMLff83abb" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/SNAGHTMLff83abb_thumb.png?resize=584%2C412&#038;ssl=1" border="0" data-recalc-dims="1"></a></p> <p>Name and K8S version are specified:</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image-2.png?ssl=1"><img width="702" height="259" title="image" style="margin: 0px auto; float: none; display: block; background-image: none;" alt="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image_thumb-2.png?resize=702%2C259&#038;ssl=1" border="0" data-recalc-dims="1"></a></p> <p>The Cluster Size is configured:</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image-3.png?ssl=1"><img width="702" height="354" title="image" style="margin: 0px auto; float: none; display: block; background-image: none;" alt="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image_thumb-3.png?resize=702%2C354&#038;ssl=1" border="0" data-recalc-dims="1"></a></p> <p></p> <p>And the node configuration is indicated:</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image-4.png?ssl=1"><img width="702" height="258" title="image" style="margin: 0px auto; float: none; display: block; background-image: none;" alt="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image_thumb-4.png?resize=702%2C258&#038;ssl=1" border="0" data-recalc-dims="1"></a></p> <p>Subsequently, Oracle will rollout a Kubernetes cluster to the designated Cloud Infrastructure – according to these specifications. </p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/SNAGHTML1010ac4c.png?ssl=1"><img width="622" height="412" title="SNAGHTML1010ac4c" style="margin: 0px auto; float: none; display: block; background-image: none;" alt="SNAGHTML1010ac4c" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/SNAGHTML1010ac4c_thumb.png?resize=622%2C412&#038;ssl=1" border="0" data-recalc-dims="1"></a></p> <p>The Cluster’s Address us highlighted in this screenshot. This endpoint will be required later on to configure the automated deployment pipeline.</p> <p>This cluster can be managed through the Kubernetes Dashboard. Deployments to the cluster can be done using the normal means – such as the kubectl command line tool. Oracle recommends automating all deployments, using the Wercker pipelines. I will illustrate how that is done in this article. </p> <p>The source code can be found on GitHub: <a title="https://github.com/lucasjellema/the-simple-app" href="https://github.com/lucasjellema/the-simple-app">https://github.com/lucasjellema/the-simple-app</a>. Be warned – the code is extremely simple.</p> <p>The steps are: (assuming one already has a GitHub account as well as a Wercker account and a local kubectl installation)</p> <ol> <li>generate a personal token in the Wercker account (to be used for Wercker’s direct interactions with the Kubernetes cluster)</li> <li>prepare (local) Kubernetes configuration file – in order to work against the cluster using local kubectl commandline </li> <li>implement the application that is to be deployed onto the Kubernetes cluster – for example a simple Node application</li> <li>create the wercker.yml file (along with templates for Kubernetes deployment files) that describes the build steps that apply to the application and its deployment to Kubernetes</li> <li>push the application to a GitHub repository</li> <li>create a <em>release </em>in the Wercker console – associated with the GitHub Repository</li> <li>define the Wercker Pipelines for the application – using the Pipelines from the wercker.yml file</li> <li>define the automation pipeline – a chain of the pipelines defined in the previous step, triggered by event such as a commit in the GitHub repo </li> <li>define environment variables – specifically the Kubernetes endpoint and the user token to use for connecting to the Kubernetes cluster from the automated pipeline </li> <li>trigger the automation pipeline – for example through a commit to GitHub</li> <li>verify in Kubernetes – dashboard or command line – that the application is deployed and determine the public endpoint </li> <li>access the application </li> <li>iterate through steps 10..12 while evolving the application</li> </ol> <p></p> <h3>Generate Wercker Token</h3> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image-5.png?ssl=1"><img width="702" height="258" title="image" style="margin: 0px auto; float: none; display: block; background-image: none;" alt="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image_thumb-5.png?resize=702%2C258&#038;ssl=1" border="0" data-recalc-dims="1"></a></p> <p></p> <h3>Prepare local Kubernetes Configuration file</h3> <p>Create a config file in the users/&lt;current user&gt;/.kube directory which contains the server address for the Kubernetes cluster and the token generated in the Wercker user settings. The file looks something like this screenshot:</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/SNAGHTML10176445.png?ssl=1"><img width="702" height="352" title="SNAGHTML10176445" style="margin: 0px auto; float: none; display: block; background-image: none;" alt="SNAGHTML10176445" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/SNAGHTML10176445_thumb.png?resize=702%2C352&#038;ssl=1" border="0" data-recalc-dims="1"></a></p> <p></p> <p>Verify the correctness of the config file by running for example: </p> <blockquote> <p>kubectl version</p> </blockquote> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image-6.png?ssl=1"><img width="702" height="109" title="image" style="margin: 0px auto; float: none; display: block; background-image: none;" alt="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image_thumb-6.png?resize=702%2C109&#038;ssl=1" border="0" data-recalc-dims="1"></a></p> <p>Or any other kubectl command.</p> <p></p> <ol><!--StartFragment--> </ol> <h3>Implement the application that is to be deployed onto the Kubernetes<br /> cluster</h3> <p>In this example the application is a very simple Node/Express application that handles two types of HTTP requests: a GET request to the url path /about and a POST request to /simple-app. There is nothing special about the aplication – in fact it is thoroughly underwhelming. The functionality consists of returning a result that proves that application has been invoked successfully – and not much more.</p> <p>The application source is found in <a title="https://github.com/lucasjellema/the-simple-app" href="https://github.com/lucasjellema/the-simple-app">https://github.com/lucasjellema/the-simple-app</a> – mainly in the file app.js.</p> <p>After implementing the app.js I can run and invoke the application locally:</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image-7.png?ssl=1"><img width="669" height="412" title="image" style="margin: 0px auto; float: none; display: block; background-image: none;" alt="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image_thumb-7.png?resize=669%2C412&#038;ssl=1" border="0" data-recalc-dims="1"></a></p> <p></p> <h3>Create the wercker.yml file for the application</h3> <p>The wercker.yml file provides instructions to the Wercker engine on how to execute the build and deploy steps. This step makes use of parameters the values for which are provided by the Wercker build engine at run time, partially from the values defined for environment variables at organization, application or pipeline level.</p> <p>Here three pipelines are shown:</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image-8.png?ssl=1"><img width="485" height="412" title="image" style="margin: 0px auto; float: none; display: block; background-image: none;" alt="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image_thumb-8.png?resize=485%2C412&#038;ssl=1" border="0" data-recalc-dims="1"></a></p> <p>The <em>build </em>pipeline use the node:6.10 base Docker container image as its starting point. It adds the source code, executes npm install and generates TLS key and certificate. The <em>push-to-releases </em>pipeline stores the build outcome (the container image) in the configured container registry. The <em>deploy-to-oke</em> (oke == Oracle Kubernetes Engine) pipeline takes the container image and deploys it to the Kubernetes cluster – using the Kubernetes template files, as indicated in this screenshot.</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image-9.png?ssl=1"><img width="702" height="307" title="image" style="margin: 0px auto; float: none; display: block; background-image: none;" alt="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image_thumb-9.png?resize=702%2C307&#038;ssl=1" border="0" data-recalc-dims="1"></a>&nbsp;</p> <p>Along with the wercker.yml file we provide templates for Kubernetes deployment<br /> files that describe the<br /> deployment to Kubernetes.</p> <p>The kubernetes-deployment.yml.template defines the Deployment (based on the container image with a single replica) and the service – exposing port 3000 from the container.</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image-10.png?ssl=1"><img width="372" height="412" title="image" style="margin: 0px auto; float: none; display: block; background-image: none;" alt="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image_thumb-10.png?resize=372%2C412&#038;ssl=1" border="0" data-recalc-dims="1"></a></p> <ol> </ol> <p>The ingress.yml.template file defines how the service is to exposed through the cluster ingress <em>nginx</em>.</p> <h3>Push the application – including the yml files for Wercker and Kubernetes to a GitHub repository</h3> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image-11.png?ssl=1"><img width="702" height="411" title="image" style="margin: 0px auto; float: none; display: block; background-image: none;" alt="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image_thumb-11.png?resize=702%2C411&#038;ssl=1" border="0" data-recalc-dims="1"></a></p> <h3>Create a <em>release </em>in the Wercker console – associated with the GitHub Repository</h3> <p></p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image-12.png?ssl=1"><img width="702" height="319" title="image" style="margin: 0px auto; float: none; display: block; background-image: none;" alt="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image_thumb-12.png?resize=702%2C319&#038;ssl=1" border="0" data-recalc-dims="1"></a></p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image-13.png?ssl=1"><img width="665" height="412" title="image" style="margin: 0px auto; float: none; display: block; background-image: none;" alt="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image_thumb-13.png?resize=665%2C412&#038;ssl=1" border="0" data-recalc-dims="1"></a></p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image-14.png?ssl=1"><img width="665" height="412" title="image" style="margin: 0px auto; float: none; display: block; background-image: none;" alt="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image_thumb-14.png?resize=665%2C412&#038;ssl=1" border="0" data-recalc-dims="1"></a></p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image-15.png?ssl=1"><img width="665" height="412" title="image" style="margin: 0px auto; float: none; display: block; background-image: none;" alt="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image_thumb-15.png?resize=665%2C412&#038;ssl=1" border="0" data-recalc-dims="1"></a></p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image-16.png?ssl=1"><img width="665" height="412" title="image" style="margin: 0px auto; float: none; display: block; background-image: none;" alt="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image_thumb-16.png?resize=665%2C412&#038;ssl=1" border="0" data-recalc-dims="1"></a></p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image-17.png?ssl=1"><img width="665" height="412" title="image" style="margin: 0px auto; float: none; display: block; background-image: none;" alt="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image_thumb-17.png?resize=665%2C412&#038;ssl=1" border="0" data-recalc-dims="1"></a></p> <p></p> <h3>Define the Wercker Pipelines for the application – using the Pipelines from the wercker.yml file</h3> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image-18.png?ssl=1"><img width="461" height="412" title="image" style="margin: 0px auto; float: none; display: block; background-image: none;" alt="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image_thumb-18.png?resize=461%2C412&#038;ssl=1" border="0" data-recalc-dims="1"></a></p> <p>Click on New Pipeline for each of the build pipelines in the wercker.yml file. Note: the <em>build </em>pipeline is predefined.</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image-19.png?ssl=1"><img width="702" height="304" title="image" style="margin: 0px auto; float: none; display: block; background-image: none;" alt="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image_thumb-19.png?resize=702%2C304&#038;ssl=1" border="0" data-recalc-dims="1"></a></p> <p></p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image-20.png?ssl=1"><img width="702" height="315" title="image" style="margin: 0px auto; float: none; display: block; background-image: none;" alt="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image_thumb-20.png?resize=702%2C315&#038;ssl=1" border="0" data-recalc-dims="1"></a></p> <p></p> <p></p> <h3>Define the automation pipeline </h3> <p>– a chain of the pipelines defined in the previous step, triggered by event such as a commit in the GitHub repo </p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image-21.png?ssl=1"><img width="357" height="412" title="image" style="margin: 0px auto; float: none; display: block; background-image: none;" alt="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image_thumb-21.png?resize=357%2C412&#038;ssl=1" border="0" data-recalc-dims="1"></a></p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image-22.png?ssl=1"><img width="702" height="278" title="image" style="margin: 0px auto; float: none; display: block; background-image: none;" alt="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image_thumb-22.png?resize=702%2C278&#038;ssl=1" border="0" data-recalc-dims="1"></a></p> <p></p> <h3>Define environment variables </h3> <p>– specifically the Kubernetes endpoint and the user token to use for connecting to the Kubernetes cluster from the automated pipeline</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/SNAGHTML10a57e52.png?ssl=1"><img width="702" height="278" title="SNAGHTML10a57e52" style="margin: 0px auto; float: none; display: block; background-image: none;" alt="SNAGHTML10a57e52" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/SNAGHTML10a57e52_thumb.png?resize=702%2C278&#038;ssl=1" border="0" data-recalc-dims="1"></a></p> </p> <h3>Trigger the automation pipeline – for example through a commit to GitHub</h3> <p></p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image-23.png?ssl=1"><img width="702" height="297" title="image" style="margin: 0px auto; float: none; display: block; background-image: none;" alt="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image_thumb-23.png?resize=702%2C297&#038;ssl=1" border="0" data-recalc-dims="1"></a></p> <p><a href="https://technology.amis.nl/wp-content/uploads/2017/12/image-24.png"><br /></a></p> <p>When the changes are pushed to GitHub, the web hook fires and the build pipeline in Wercker is triggered.</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image-25.png?ssl=1"><img width="702" height="287" title="image" style="margin: 0px auto; float: none; display: block; background-image: none;" alt="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image_thumb-24.png?resize=702%2C287&#038;ssl=1" border="0" data-recalc-dims="1"></a></p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image-24.png?ssl=1"><img width="702" height="296" title="image" style="margin: 0px auto; float: none; display: block; background-image: none;" alt="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image_thumb-25.png?resize=702%2C296&#038;ssl=1" border="0" data-recalc-dims="1"></a></p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image-26.png?ssl=1"><img width="702" height="396" title="image" style="margin: 0px auto; float: none; display: block; background-image: none;" alt="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image_thumb-26.png?resize=702%2C396&#038;ssl=1" border="0" data-recalc-dims="1"></a></p> <p>I even received an email from Wercker, alerting me about this issue:</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image-27.png?ssl=1"><img width="542" height="412" title="image" style="margin: 0px auto; float: none; display: block; background-image: none;" alt="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image_thumb-27.png?resize=542%2C412&#038;ssl=1" border="0" data-recalc-dims="1"></a></p> <p>It turns out I forgot to set the values for the environment variables KUBERNETES_MASTER and KUBERNETES_TOKEN. In this article it is the previous step, preceding this one, in reality I forgot to do it and ran into this error as a result.</p> <p>After setting the correct values, I triggered the pipeline once more, with better luck this time.</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image-28.png?ssl=1"><img width="702" height="378" title="image" style="margin: 0px auto; float: none; display: block; background-image: none;" alt="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image_thumb-28.png?resize=702%2C378&#038;ssl=1" border="0" data-recalc-dims="1"></a></p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image-29.png?ssl=1"><img width="702" height="348" title="image" style="margin: 0px auto; float: none; display: block; background-image: none;" alt="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image_thumb-29.png?resize=702%2C348&#038;ssl=1" border="0" data-recalc-dims="1"></a></p> <p></p> <h3>Verify in Kubernetes – dashboard or command line – that the application is deployed </h3> <p>The deployment from Wercker to the Kubernetes Cluster was successful. Unfortunately, the Node application itself did not start as desired. And I was informed about this on the overview page for the relevant namespace – lucasjellema – on the Kubernetes dashboard – that I accessed by running</p> <blockquote> <p>kubectl proxy<a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image-30.png?ssl=1"><img width="350" height="56" title="image" style="margin: 0px auto; float: none; display: block; background-image: none;" alt="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image_thumb-30.png?resize=350%2C56&#038;ssl=1" border="0" data-recalc-dims="1"></a></p> </blockquote> <p>on my laptop and opening my browser at: <a href="http://127.0.0.1:8001/ui">http://127.0.0.1:8001/ui</a>. </p> <p><a href="https://technology.amis.nl/wp-content/uploads/2017/12/image-30.png"><br /></a></p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image-31.png?ssl=1"><img width="702" height="315" title="image" style="margin: 0px auto; float: none; display: block; background-image: none;" alt="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image_thumb-31.png?resize=702%2C315&#038;ssl=1" border="0" data-recalc-dims="1"></a></p> <p></p> <p>The logging for the pod made clear that there was a problem with the port mapping. </p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image-32.png?ssl=1"><img width="702" height="316" title="image" style="margin: 0px auto; float: none; display: block; background-image: none;" alt="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image_thumb-32.png?resize=702%2C316&#038;ssl=1" border="0" data-recalc-dims="1"></a></p> <p>I fixed the code, committed and pushed to GitHub. The build pipeline was triggered and the application was built into a container that was successfully deployed on the Kubernetes cluster:</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image-33.png?ssl=1"><img width="702" height="311" title="image" style="margin: 0px auto; float: none; display: block; background-image: none;" alt="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image_thumb-33.png?resize=702%2C311&#038;ssl=1" border="0" data-recalc-dims="1"></a></p> <p>I now need to find out what the endpoint is where I can access the application. For that, I check out the Ingress created for the deployment – to find the value for the path: /lucasjellema</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image-34.png?ssl=1"><img width="635" height="412" title="image" style="margin: 0px auto; float: none; display: block; background-image: none;" alt="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image_thumb-34.png?resize=635%2C412&#038;ssl=1" border="0" data-recalc-dims="1"></a></p> <p>Next, I check the ingress service in the oracle-bmc namespace – as that is in my case the cluster wide ingress for all public calls into the cluster:</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/SNAGHTML10b0fd8f.png?ssl=1"><img width="702" height="292" title="SNAGHTML10b0fd8f" style="margin: 0px auto; float: none; display: block; background-image: none;" alt="SNAGHTML10b0fd8f" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/SNAGHTML10b0fd8f_thumb.png?resize=702%2C292&#038;ssl=1" border="0" data-recalc-dims="1"></a></p> <p>This provides me with the public ip adress.</p> <h3>Access the Application</h3> <p>Calls to the simple-app application can now be made at: http://&lt;public ip&gt;/lucasjellema/simple-app (and http://&lt;public ip&gt;/lucasjellema/about):</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/SNAGHTML10b254f1.png?ssl=1"><img width="702" height="64" title="SNAGHTML10b254f1" style="margin: 0px auto; float: none; display: block; background-image: none;" alt="SNAGHTML10b254f1" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/SNAGHTML10b254f1_thumb.png?resize=702%2C64&#038;ssl=1" border="0" data-recalc-dims="1"></a></p> <p>and</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image-35.png?ssl=1"><img width="702" height="333" title="image" style="margin: 0px auto; float: none; display: block; background-image: none;" alt="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image_thumb-35.png?resize=702%2C333&#038;ssl=1" border="0" data-recalc-dims="1"></a></p> <p>Note: because of a certificate issue, the call from Postman to the POST endpoint only succeeds after disabling certificate verification in the general settings:</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image-36.png?ssl=1"><img width="702" height="229" title="image" style="margin: 0px auto; float: none; display: block; background-image: none;" alt="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image_thumb-36.png?resize=702%2C229&#038;ssl=1" border="0" data-recalc-dims="1"></a></p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image-37.png?ssl=1"><img width="702" height="346" title="image" style="margin: 0px auto; float: none; display: block; background-image: none;" alt="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image_thumb-37.png?resize=702%2C346&#038;ssl=1" border="0" data-recalc-dims="1"></a></p> <p><a href="https://technology.amis.nl/wp-content/uploads/2017/12/SNAGHTML10b0fd8f.png"><br /></a></p> <p>&nbsp;</p> <h3>Evolve the Application</h3> <p>From this point on it is very simple to further evolve the application. Modify the code, test locally, commit and push to Git – and the changed application is automatically built and deployed to the managed Kubernetes cluster.</p> <p>A quick example:</p> <p>I add support for /stuff to the REST API supported by simple-app:</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image-38.png?ssl=1"><img width="702" height="266" title="image" style="margin: 0px auto; float: none; display: block; background-image: none;" alt="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image_thumb-38.png?resize=702%2C266&#038;ssl=1" border="0" data-recalc-dims="1"></a></p> <p>The code is committed and pushed:</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image-39.png?ssl=1"><img width="702" height="111" title="image" style="margin: 0px auto; float: none; display: block; background-image: none;" alt="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image_thumb-39.png?resize=702%2C111&#038;ssl=1" border="0" data-recalc-dims="1"></a></p> <p>The Wercker pipeline is triggered</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image-40.png?ssl=1"><img width="702" height="218" title="image" style="margin: 0px auto; float: none; display: block; background-image: none;" alt="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image_thumb-40.png?resize=702%2C218&#038;ssl=1" border="0" data-recalc-dims="1"></a></p> <p>At this point, the application does not yet support requests to /stuff:</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image-41.png?ssl=1"><img width="702" height="265" title="image" style="margin: 0px auto; float: none; display: block; background-image: none;" alt="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image_thumb-41.png?resize=702%2C265&#038;ssl=1" border="0" data-recalc-dims="1"></a></p> <p></p> <p>After a little less than 3 minutes, the full build, store and deploy to Kubernetes cluster pipeline is done:</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image-42.png?ssl=1"><img width="702" height="204" title="image" style="margin: 0px auto; float: none; display: block; background-image: none;" alt="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image_thumb-42.png?resize=702%2C204&#038;ssl=1" border="0" data-recalc-dims="1"></a></p> <p>And the new functionality is live from the publicly exposed Kubernetes environment:</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image-43.png?ssl=1"><img width="702" height="287" title="image" style="margin: 0px auto; float: none; display: block; background-image: none;" alt="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/12/image_thumb-43.png?resize=702%2C287&#038;ssl=1" border="0" data-recalc-dims="1"></a></p> <h2>Resources</h2> <p>Wercker Tutorial on Getting Started with Wercker Clusters Using Wercker Clusters &#8211; <a title="http://devcenter.wercker.com/docs/getting-started-with-wercker-clusters#exampleend2end" href="http://devcenter.wercker.com/docs/getting-started-with-wercker-clusters#exampleend2end">http://devcenter.wercker.com/docs/getting-started-with-wercker-clusters#exampleend2end</a></p> <p>The post <a rel="nofollow" href="https://technology.amis.nl/2017/12/02/oracle-managed-kubernetes-cloud-first-steps-with-automated-deployment-using-wercker-pipelines/">Oracle Managed Kubernetes Cloud&ndash; First Steps with Automated Deployment using Wercker Pipelines</a> appeared first on <a rel="nofollow" href="https://technology.amis.nl">AMIS Oracle and Java Blog</a>.</p> Lucas Jellema https://technology.amis.nl/?p=47084 Sat Dec 02 2017 08:37:10 GMT-0500 (EST) Setting Up Table Replication In Oracle Goldengate http://oracle-help.com/goldengate/setting-table-replication-oracle-goldengate/ <p>Today we are going to learn about the steps use for Setting Up Table Replication In Oracle Goldengate. In this below tutorial, we will setup one-way goldengate replication for below two tables from database SRCDB to TRGDB.</p> <p>DBACLASS.EMP;<br /> DBACLASS.DEPT;</p> <table style="height: 60px" width="750"> <tbody> <tr> <td style="width: 244px"></td> <td style="width: 244px">SOURCE</td> <td style="width: 244px"> TARGET</td> </tr> <tr> <td style="width: 244px"> HOST</td> <td style="width: 244px">172.65.47.32</td> <td style="width: 244px">172.20.21.56</td> </tr> <tr> <td style="width: 244px">DB_NAME</td> <td style="width: 244px">SRCDB</td> <td style="width: 244px">TEGAB</td> </tr> <tr> <td style="width: 244px">GG PROCESS</td> <td style="width: 244px">EXT1(extract)</p> <p>EXT1P(extract pump)</td> <td style="width: 244px">REPR1 (replicat)</td> </tr> <tr> <td style="width: 244px">TABLES</td> <td style="width: 244px">DBACLASS.EMP</p> <p>DBACLASS.DEPT</td> <td style="width: 244px">DBACLASS.EMP</p> <p>DBACLASS.DEPT</td> </tr> </tbody> </table> <p>Once the installation is done, proceed with below steps.</p> <h4>1. Enable supplemental logging for those tables.[SOURCE]</h4> <p>GGSCI &gt; dblogin USERID ggate_user, PASSWORD ggate_user</p> <p>Successfully logged into the database.</p> <p>GGSCI &gt; add trandata DBACLASS.EMP</p> <p>Logging of supplemental redo data enabled for table DBACLASS.EMP.<br /> TRANDATA for scheduling columns has been added on table &#8216;DBACLASS.EMP&#8217;.<br /> TRANDATA for instantiation CSN has been added on table &#8216;DBACLASS.EMP&#8217;.<br /> GGSCI &gt;</p> <p>GGSCI &gt; add trandata DBACLASS.DEPT</p> <p>Logging of supplemental redo data enabled for table DBACLASS.DEPT.<br /> TRANDATA for scheduling columns has been added on table &#8216;DBACLASS.DEPT&#8217;.<br /> TRANDATA for instantiation CSN has been added on table &#8216;DBACLASS.DEPT&#8217;.</p> <h4>2. Prepare extract parameter file[ SOURCE ]</h4> <p>GGSCI&gt; edit params EXT1</p> <p>EXTRACT EXT1<br /> SETENV (ORACLE_SID=&#8221;SRCDB&#8221;)<br /> SETENV (ORACLE_HOME = &#8220;/home/oracle/app/oracle/product/12.1.0/dbhome_1&#8221;)<br /> SETENV (NLS_LANG = &#8220;AMERICAN_AMERICA.AL32UTF8&#8221;)<br /> userid ggate_user, PASSWORD ggate_user<br /> FETCHOPTIONS FETCHPKUPDATECOLS, USESNAPSHOT, USELATESTVERSION<br /> DBOPTIONS ALLOWUNUSEDCOLUMN<br /> DISCARDFILE /ggate/app/oracle/product/11.2.1.0.3/TST/EXT1.dsc, APPEND, MEGABYTES 100<br /> EXTTRAIL /ggate/app/oracle/product/11.2.1.0.3/TST/E5<br /> WARNLONGTRANS 6H, CHECKINTERVAL 1H<br /> TABLE DBACLASS.EMP;<br /> TABLE DBACLASS.DEPT;</p> <p>Here – /ggate/app/oracle/product/11.2.1.0.3/TST is the location on LOCAL(SOURCE HOST) where the extract trail files will be created with prefix E5*</p> <h4>3. Prepare the extract pump parameter file [SOURCE]</h4> <p>GGSCI&gt; EDIT PARAMS EXT1P</p> <p>EXTRACT EXT1P<br /> SETENV (ORACLE_HOME = &#8220;/home/oracle/app/oracle/product/12.1.0/dbhome_1&#8221;)<br /> SETENV (ORACLE_SID = &#8220;SRCDB&#8221;)<br /> SETENV (NLS_LANG = &#8220;AMERICAN_AMERICA.AL32UTF8&#8221;)<br /> USERID ggate_user, PASSWORD ggate_user<br /> RMTHOST 172.20.21.56, MGRPORT 7809<br /> RMTTRAIL /ggate/oradata/datacapture/TRG/P1<br /> TABLE DBACLASS.EMP;<br /> TABLE DBACLASS.DEPT;</p> <p><strong>RMTTRAIL</strong> – Here /ggate/oradata/datacapture/TRG in the location on TARGET HOST where the extract trails from source will be pushed and the prefix will be P1*.</p> <h4>4. Add extract process [SOURCE]</h4> <p>add extract EXT1,tranlog,begin now</p> <p>EXTRACT added.</p> <h4>5. Add the extract trail [SOURCE]</h4> <p>GGSCI &gt; add exttrail /ggate/app/oracle/product/11.2.1.0.3/TST/E5,extract EXT1<br /> EXTTRAIL added.</p> <h4>6. Add the extract pump process [SOURCE]</h4> <p>GGSCI &gt; add extract EXT1P, exttrailsource /ggate/app/oracle/product/11.2.1.0.3/TST/E5<br /> EXTRACT added.</p> <h4>7. Add remote trail [SOURCE]</h4> <div id="crayon-5a217d408cd7a823087385" class="crayon-syntax crayon-theme-github crayon-font-monaco crayon-os-pc print-yes notranslate"> <div class="crayon-plain-wrap"> GGSCI &gt; add rmttrail /ggate/oradata/datacapture/TRG/P1,extract EXT1P<br /> RMTTRAIL added.</div> </div> <div></div> <div> <p>Now we will configure replicate on the target server:</p> <h4>8. Prepare to replicate parameter file [ TARGET ]</h4> <p>Here we have to add HANDLECOLLISION parameter to resolve conflicts for the transactions during initial loading. We will remove this parameter once the lag is cleared after initial loading.</p> <p>ggsci&gt; edit params REPR1</p> <p>REPLICAT REPR1<br /> setenv (ORACLE_HOME=&#8221;/home/oracle/app/oracle/product/12.1.0/dbhome_1&#8243;)<br /> setenv (ORACLE_SID=&#8221;TRGDB&#8221;)<br /> USERID ggate_user, PASSWORD ggate_user<br /> DBOPTIONS SUPPRESSTRIGGERS,DEFERREFCONST<br /> ASSUMETARGETDEFS<br /> HANDLECOLLISIONS<br /> DISCARDFILE /ggate/oradata/datacapture/TRG/reprt.dsc,append,megabytes 1000<br /> MAP DBACLASS.EMP,TARGET DBACLASS.EMP;<br /> MAP DBACLASS.DEPT,TARGET DBACLASS.DEPT ;</p> <h4>9. add the replicat process [ TARGET ]</h4> <p>GGSCI &gt; add replicat REPR1, exttrail /ggate/oradata/datacapture/TRG/P1<br /> REPLICAT added.</p> <p>Now complete setup is done. Next step is to start the extract process and do the initial loading.<br /> There are multiple methods to do initial loading, But here We will use the simple expdp impdp method.</p> <h4>10. Start the extract [ SOURCE ]</h4> <p>GGSCI &gt; start EXT1</p> <p>Sending START request to MANAGER &#8230;<br /> EXTRACT EXT1 starting</p> <p>GGSCI &gt; info all</p> <p>Program Status Group Lag at Chkpt Time Since Chkpt</p> <p>MANAGER RUNNING<br /> EXTRACT RUNNING EXT1 00:00:00 00:00:03 &#8212;&#8211; &gt;&gt;&gt; RUNNING<br /> EXTRACT STOPPED EXT1P 00:00:00 00:02:34</p> </div> <p>&nbsp;</p> <p>Now as the extract is running, we will proceed with<em><strong> initial loading</strong></em>(datapump method). i.e it will start capturing the transactions.</p> <h4>10. INITIAL LOADING:</h4> <p><strong>EXPORT FROM SOURCE:</strong></p> <p>expdp dumpfile=initload.dmp logfile=initload.log directory=DIRT tables=DBACLASS.EMP,DBACLASS.DEPT</p> <p>E</p> <p>With the Partitioning, OLAP, Data Mining and Real Application Testing options<br /> FLASHBACK automatically enabled to preserve database integrity.<br /> Starting &#8220;SYS&#8221;.&#8221;SYS_EXPORT_TABLE_02&#8243;: /******** AS SYSDBA dumpfile=initload.dmp logfile=initload.log directory=DIRT tables=DBACLASS.EMP,DBACLASS.DEPT<br /> Estimate in progress using BLOCKS method&#8230;<br /> Processing object type TABLE_EXPORT/TABLE/TABLE_DATA<br /> Total estimation using BLOCKS method: 16 MB<br /> Processing object type TABLE_EXPORT/TABLE/PROCACT_INSTANCE<br /> Processing object type TABLE_EXPORT/TABLE/TABLE<br /> Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT<br /> Processing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS<br /> . . exported &#8220;DBACLASS&#8221;.&#8221;EMP&#8221; 3.473 MB 90323 rows<br /> . . exported &#8220;DBACLASS&#8221;.&#8221;DEPT&#8221; 3.473 MB 90323 rows<br /> Master table &#8220;SYS&#8221;.&#8221;SYS_EXPORT_TABLE_02&#8243; successfully loaded/unloaded<br /> ******************************************************************************<br /> Dump file set for SYS.SYS_EXPORT_TABLE_02 is:<br /> /archive/dump/initload.dmp<br /> Job &#8220;SYS&#8221;.&#8221;SYS_EXPORT_TABLE_02&#8243; successfully completed at Sun Jul 23 11:56:50 2017 elapsed 0 00:00:13<br /> <strong>COPY THE DUMP TO TARGET:</strong></p> <p>scp<em> oracle@***********:/archive/dump/</em>initload.dmp<em> .</em></p> <p><strong>IMPORT IN TARGET DB:</strong></p> <p>impdp dumpfile=initload.dmp logfile=imp_initialload.log directory=FULL_REFRESH</p> <p>Import: Release 12.1.0.2.0 &#8211; Production on Sun Jul 23 12:01:58 2017</p> <p>Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved.</p> <p>Username: / as sysdba</p> <p>Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 &#8211; 64bit Production<br /> With the Partitioning, OLAP, Advanced Analytics, and Real Application Testing options<br /> Master table &#8220;SYS&#8221;.&#8221;SYS_IMPORT_FULL_04&#8243; successfully loaded/unloaded<br /> import done in AL32UTF8 character set and AL16UTF16 NCHAR character set<br /> export done in AL32UTF8 character set and UTF8 NCHAR character set<br /> WARNING: possible data loss in character set conversions<br /> Starting &#8220;SYS&#8221;.&#8221;SYS_IMPORT_FULL_04&#8243;: /******** AS SYSDBA dumpfile=initload.dmp logfile=imp_initialload.log directory=FULL_REFRESH<br /> Processing object type TABLE_EXPORT/TABLE/PROCACT_INSTANCE<br /> Processing object type TABLE_EXPORT/TABLE/TABLE<br /> Processing object type TABLE_EXPORT/TABLE/TABLE_DATA<br /> . . imported &#8220;DBACLASS&#8221;.&#8221;EMP&#8221; 3.473 MB 90323 rows<br /> . . imported &#8220;DBACLASS&#8221;.&#8221;DEPT&#8221; 3.473 MB 90323 rows<br /> Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT<br /> Initial loading is completed.</p> <h4>11. Start the datapump extract [ SOURCE ]</h4> <p>GGSCI &gt; start EXT1P</p> <p>Sending START request to MANAGER &#8230;<br /> EXTRACT EXT1P starting</p> <p>GGSCI (dm-relay-dev-Test) 13&gt; info all</p> <p>Program Status Group Lag at Chkpt Time Since Chkpt</p> <p>MANAGER RUNNING<br /> EXTRACT RUNNING EXT1 00:00:00 00:00:03<br /> EXTRACT RUNNING EXT1P 00:00:00 00:00:01</p> <h4>12. Start the replicat [ TARGET ]</h4> <p>GGSCI (DBDvLBSS01) 17&gt; start REPR1</p> <p>Sending START request to MANAGER &#8230;<br /> REPLICAT REPR1 starting</p> <p>13. Remove HANDLECOLLSION after lag is cleared and restart replicate.</p> <p>GGSCI &gt; lag replicat REPR1</p> <p>2017-07-24 15:33:12 INFO OGG-14054 Lag from heartbeat table requires DBLOGIN.</p> <p>Sending GETLAG request to REPLICAT REPR1 &#8230;<br /> Last record lag 6 seconds.</p> <p>GGSCI &gt; info all</p> <p>Program Status Group Lag at Chkpt Time Since Chkpt</p> <p>MANAGER RUNNING<br /> REPLICAT RUNNING REPR1 00:43:54 00:00:06 &#8212; &gt;&gt;&gt;&gt; Lag at checkpoint is not zero yet.</p> <p>GGSCI &gt; !</p> <p>2017-07-24 15:33:12 INFO OGG-14054 Lag from heartbeat table requires DBLOGIN.</p> <p>Sending GETLAG request to REPLICAT REPR1 &#8230;<br /> Last record lag 6 seconds.</p> <p>At EOF, no more records to process. &#8212;&#8212;&#8211; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; This indicates lag is zero.</p> <p>GGSCI &gt; info all</p> <p>Program Status Group Lag at Chkpt Time Since Chkpt</p> <p>MANAGER RUNNING<br /> REPLICAT RUNNING REPR1 00:00:00 00:00:06 &#8212; &gt; Lag at checkpoint is zero, i.e lag is zero now.<br /> As lag is zero now, Remove the handles collision parameter and restart the replicate.</p> <p>REPLICAT REPR1<br /> setenv (ORACLE_HOME=&#8221;/home/oracle/app/oracle/product/12.1.0/dbhome_1&#8243;)<br /> setenv (ORACLE_SID=&#8221;TRGDB&#8221;)<br /> USERID ggate_user, PASSWORD ggate_user<br /> DBOPTIONS SUPPRESSTRIGGERS,DEFERREFCONST<br /> ASSUMETARGETDEFS<br /> &#8212;HANDLECOLLISIONS<br /> DISCARDFILE /ggate/oradata/datacapture/TRG/reprt.dsc,append,megabytes 1000<br /> MAP DBACLASS.EMP,TARGET DBACLASS.EMP;<br /> MAP DBACLASS.DEPT,TARGET DBACLASS.DEPT ;</p> <p>stop REPR1</p> <p>start REPR1</p> <p>Let’s add some record in source and see whether it is replicating to target or not:</p> <p>SQL&gt; insert into &#8220;DBACLASS&#8221;.&#8221;EMP&#8221; values (&#8216;TEST&#8217;,&#8217;DB&#8217;,&#8217;DB2&#8242;,384302938);</p> <p>1 row created.</p> <p>SQL&gt; COMMIT;</p> <p>Commit complete.</p> <p>GGSCI &gt; stats EXT1</p> <p>Sending STATS request to EXTRACT EXT1 &#8230;</p> <p>Start of Statistics at 2017-07-23 12:07:45.</p> <p>Output to /ggate/app/oracle/product/11.2.1.0.3/TST/E5:</p> <p>Extracting from DBACLASS.EMP to DBACLASS.EMP:</p> <p>*** Total statistics since 2017-07-23 12:04:16 ***<br /> Total inserts 1.00<br /> Total updates 0.00<br /> Total deletes 0.00<br /> Total discards 0.00<br /> Total operations 1.00</p> <p>&nbsp;</p> <p><strong>Check the replication status:</strong></p> <p>GGSCI &gt; stats REPR1</p> <p>Sending STATS request to REPLICAT REPR1 &#8230;</p> <p>Start of Statistics at 2017-07-23 12:06:58.</p> <p>Replicating from DBACLASS.EMP to DBACLASS.DEPT:</p> <p>*** Total statistics since 2017-07-23 12:06:58 ***<br /> Total inserts 1.00<br /> Total updates 0.00<br /> Total deletes 0.00<br /> Total discards 0.00<br /> Total operations 1.00</p> <p>We can see the extract captures one insert and replicat received one insert. Lets do the row_count on both dbs .</p> <p><strong>ROW COUNT ON SOURCE:</strong></p> <p>SQL&gt; select count(*) from “DBACLASS”.”EMP” ;</p> <p>COUNT(*)<br /> ———-<br /> 90324</p> <p><strong>ROW COUNT ON TARGET:</strong></p> <p>SQL&gt; select count(*) from “DBACLASS”.”EMP” ;</p> <p>COUNT(*)<br /> ———-<br /> 90324</p> <p>&nbsp;</p> <p>Both row_count are matching. Our table level replication setup  in goldengate  is completed. It will now apply all the transactions happening on the source to target db.</p> <p>&nbsp;</p> <p>&nbsp;</p> <p>&nbsp;</p> <div> <p>&nbsp;</p> <p>&nbsp;</p> </div> <p>&nbsp;</p> <p>The post <a rel="nofollow" href="http://oracle-help.com/goldengate/setting-table-replication-oracle-goldengate/">Setting Up Table Replication In Oracle Goldengate</a> appeared first on <a rel="nofollow" href="http://oracle-help.com">ORACLE-HELP</a>.</p> Anuradha Mudgal http://oracle-help.com/?p=2565 Fri Dec 01 2017 11:39:01 GMT-0500 (EST) How to Migrate from Teradata to Google BigQuery https://blog.pythian.com/migrate-teradata-google-bigquery/ <div class="l-submain"><div class="l-submain-h g-html i-cf"><p>Google BigQuery is a serverless, highly scalable, low-cost enterprise data warehouse that helps data analysts become more productive. It enables extremely fast analytics on a petabyte scale. And its pay-as-you-go model makes it attractive for organizations looking to move away from a CAPEX-based model for data warehousing. In response to the growing interest in BigQuery, Pythian’s Google Cloud Platform Qualified Solutions Developers and Cloud Data Engineers have put together a <a href="http://resources.pythian.com/white-paper/migrate-teradata-to-google-bigquery">white paper</a> that guides you through the process of evaluating whether BigQuery is a good fit for your use case, then takes you, step-by-step, through a migration from Teradata to BigQuery.</p> <p>The authors of this white paper are some of Pythian’s Google Cloud Platform qualified experts who help enterprises around the world get the most from their Google Cloud Platform implementations, including BigQuery. For example, they recently implemented BigQuery as part of a solution that transformed the way the England and Wales Cricket Board (ECB) understands and reaches their thousands of participants and fans. With BigQuery, their ability to perform analytics has resulted in increased ticket sales, improved venues for matches, improved player selection, youth team engagement and more. <a href="https://pythian.com/clients/england-wales-cricket-board/">Read the full story</a>.</p> <p>In Pythian’s latest white paper, <em>A Framework for Migrating Your Data Warehouse to Google BigQuery</em>, Pythian experts provide all of the information you need to migrate from Teradata to BigQuery with confidence. It guides you through all aspects of the migration, from initial considerations to step-by-step instructions with examples that cover the pre-migration, migration and post-migration process.</p> <p><strong> Get the white paper now</strong><br /> <a href="http://resources.pythian.com/white-paper/migrate-teradata-to-google-bigquery">Download the Framework for Migrating Your Data Warehouse to Google BigQuery white paper</a> to learn about:</p> <ul> <li>When it makes sense to migrate to BigQuery, and when it doesn’t</li> <li>The key areas to consider when planning for and implementing a migration of this nature</li> <li>Pre-migration considerations like how to approach cost control tools, data transformations and continuous data ingestion</li> <li>Step-by-step instructions on how to set up a data migration pipeline from Teradata to BigQuery</li> <li>Post-migration procedures like how to monitor your BigQuery database using Stackdriver, analyzing logs and validating data quality</li> </ul> <p><a href="http://resources.pythian.com/white-paper/migrate-teradata-to-google-bigquery"><img class="alignnone size-full wp-image-102883" src="https://blog.pythian.com/wp-content/uploads/Teradata-whitepaper-e1512139429768.jpg" alt="" width="600" height="300" /></a></p> </div></div> Beth Johnson https://blog.pythian.com/?p=102882 Fri Dec 01 2017 10:59:40 GMT-0500 (EST) Locating Most Current Record using ROW_NUMBER() vs. Index Full Scan (Min/Max) https://blog.pythian.com/locating-current-record-using-row_number-vs-index-full-scan-min-max/ <div class="l-submain"><div class="l-submain-h g-html i-cf"><p>Very often when reading data, we need to locate the most current record for a set of conditions. One typical example is that we read the data to find the most recent order for a particular customer. In this simple scenario, each approach would work for the most part as you would expect. However things change quickly when you introduce extra conditions, such as trying to locate the most recent OPEN order.</p> <p>The most elegant, and usually most efficient way to do this is to use an analytical ranking function like ROW_NUMBER() and an index on the order key. In this case Oracle utilizes a clever optimization that shows up as WINDOW NOSORT STOPKEY in the execution plan.</p> <p>But there is an unpleasant surprise. The optimization appears to be written for the &#8220;general&#8221; case &#8211; and lacks some very important case specific optimizations.</p> <p>Here&#8217;s a demonstration.</p> <p>First, let&#8217;s build a test data set (requires 4 GB of space):</p> <pre class="brush: sql; title: ; notranslate"> create table my_orders nologging as select rownum id, sysdate-100+rownum/24/60 dt_inserted, cast('CLOSED' as varchar2(20)) as order_status, mod(rownum,5) customer_id, mod(rownum,5000) mod5000_id , rpad('x',3500,'x') filler from (select rownum r from dual connect by level &lt;= 10000) r1, (select rownum r from dual connect by level &lt;= 100) ; create /*+ parallel(32) */ index my_orders$pk on my_orders(id); alter table my_orders modify (id not null,customer_id not null); /* make a few orders open */ update my_orders set order_status='OPEN' where id in (999999,999998); </pre> <p>Here&#8217;s the ROW_NUMBER() approach &#8211; very efficient and elegant. Note that we are NOT looking for open orders yet &#8211; just the most recent one.</p> <pre class="brush: sql; title: ; notranslate"> select * from ( select t.*, row_number() over (order by id desc) r from my_orders t where customer_id=4 ) where r=1; /* ------------------------------------------------------------------------------------------------------ | Id | Operation | Name | E-Rows |E-Bytes| Cost (%CPU)| E-Time | ------------------------------------------------------------------------------------------------------ | 0 | SELECT STATEMENT | | 1 | 1825 | 200K (1)| 00:00:08 | |* 1 | VIEW | | 1 | 1825 | 200K (1)| 00:00:08 | |* 2 | WINDOW NOSORT STOPKEY | | 200K| 672M| 200K (1)| 00:00:08 | | 3 | TABLE ACCESS BY INDEX ROWID | MY_ORDERS | 200K| 672M| 200K (1)| 00:00:08 | |* 4 | INDEX RANGE SCAN DESCENDING| MY_ORDERS$CUSTOMER | 200K| | 529 (1)| 00:00:01 | ------------------------------------------------------------------------------------------------------ */ </pre> <p>The old school approach would have been:</p> <pre class="brush: sql; title: ; notranslate"> select * from my_orders where id = (select max(id) from my_orders where customer_id=4) and customer_id=4; /* ----------------------------------------------------------------------------------------------------------- | Id | Operation | Name | E-Rows |E-Bytes| Cost (%CPU)| E-Time | ----------------------------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 1 | 3528 | 4 (0)| 00:00:01 | | 1 | TABLE ACCESS BY INDEX ROWID BATCHED| MY_ORDERS | 1 | 3528 | 4 (0)| 00:00:01 | |* 2 | INDEX RANGE SCAN | MY_ORDERS$CUSTOMER | 1 | | 3 (0)| 00:00:01 | | 3 | SORT AGGREGATE | | 1 | 8 | | | | 4 | FIRST ROW | | 1 | 8 | 3 (0)| 00:00:01 | |* 5 | INDEX RANGE SCAN (MIN/MAX) | MY_ORDERS$CUSTOMER | 1 | 8 | 3 (0)| 00:00:01 | ----------------------------------------------------------------------------------------------------------- */ </pre> <p>This uses the rather classical INDEX RANGE SCAN (MIN/MAX) approach. Notice the double-use of CUSTOMER_ID=4. This is to ensure the same index is used for both the min/max and the table lookup. If a different index (such as the PK) is used &#8211; this may result in extra disk-IO as that index&#8217;s leaf block may not be in buffer cache.</p> <p>So far everything works as expected. Both approaches perform identically. The analytical SQL being slightly more &#8220;clear&#8221;. The cost difference only illustrates that Oracle doesn&#8217;t know that this option is as efficient, because the costing is based on the stats, and there is not enough information in the stats to say if the query will be resource intensive or not.</p> <p>Here&#8217;s where things become interesting. What if you needed to locate the most recent OPEN order for a customer?</p> <p>The MAX() approach would look like this:</p> <pre class="brush: sql; title: ; notranslate"> select * from my_orders where id = (select /*+ INDEX_DESC(T)*/max(id) from my_orders t where customer_id=4 and order_status='OPEN') and customer_id=4; /* -------------------------------------------------------------------------------------------------------------- | Id | Operation | Name | E-Rows |E-Bytes| Cost (%CPU)| E-Time | -------------------------------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 1 | 3528 | 4 (0)| 00:00:01 | | 1 | TABLE ACCESS BY INDEX ROWID BATCHED | MY_ORDERS | 1 | 3528 | 4 (0)| 00:00:01 | |* 2 | INDEX RANGE SCAN | MY_ORDERS$CUSTOMER | 1 | | 3 (0)| 00:00:01 | | 3 | SORT AGGREGATE | | 1 | 15 | | | |* 4 | TABLE ACCESS BY INDEX ROWID BATCHED| MY_ORDERS | 1 | 15 | 200K (1)| 00:00:08 | |* 5 | INDEX RANGE SCAN DESCENDING | MY_ORDERS$CUSTOMER | 200K| | 529 (1)| 00:00:01 | -------------------------------------------------------------------------------------------------------------- */ </pre> <p>In this plan the FIRST ROW and MIN/MAX steps are gone. Oracle now has to look up ALL orders for a particular customer via the index. Then it reads ALL relevant table blocks to filter out the order_status=&#8217;OPEN&#8217; predicate. This can be very costly to find the MAX(ID) value. Such an execution plan will become slower as orders build up, and will very likely require disk IO for table access &#8211; as typically orders come over time for many customers &#8211; so orders for the same customer are not in the same blocks/table area. With hundreds of orders over say 2-3 years &#8211; you are guaranteed a significant slow down.</p> <p>Here&#8217;s the ROW_NUMBER() approach. I had to hint it to force this plan. In my result set &#8211; very few orders are in status OPEN &#8211; so Oracle cannot determine that this is the best approach to locate OPEN orders.</p> <pre class="brush: sql; title: ; notranslate"> select * from ( select /*+INDEX_DESC(T)*/ t.*, row_number() over (order by id desc) r from my_orders t where customer_id=4 and order_status='OPEN' ) where r=1 /* ------------------------------------------------------------------------------------------------------ | Id | Operation | Name | E-Rows |E-Bytes| Cost (%CPU)| E-Time | ------------------------------------------------------------------------------------------------------ | 0 | SELECT STATEMENT | | 1 | 1825 | 200K (1)| 00:00:08 | |* 1 | VIEW | | 1 | 1825 | 200K (1)| 00:00:08 | |* 2 | WINDOW NOSORT STOPKEY | | 1 | 3528 | 200K (1)| 00:00:08 | |* 3 | TABLE ACCESS BY INDEX ROWID | MY_ORDERS | 1 | 3528 | 200K (1)| 00:00:08 | |* 4 | INDEX RANGE SCAN DESCENDING| MY_ORDERS$CUSTOMER | 200K| | 529 (1)| 00:00:01 | ------------------------------------------------------------------------------------------------------ Predicate Information (identified by operation id): --------------------------------------------------- 1 - filter(&quot;R&quot;=1) 2 - filter(ROW_NUMBER() OVER ( ORDER BY INTERNAL_FUNCTION(&quot;ID&quot;) DESC )&lt;=1) 3 - filter(&quot;ORDER_STATUS&quot;='OPEN') 4 - access(&quot;CUSTOMER_ID&quot;=4) */ </pre> <p>As you can see &#8211; the execution plan is the SAME as in the case for most recent (any) order. What Oracle would do in this case is locate the most recent record for CUSTOMER_ID=4 in the INDEX &#8211; and then start reading table blocks one by one until it identifies enough records that satisfy your condition. And I specifically wrote the previous sentence, as the logic Oracle follows.</p> <p>And this is where things start working not quite as you would expect.</p> <p>The WINDOW NOSORT STOPKEY means that it would read rows from the rowsource (in this case &#8211; rows from the table blocks, as identified by the index descending scan) one by one until records no longer satisfy the STOPKEY conditions. I&#8217;ve included the predicate information to demonstrate this.</p> <p>The effects of having a condition that only stops once a non-match is identified means that Oracle will keep reading from the row source until either a second row (open order in our case) is found or until all rows have been read from the rowsource. My guess for why this is the approach is because the ROW_NUMBER() shares the same code as RANK() and DENSE_RANK(). And since the RANK() function allows multiple records with the same RANK in the case of identical ordering conditions, it cannot stop &#8220;processing&#8221; until it has confirmed there are no longer &#8220;X&#8221; ranks.</p> <p>So what does this mean? It means that if we have two open orders that are recent &#8211; our query will be very fast. If we have only one recent order that is open &#8211; our query will be very slow, because it will go over all closed orders to ensure there is no other &#8220;open&#8221; order.</p> <p>Is there a Solution?<br /> Unfortunately I have not found a solution to this problem. You could add the STATUS column to your index, but that will make your index larger and it&#8217;s not necessary a solution. There could be 10 other predicates you want to test for. I did not test possibilities to use a nested loops joins (with all &#8220;BATCH&#8221; optimizations turned off) as I deemed it too convoluted.</p> <p>I hope Oracle introduces the optimization to ROW_NUMBER() &#8211; so that it stops on the 1st row. I tested this last in 12.1.</p> </div></div> Christo Kutrovsky http://pythianblog.wpengine.com/?p=85153 Fri Dec 01 2017 09:03:46 GMT-0500 (EST) Log Buffer #531: A Carnival of the Vanities for DBAs https://blog.pythian.com/log-buffer-531-carnival-vanities-dbas/ <div class="l-submain"><div class="l-submain-h g-html i-cf"><p>This Log Buffer Edition covers Cloud, Oracle, SQL Server and MySQL.<br /> <span id="more-102876"></span></p> <p><strong>Cloud:</strong></p> <p>Raising a <a href="http://dbaharrison.blogspot.com/2017/11/raising-rhel-support-request-in-azure.html">RHEL</a> support request in Azure</p> <p>The role of Search Engine <a href="http://www.appsbi.com/top-12-rank-tracking-software-and-services-2">Optimization</a> and keyword tracking tools are important in this technological age.</p> <p>Ever <a href="https://kentgraziano.com/2017/11/29/okta-sso-with-snowflake/">wonder</a> how to secure a cloud data warehouse?</p> <p>Get Ready for the <a href="https://aws.amazon.com/blogs/aws/aws-serverless-app-repo/">AWS</a> Serverless Application Repository</p> <p>Precious cargo: Securing containers with <a href="https://cloudplatform.googleblog.com/2017/11/precious-cargo-securing-containers-with-Kubernetes-Engine-18.html">Kubernetes</a> Engine 1.8</p> <p><a href="https://blog.pythian.com/use-amazon-athena/">Amazon</a> Athena enables you to access data present in flat files stored in S3 (Simple Storage Service) as if it were in a table in the database.</p> <p><strong>Oracle:</strong></p> <p><a href="http://dirknachbar.blogspot.com/2017/11/oracle-forms-reports-122120-in-docker.html">Oracle</a> Forms &amp; Reports 12.2.1.2.0 in Docker</p> <p><a href="http://blog.psftdba.com/2017/11/nvision-performance-tuning-11-excel-v.html">nVision</a> Performance Tuning: 11. Excel -v- OpenXML</p> <p>What Happens When I <a href="https://petewhodidnottweet.com/2017/11/happens-add-datafiles-manual-standby-primary-standard-edition/">Add</a> Datafiles to a Manual Standby Primary in Standard Edition?</p> <p><a href="https://mwidlake.wordpress.com/2017/11/29/ukoug-conference-survival-guide/">UKOUG</a> Conference Survival Guide</p> <p>Junk character issue in <a href="https://mohamedazar.com/2017/11/29/junk-character-issue-in-r12-report/">R12</a> report</p> <p><strong>SQL Server:</strong></p> <p>The <a href="http://www.sqlservercentral.com/articles/T-SQL/163572/">Difference</a> Between Rollup and Cube</p> <p>Understanding <a href="https://www.databasejournal.com/features/mssql/understanding-migration-from-sql-server-to-sql-server-2017-using-data-migration-assistant.html">Migration</a> from SQL Server to SQL Server 2017 using Data Migration Assistant</p> <p>Affordable <a href="https://www.mssqltips.com/sql-server-whitepaper/82/10-ways-to-save-money-and-provide-comprehensive-high-availability-for-sql-server/">SQL</a> Server High Availability</p> <p>How Much <a href="https://www.databasejournal.com/features/mssql/how-much-data-has-changed-since-your-last-full-backup.html">Data</a> Has Changed Since Your Last Full Backup</p> <p><a href="https://www.mssqltips.com/sqlservertutorial/9053/sql-server-integration-services-ssis-2016-tutorial/">SQL</a> Server Integration Services 2016 Tutorial</p> <p><strong>MySQL:</strong></p> <p><a href="http://www.jonathanlevin.co.uk/2017/11/archiving-for-leaner-database_30.html">Archiving</a> for a Leaner Database</p> <p>In-memory linkbench and a fast server: MyRocks, <a href="http://smalldatum.blogspot.com/2017/11/in-memory-linkbench-and-fast-server.html">InnoDB</a> and TokuDB</p> <p>How to Transfer a <a href="https://www.eversql.com/how-to-transfer-a-mysql-database-between-two-servers/">MySQL</a> Database Between Two Servers?</p> <p><a href="https://insidemysql.com/mysql-connectorj-5-1-45-has-been-released/">MySQL</a> Connector/J 5.1.45 has been released</p> <p><a href="http://smalldatum.blogspot.com/2017/11/sysbench-io-bound-small-server-myrocks_29.html">Sysbench</a>, IO-bound, small server: MyRocks and InnoDB</p> </div></div> Fahd Mirza https://blog.pythian.com/?p=102876 Fri Dec 01 2017 08:55:06 GMT-0500 (EST) How the England and Wales Cricket Board Scored with Big Data https://blog.pythian.com/how-the-england-and-wales-cricket-board-scored-with-big-data/ <div class="l-submain"><div class="l-submain-h g-html i-cf"><p><span style="font-weight: 400;">The England and Wales Cricket Board governs every aspect of the sport in those two countries, and it holds massive amounts of data generated by professional and amateur players alike. Since its founding in 1997, the ECB has collected information on every aspect of its operations, including players, partners, youth leagues, coaches, stadiums, ticket sales, marketing initiatives and more. </span></p> <p><span style="font-weight: 400;">All of those data sets added up to a potential gold mine of information, and the ECB knew it. But the value of that information wasn’t fully accessible. It was stored in a data warehouse across some 19 different data sources, all of which needed to be integrated before they could deliver useful business intelligence. To Damian Smith, ECB’s Director of IT, that business intelligence is the key to cricket’s future growth. In a </span><a href="https://www.cio.co.uk/it-applications/ecb-head-of-it-damian-smith-using-big-data-win-on-off-cricket-square-3667026/?utm_content=63387374&amp;utm_medium=social&amp;utm_source=linkedin"><span style="font-weight: 400;">recent interview with CIO UK</span></a><span style="font-weight: 400;">, Smith stressed the importance of data in providing actionable insights. “We need to keep reinventing ourselves to maintain an interest in cricket, to attract new audiences to the game,” he told the site. “Once you have made that link, it is absolutely fundamental to capture as much data as possible about the way people are participating in the game.”</span></p> <p><span style="font-weight: 400;">In Smith’s view, the ECB is effectively a social network. “I&#8217;ve been saying national governing bodies have the same business models as Facebook,” he said. “Our product is our participants. The more participants we have, the more value we can generate from the game and invest in the game. The more we know about them, the more we can extract from the government, sponsors and broadcasters.”</span></p> <p><span style="font-weight: 400;">To help the ECB harvest the full value of its data, Pythian architected and designed a platform to bring together those 19 individual data sources for storage in Google Cloud. To implement the data lake, the software of choice was Cloudera Hadoop, with management also entrusted to Cloudera. </span></p> <p><span style="font-weight: 400;">The results were immediate. Data-analysis exercises that previously took between three and six months could now be completed in hours. The traditional bottlenecks around data management and business intelligence disappeared, allowing the ECB to transform itself into a more disciplined, data-driven organization. </span></p> <p><span style="font-weight: 400;">The benefits have been seen at every level of the game. At the elite level, the ECB now has superior tools to select and prepare cricketers for England teams. This alone marked a radical change for team selectors, who for generations had chosen players by instinct. “They became evidence-based rather than gut-feel-based,” Smith said. “We are proving the old methodology is wrong, putting information in the form of an app in the hands of selectors so they can ask proper questions and get proper answers about who is good in certain situations.”</span></p> <p><span style="font-weight: 400;">The technology is also enabling strategies for keeping England’s top players injury-free. “I’m responsible for some really cool systems,” Smith said. “Biomechanical analysis, video analysis, biometric systems, radar technology that assesses the telemetry of a cricket ball. Devices and wearables on players to tell us how much stress they’re under — all systems to support the elite end of the game.&#8221;</span></p> <p><span style="font-weight: 400;">The power of objective data extends to the community level, as well. The ECB can now reach and motivate thousands more participants, be they spectators or players. The ECB’s new and superior analytics have translated into improvements in ticket sales, venues, coach retention, youth team development and playing facilities.</span></p> <p><span style="font-weight: 400;">The value of data even reaches individual seats in the stadium, where fans can enhance their experience by viewing instant replays and real-time analyses on their mobile devices. Apps can also update fans on concession stand lineups, and allow for in-seat delivery of food and drink. Thanks to the data lake, the ECB can rapidly assess whether features like these are winners with the fans.</span></p> <p><span style="font-weight: 400;">As for new goals, Smith spoke of a determination to attract new audiences to the game, particularly more women, children and families. Acknowledging that cricket’s traditional audience is “pale, male and stale,” Smith credited this year’s Women&#8217;s World Cup with boosting the diversity of the sport’s fan base. The ECB’s new strength in analytics means that the organization “now has the insight and the capability to be able to understand how to attract those new audiences,” he said.</span></p> <p><span style="font-weight: 400;">The future of cricket is brighter than ever, said Smith. “Pythian helped us unlock the value in our data by giving us a platform that enabled us to very quickly integrate disparate data sets and put actionable insight into the hands of the people who need it.”</span></p> <p>Read the <a href="https://pythian.com/clients/england-wales-cricket-board/">full story</a> on how Pythian helped ECB unlock the value of their data.</p> <p>&nbsp;</p> <p><img class="alignnone wp-image-102877" src="https://blog.pythian.com/wp-content/uploads/Blog-2-ECB-UK.png" alt="" width="600" height="344" srcset="https://blog.pythian.com/wp-content/uploads/Blog-2-ECB-UK.png 698w, https://blog.pythian.com/wp-content/uploads/Blog-2-ECB-UK-465x266.png 465w, https://blog.pythian.com/wp-content/uploads/Blog-2-ECB-UK-350x201.png 350w" sizes="(max-width: 600px) 100vw, 600px" /></p> </div></div> Lesley Slack https://blog.pythian.com/?p=102872 Fri Dec 01 2017 08:47:37 GMT-0500 (EST) Coming Soon: A More Forgiving Formatter https://www.thatjeffsmith.com/archive/2017/12/coming-soon-a-more-forgiving-formatter/ <p>For 17.4, the formatter will attempt to format invalid SQL for you.</p> <p>If the parser runs into a problem recognizing your code, it will format it as much as it can. But that&#8217;s not all.</p> <p>It will ALSO go to the end of your statement, and traverse the SQL in the other direction and continue formatting as far as it can.</p> <p>Let&#8217;s look at an example:</p> <p><strong>Before</strong></p> <div id="attachment_6416" style="width: 1054px" class="wp-caption aligncenter"><img src="https://www.thatjeffsmith.com/wp-content/uploads/2017/12/bad-pipe.png" alt="" width="1044" height="238" class="size-full wp-image-6416" /><p class="wp-caption-text">the parser squiggle after the first pipe indicates it doesn&#8217;t understand what&#8217;s going on at that point.</p></div> <p>But hey, let&#8217;s format it anyway.</p> <p>Cause hey, we&#8217;re trying to fix the code, but it&#8217;s so hard to read. We could really use the formatter&#8217;s help.</p> <p><strong>Almost</strong></p> <div id="attachment_6417" style="width: 514px" class="wp-caption aligncenter"><img src="https://www.thatjeffsmith.com/wp-content/uploads/2017/12/bad-pipe2.png" alt="" width="504" height="442" class="size-full wp-image-6417" /><p class="wp-caption-text">Ok, a bit more obvious where the problem is now, and it did format the SQL a good bit.</p></div> <p>Adds the missing pipe |, formats again.</p> <p><strong>After</strong></p> <div id="attachment_6418" style="width: 439px" class="wp-caption aligncenter"><img src="https://www.thatjeffsmith.com/wp-content/uploads/2017/12/bad-pipe3.png" alt="" width="429" height="450" class="size-full wp-image-6418" /><p class="wp-caption-text">Ta-da!</p></div> <h3>When does 17.4 come out?</h3> <p>Soon&#8217;ish. But the name should give you a pretty good hint. </p> <!-- Easy AdSense Unfiltered [count: 3 is not less than 3] --> thatjeffsmith https://www.thatjeffsmith.com/?p=6415 Fri Dec 01 2017 08:35:44 GMT-0500 (EST) Oracle Forms & Reports 12.2.1.3.0 in Docker http://dirknachbar.blogspot.com/2017/12/oracle-forms-reports-122130-in-docker.html After I published yesterday my <a href="http://dirknachbar.blogspot.ch/2017/11/oracle-forms-reports-122120-in-docker.html" target="_blank">Docker solution for Oracle Forms &amp; Reports 12.2.1.2.0,</a> I received several question, if and when there will be a Docker solution for Oracle Forms &amp; Reports 12.2.1.3.0.<br /><br />Here we go, I spent once again some time and created the necessary Docker files and uploaded them to my GitHub Repository&nbsp;<a href="https://github.com/DirkNachbar/Docker" target="_blank">https://github.com/DirkNachbar/Docker</a><br /><br />Now the above referenced Repository contains the necessary Docker files and docker-compose files for building Oracle Forms &amp; Reports 12.2.1.2.0 and Oracle Forms &amp; Reports 12.2.1.3.0.<br /><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-vVA_dvZA6l0/WiEnijBLLcI/AAAAAAAAAxc/RBw8uBVvGoc3UVKP0g1Q6-XH2A8Eo0FcQCLcBGAs/s1600/github_repo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="986" data-original-width="1600" height="390" src="https://2.bp.blogspot.com/-vVA_dvZA6l0/WiEnijBLLcI/AAAAAAAAAxc/RBw8uBVvGoc3UVKP0g1Q6-XH2A8Eo0FcQCLcBGAs/s640/github_repo.png" width="640" /></a></div><br /><br />In the README.md you will find two main sections, "How to build Oracle Forms &amp; Reports 12.2.1.2.0"&nbsp;<a href="https://github.com/DirkNachbar/Docker#how-to-build-oracle-forms--reports-122120" target="_blank">https://github.com/DirkNachbar/Docker#how-to-build-oracle-forms--reports-122120</a> and "How to build Oracle Forms &amp; Reports 12.2.1.3.0"&nbsp;<a href="https://github.com/DirkNachbar/Docker#how-to-build-oracle-forms--reports-122130" target="_blank">https://github.com/DirkNachbar/Docker#how-to-build-oracle-forms--reports-122130</a><br /><br />Feel free to grab a copy of my Repository and enjoy Oracle Forms &amp; Reports under Docker ;-)<br /><br /> Dirk Nachbar tag:blogger.com,1999:blog-4344684978957885806.post-2692515100942788283 Fri Dec 01 2017 05:03:00 GMT-0500 (EST) Enters Amazon Aurora Serverless http://www.fahdmirza.com/2017/11/enters-amazon-aurora-serverless.html <div dir="ltr" style="text-align: left;" trbidi="on">More often than not, database administrators around the technologies have to fight out high load on their databases. It could be ad hoc queries, urgent reports, overflown jobs, or simply high frequency and volume of queries by the end users.<br /><br />DBAs try their best to do a generous capacity planning to ensure optimal response time and throughput for the end users. There are various scenarios where it becomes very hard to predict the demand. Storage and processing needs in case of unpredictable load are hard to foretell in advance.<br /><br /><br /><a name='more'></a><br /><br /><!--more--><br />Cloud computing offers the promise of unmatched scalability for processing and storage needs. Amazon AWS has introduced a new service which gets closer to that ultimate scalability. <a href="https://aws.amazon.com/rds/aurora/">Amazon Aurora</a> is hosted relational database service by AWS. You set your instance size and storage need while setting Aurora up. If your processing requirements change, you change your instance size and if you need more read throughput you add more read replicas.<br /><br />But that is good for the loads we know about and can more ore less predict. What about the loads which appear out of blue? May be for a blogging site, where some post has suddenly gone viral and it has started getting million of views instead of hundreds? And then the traffic disappears after some time suddenly just like it appeared out of nowhere and may be after some days it happens for some another post?<br /><br />In this case if you are running Amazon Aurora, it would be fairly expensive to just increase the instance size or read replicas in the anticipation that some traffic burst would come. It might not, but then it might.<br /><br />In front of this uncertainty, enters <a href="https://aws.amazon.com/rds/aurora/serverless/">Amazon Aurora Serverless</a>. With this Serverless Aurora, you don't select your instance size. You simply specify an endpoint and then all the queries are routed to that endpoint. Behind that endpoint lies a a warm proxy fleet of database capacity which can scale as per your requirements within 5 seconds.<br /><br />It's all on-demand and ideal for transient spiky loads. What's more sweet is that billing is on second by second basis and deals in Aurora capacity units and minimum is 1-minute for each newly address resource.</div> Fahd Mirza tag:blogger.com,1999:blog-3496259157130184660.post-8551070968383972405 Fri Dec 01 2017 00:06:00 GMT-0500 (EST) इक और सुन लो http://ezsaid.blogspot.com/2017/11/blog-post_30.html ashish tag:blogger.com,1999:blog-14142302.post-4898984789772105084 Thu Nov 30 2017 15:23:00 GMT-0500 (EST) UKOUG Tech 2017 http://dbakevlar.com/2017/11/ukoug-tech-2017/ <div class="pf-content"><p><span style="font-size: 12pt;">Its been a couple years since I presented at UKOUG.  After taking last year off to prioritize some projects with Delphix, I&#8217;m back to speaking and the event committee was gracious enough to offer a goth girl a couple spots on the schedule this year.</span></p> <p><a href="http://dbakevlar.com/2017/11/ukoug-tech-2017/appreciate/" rel="attachment wp-att-7483"><img class="alignnone size-full wp-image-7483" src="https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/11/appreciate.gif?resize=500%2C281" alt="" data-recalc-dims="1" /></a></p> <p><span style="font-size: 12pt;">The event is in Birmingham, and although I&#8217;ve never been there, I&#8217;m told by reports, it&#8217;s rather rainy and cold this time of year, so I better prepare, (nothing like people selling you on a location&#8230;:))</span></p> <p><span style="font-size: 12pt;"><strong>I have two sessions this year, the first one is on Super Sunday:</strong></span></p> <p><span style="font-size: 12pt;"><em><a href="http://dbakevlar.com/2017/11/ukoug-tech-2017/rsz_1rsz_tech17_supersunday_v2/" rel="attachment wp-att-7485"><img class="alignnone size-full wp-image-7485" src="https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/11/rsz_1rsz_tech17_supersunday_v2.gif?resize=180%2C180" alt="" data-recalc-dims="1" /></a></em></span></p> <p><span style="font-size: 12pt;"><em>Sunday, Dec. 3rd  at 4pm in the Media Suite</em></span></p> <p><span style="font-size: 12pt; color: #0000ff;"><a style="color: #0000ff;" href="http://supersunday17.ukoug.org/default.asp?p=16256&amp;dlgact=shwprs&amp;prs_prsid=13924&amp;day_dayid=117" target="_blank" rel="noopener"><b>Oracle vs. SQL Server- The war of the Indices</b></a></span></p> <p><span style="font-size: 12pt;">The second is in the standard schedule:</span></p> <p><span style="font-size: 12pt;"><a href="http://dbakevlar.com/2017/11/ukoug-tech-2017/tech17_2/" rel="attachment wp-att-7486"><img class="alignnone wp-image-7486" src="https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/11/tech17_2.png?resize=379%2C91" alt="" srcset="https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/11/tech17_2.png?resize=1024%2C246 1024w, https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/11/tech17_2.png?resize=300%2C72 300w, https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/11/tech17_2.png?resize=768%2C184 768w, https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/11/tech17_2.png?w=1122 1122w" sizes="(max-width: 379px) 100vw, 379px" data-recalc-dims="1" /></a></span></p> <p><span style="font-size: 12pt;"><em>Monday, Dec. 4th at  12:35pm in Hall 1</em></span></p> <p><span style="font-size: 12pt; color: #0000ff;"><a style="color: #0000ff;" href="http://tech17.ukoug.org/default.asp?p=16630&amp;dlgact=shwprs&amp;prs_prsid=13007&amp;day_dayid=116" target="_blank" rel="noopener"><b>Oracle Optimized- AWR, ASH &amp; ADDM Features</b></a></span></p> <p><span style="font-size: 12pt;">I also signed up to chair a few sessions.  It&#8217;s important to give back to the community at large, so I was happy that I had some time to chair the following three sessions:</span></p> <table style="width: 474.262px;"> <tbody> <tr> <td style="width: 39px;"><span style="font-size: 10pt;"><strong>Title</strong></span></td> <td style="width: 46px;"><span style="font-size: 10pt;"><strong>First name</strong></span></td> <td style="width: 64px;"><span style="font-size: 10pt;"><strong>Surname</strong></span></td> <td style="width: 70px;"><span style="font-size: 10pt;"><strong>Company name</strong></span></td> <td style="width: 181.262px;"><span style="font-size: 10pt;"><strong>Title</strong></span></td> </tr> <tr> <td style="width: 39px;"><span style="font-size: 10pt;">Mr</span></td> <td style="width: 46px;"><span style="font-size: 10pt;">Guido</span></td> <td style="width: 64px;"><span style="font-size: 10pt;">Schmutz</span></td> <td style="width: 70px;"><span style="font-size: 10pt;">Trivadis</span></td> <td style="width: 181.262px;"><span style="font-size: 10pt;">Kafka Connect &amp; Kafka Streams &#8211; Powerful Ecosystem Around the Kafka Core</span></td> </tr> <tr> <td style="width: 39px;"><span style="font-size: 10pt;">Mr</span></td> <td style="width: 46px;"><span style="font-size: 10pt;">Mike</span></td> <td style="width: 64px;"><span style="font-size: 10pt;">Durran</span></td> <td style="width: 70px;"><span style="font-size: 10pt;">Oracle</span></td> <td style="width: 181.262px;"><span style="font-size: 10pt;">Oracle Data Visualization &#8211; The Latest &amp; Greatest</span></td> </tr> <tr> <td style="width: 39px;"><span style="font-size: 10pt;">Dr</span></td> <td style="width: 46px;"><span style="font-size: 10pt;">Roger</span></td> <td style="width: 64px;"><span style="font-size: 10pt;">MacNicol</span></td> <td style="width: 70px;"><span style="font-size: 10pt;">Oracle</span></td> <td style="width: 181.262px;"><span style="font-size: 10pt;">Using Oracle Columnar Technologies Across the Information Lifecycle</span></td> </tr> </tbody> </table> <p><span style="font-size: 12pt;">I promise I&#8217;ll only help and won&#8217;t heckle anyone&#8230; <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" />  This is one of the largest European events and it has a lot of backing by the UK community.  I&#8217;m looking forward to:</span></p> <ol> <li><span style="font-size: 12pt;">Present at UKOUG after the haitus.</span></li> <li><span style="font-size: 12pt;">Get to visit with some awesome people at an incredible event.</span></li> <li><span style="font-size: 12pt;">Use up the last of my timezone limbo that I have left over from my trip to DOAG the week before&#8230; <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></span></li> </ol> <p><span style="font-size: 12pt;">See you in Birmingham next week!</span></p> <p>&nbsp;</p> <p>&nbsp;</p> <p>&nbsp;</p> <p>&nbsp;</p> </div><br><br><img src="https://i2.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/ico-tag.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"> Tags:&nbsp;&nbsp;<a href="http://dbakevlar.com/tag/conferences/" rel="tag">Conferences</a>, <a href="http://dbakevlar.com/tag/delphix/" rel="tag">Delphix</a>, <a href="http://dbakevlar.com/tag/ukoug/" rel="tag">UKOUG</a><br><br><div style="width:100%"><table align="left" width="100%" cellspacing="0" cellpadding="0" bgcolor="#f1f1f1" border="0px;"> <tbody> <tr bgcolor="#ffffff"><td align="center" width="17%" valign="top"> <span class="sb_title">Del.icio.us</span><br> <a href="http://del.icio.us/post?url=http://dbakevlar.com/2017/11/ukoug-tech-2017/&title=UKOUG Tech 2017"> <img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/delicious.gif?w=840" border="0" align="absmiddle" data-recalc-dims="1"> </a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">Facebook</span><br> <a href="http://www.facebook.com/share.php?u=http://dbakevlar.com/2017/11/ukoug-tech-2017/"><img src="https://i0.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/facebook_icon.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"></a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">TweetThis</span><br> <a href="http://twitthis.com/twit?url=http://dbakevlar.com/2017/11/ukoug-tech-2017/&title=UKOUG Tech 2017"><img src="https://i2.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tweet.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"></a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">Digg</span><br> <a href="http://digg.com/submit?phase=2&url=http://dbakevlar.com/2017/11/ukoug-tech-2017/&title=UKOUG Tech 2017"><img src="https://i0.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/digg.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"></a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">StumbleUpon</span><br> <a href="http://www.stumbleupon.com/submit?url=http://dbakevlar.com/2017/11/ukoug-tech-2017/&title=UKOUG Tech 2017"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/stumble.gif?w=840" border="0" align="absmiddle" data-recalc-dims="1"></a> </td></tr> </tbody></table></div><br><div style="clear:both"></div><div style="background:#EEEEEE; padding:0px 0px 0px 15px; margin:10px 0px 0px 0px;"><div style="padding:5px 0px 5px 0px;"><b>Comments:</b>&nbsp;&nbsp;<a href="http://dbakevlar.com/2017/11/ukoug-tech-2017/#respond">0 (Zero), Be the first to leave a reply!</a></div><br><div style="clear:both"></div><div style="padding:13px 0px 5px 0px;"><span style="border-bottom:1px dashed #003399;padding-bottom:4px;"><strong>You might be interested in this:</strong></span>&nbsp;&nbsp;<br><ul style="margin:0; padding:0; padding-top:10px; padding-bottom:5px;"><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2016/02/another-rmoug-training-days-success/" >Another RMOUG Training Days Success!</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2017/11/east-coast-oracle-conference-eco-17/" >East Coast Oracle Conference, (ECO 17)</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2017/03/clone-err-cloud-wars/" >Clone...err, Cloud Wars</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2017/05/10-things-love-tech-python-edition/" >10 Things I Love About Tech- Python Edition</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2010/01/to-patch-or-not-to-patch-that-is-the-question/" >To Patch or Not to Patch, that is the Question…</a></li></ul></div></div><hr style="color:#EBEBEB" /><small>Copyright © <a href="http://dbakevlar.com">DBA Kevlar</a> [<a href="http://dbakevlar.com/2017/11/ukoug-tech-2017/">UKOUG Tech 2017</a>], All Right Reserved. 2017.</small><br><p>The post <a rel="nofollow" href="http://dbakevlar.com/2017/11/ukoug-tech-2017/">UKOUG Tech 2017</a> appeared first on <a rel="nofollow" href="http://dbakevlar.com">DBA Kevlar</a>.</p> dbakevlar http://dbakevlar.com/?p=7481 Thu Nov 30 2017 12:28:26 GMT-0500 (EST) Upcoming December Webinars http://www.odtug.com/p/bl/et/blogaid=753&source=1 ODTUG's Online Education: Is there a topic you would like covered but do not see here? We are happy to take webinar suggestions. Email us at kgately@odtug.com. ODTUG http://www.odtug.com/p/bl/et/blogaid=753&source=1 Thu Nov 30 2017 12:19:10 GMT-0500 (EST) Oracle Forms & Reports 12.2.1.2.0 in Docker http://dirknachbar.blogspot.com/2017/11/oracle-forms-reports-122120-in-docker.html As <a href="https://robertcrameslogspot.ch/" target="_blank">Robert Crames</a> and me has developed some times ago a script set to install and configure Oracle Forms &amp; Reports 12.2.1.2.0 completely silent and unattended, the next step was for me to port this all to Docker ;-)<br /><br /><ul><li>Part 1: <a href="https://dirknachbar.blogspot.com/2017/05/how-to-install-and-configure-oracle.html" target="_blank">https://dirknachbar.blogspot.com/2017/05/how-to-install-and-configure-oracle.html</a></li><li>Part 2:&nbsp;<a href="https://robertcrames.blogspot.ch/2017/05/how-to-install-and-configure-oracle.html" target="_blank">https://robertcrames.blogspot.ch/2017/05/how-to-install-and-configure-oracle.html</a>&nbsp;</li></ul><br />Oracle has a really good GitHub Repository (<a href="https://github.com/oracle/docker-images" target="_blank">https://github.com/oracle/docker-images</a>) with several Oracle Products, but no Docker Image for Oracle Forms &amp; Reports :-(<br /><br />So I spent some time and managed to port our above mentioned script set for Oracle Forms &amp; Reports 12.2.1.2.0 to build a Docker image for Oracle Forms &amp; Reports.<br /><br />The complete set of Docker build files and a docker-compose sample can be found under my GitHub Repository&nbsp;<a href="https://github.com/DirkNachbar/Docker" target="_blank">https://github.com/DirkNachbar/Docker</a><br /><br />My solution is mainly based on Oracle Images, but very modified:<br /><br /><ul><li>OracleJava:</li><ul><li>instead of pulling an oraclelinux:7-slim, I am using an oraclelinux:latest.</li><li>instead of using an Oracle Server JRE, I am using an Oracle JDK&nbsp;</li></ul><li>OracleFMWInfrastructure:</li><ul><li>within this Image, which is based on the above OracleJava Image, I am installing all required RPM's for Oracle Forms &amp; Reports, eg. motif, compat-libstdc++-33 and so on and implementing the libXm.so fix directly for Oracle Reports</li></ul><li>OracleFormsReports:</li><ul><li>this is completely new developed by me. This installs on top of the OracleFMWInfrastructure Image the Oracle Forms &amp; Reports 12.2.1.2.0 Software</li><li>with a sample docker-compose file you can create a required Oracle Database based on the Oracle Database Image&nbsp;<a href="https://github.com/oracle/docker-images/tree/master/OracleDatabase" target="_blank">https://github.com/oracle/docker-images/tree/master/OracleDatabase</a> for the Metadata Repository and you can create the Oracle Forms &amp; Reports 12.2.1.2.0 Domain including configuration of an Oracle HTTP Server and an Oracle Reports Server</li><li>The storage location for the Oracle Database Files will be a volume on your Docker host and also the storage location for the $DOMAIN_HOME of the Oracle Forms &amp; Reports 12.2.1.2.0 Domain will be a volume on your Docker host.</li><ul><li>With the usage of the volume on your Docker host, you are able to modify all Oracle Forms &amp; Reports configuration files. E.g. formsweb.cfg, rwserver.conf and so on directly on your Docker host</li></ul></ul></ul><div>I will regularly update my Repository, next ToDo is to provide Docker Images for Oracle Forms &amp; Reports 12.2.1.3.0</div><br /><br /><div>So, feel free to pull my GitHub Repository and play around with my solution ;-) any comments, feature requests are welcome, just drop me a comment here ...</div><div><br /></div><div><b><u>Update 1st December 2017:</u></b> As I received several questions, if and when Oracle Forms &amp; Reports 12.2.1.3.0 in Docker will be available in my GitHub Repository, I spent some time on it and here we go&nbsp;<a href="http://dirknachbar.blogspot.ch/2017/12/oracle-forms-reports-122130-in-docker.html" target="_blank">http://dirknachbar.blogspot.ch/2017/12/oracle-forms-reports-122130-in-docker.html</a><br /><br /><br /></div> Dirk Nachbar tag:blogger.com,1999:blog-4344684978957885806.post-7568026340838096374 Thu Nov 30 2017 10:31:00 GMT-0500 (EST) Advanced Oracle Troubleshooting seminar in 2018! https://blog.tanelpoder.com/2017/11/29/advanced-oracle-troubleshooting-seminar-in-2018/ <p>A lot of people have asked me to do another run of my <a href="https://blog.tanelpoder.com/files/AOT30_description.pdf" target="_blank" rel="noopener">Advanced Oracle Troubleshooting training</a> or at least get access to previous recordings &#8211; so I decided to geek out over the holiday period, update the material with latest stuff and run one more AOT class in <strong>2018</strong>!</p> <p>The online training will take place on <strong>29 January &#8211; 2 February 2018</strong> (Part 1) &amp; <strong>26 February &#8211; 2 March 2018</strong> (Part 2).</p> <p>The latest TOC is below:</p> <ul> <li><a href="https://blog.tanelpoder.com/files/AOT30_description.pdf" target="_blank" rel="noopener">https://blog.tanelpoder.com/files/AOT30_description.pdf</a></li> </ul> <p>Seminar registration details:</p> <ul> <li><a href="https://blog.tanelpoder.com/seminar/">https://blog.tanelpoder.com/seminar/</a></li> </ul> <p>Just like last time (AOT 2.5 about 2 years ago!), the attendees will get <strong>downloadable video recordings</strong> after the sessions for personal use! So, no crappy streaming with 14-day expiry date, you can download the video MP4 files straight to your computer or tablet and keep for your use forever!</p> <p>If you sign up early and can&#8217;t wait until end of January, I can send the <em>registered attendees</em> most of the previous AOT 2.5 video recordings upfront, so you&#8217;d be ready for action in the live class :)</p> <p>I also have a Youtube channel (that you may have missed), there are a couple of introductory videos about how I set up my environment &amp; use some key scripts available now:</p> <ul> <li><a href="https://www.youtube.com/TanelPoder" target="_blank" rel="noopener">https://www.youtube.com/TanelPoder</a></li> </ul> <p>I plan to start posting some more Oracle/Linux/Hadoop stuff in the Youtube channel, but this is quite likely the last AOT class that I do, so see you soon! ;-)</p> <p><em>Update: Here are a couple of teaser screenshots of the stuff you&#8217;ll be seeing a lot ;-)</em></p> <p><img class="alignnone size-large wp-image-3764" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif; font-size: 12px;" src="https://i2.wp.com/blog.tanelpoder.com/wp-content/uploads/2017/11/AOT-method.png?resize=800%2C520" alt="" srcset="https://i2.wp.com/blog.tanelpoder.com/wp-content/uploads/2017/11/AOT-method.png?resize=1024%2C665&amp;ssl=1 1024w, https://i2.wp.com/blog.tanelpoder.com/wp-content/uploads/2017/11/AOT-method.png?resize=300%2C195&amp;ssl=1 300w, https://i2.wp.com/blog.tanelpoder.com/wp-content/uploads/2017/11/AOT-method.png?resize=768%2C499&amp;ssl=1 768w, https://i2.wp.com/blog.tanelpoder.com/wp-content/uploads/2017/11/AOT-method.png?resize=50%2C32&amp;ssl=1 50w, https://i2.wp.com/blog.tanelpoder.com/wp-content/uploads/2017/11/AOT-method.png?w=1600 1600w" sizes="(max-width: 800px) 100vw, 800px" data-recalc-dims="1" /><img class="alignnone size-large wp-image-3763" src="https://i2.wp.com/blog.tanelpoder.com/wp-content/uploads/2017/11/AOT-process-address-space.png?resize=800%2C572" alt="" srcset="https://i2.wp.com/blog.tanelpoder.com/wp-content/uploads/2017/11/AOT-process-address-space.png?resize=1024%2C732&amp;ssl=1 1024w, https://i2.wp.com/blog.tanelpoder.com/wp-content/uploads/2017/11/AOT-process-address-space.png?resize=300%2C214&amp;ssl=1 300w, https://i2.wp.com/blog.tanelpoder.com/wp-content/uploads/2017/11/AOT-process-address-space.png?resize=768%2C549&amp;ssl=1 768w, https://i2.wp.com/blog.tanelpoder.com/wp-content/uploads/2017/11/AOT-process-address-space.png?resize=50%2C36&amp;ssl=1 50w, https://i2.wp.com/blog.tanelpoder.com/wp-content/uploads/2017/11/AOT-process-address-space.png?w=1600 1600w" sizes="(max-width: 800px) 100vw, 800px" data-recalc-dims="1" /></p> <p> <em><strong>NB!</strong> I am running one more <a href="https://blog.tanelpoder.com/files/AOT30_description.pdf" target="_blank">Advanced Oracle Troubleshooting training</a> in 2018! You can attend the live online training and can download personal video recordings too. The Part 1 starts on 29th January 2018 - <a href="https://blog.tanelpoder.com/seminar/" target="_blank">sign up here!</a></em> </p> <div class="crp_related "><h4>Related Posts</h4><ul><li><a href="https://blog.tanelpoder.com/2015/10/09/advanced-oracle-troubleshooting-v2-5-with-12c-stuff-too/" ><span class="crp_title">Advanced Oracle Troubleshooting v2.5 (with 12c stuff too)</span></a></li><li><a href="https://blog.tanelpoder.com/2015/04/24/advanced-oracle-troubleshooting-guide-part-12-control-file-parallel-reads-causing-enq-sq-contention-waits/" ><span class="crp_title">Advanced Oracle Troubleshooting Guide &#8211; Part 12: control file reads causing enq: SQ&hellip;</span></a></li><li><a href="https://blog.tanelpoder.com/2015/11/10/troubleshooting-another-complex-performance-issue-oracle-direct-path-inserts-and-seg-contention/" ><span class="crp_title">Troubleshooting Another Complex Performance Issue &#8211; Oracle direct path inserts and&hellip;</span></a></li><li><a href="https://blog.tanelpoder.com/2017/01/18/im-speaking-at-advanced-spark-meetup-attending-deep-learning-workshop-in-san-francisco/" ><span class="crp_title">I&#8217;m speaking at Advanced Spark Meetup &#038; attending Deep Learning Workshop in San Francisco</span></a></li><li><a href="https://blog.tanelpoder.com/2014/03/26/oracle-memory-troubleshooting-part-4-drilling-down-into-pga-memory-usage-with-vprocess_memory_detail/" ><span class="crp_title">Oracle Memory Troubleshooting, Part 4: Drilling down into PGA memory usage with&hellip;</span></a></li></ul><div class="crp_clear"></div></div> Tanel Poder http://blog.tanelpoder.com/?p=3748 Wed Nov 29 2017 17:24:06 GMT-0500 (EST) Implementing Authentication for REST API calls from JET Applications embedded in ADF or WebCenter Portal using JSON Web Token (JWT) https://technology.amis.nl/2017/11/29/implementing-authentication-for-rest-api-calls-from-jet-applications-embedded-in-adf-or-webcenter-portal-using-json-web-token-jwt/ <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/11/image-122.png?ssl=1"><img style="margin: 0px; float: right; display: inline; background-image: none;" title="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/11/image_thumb-115.png?resize=702%2C390&#038;ssl=1" alt="image" width="702" height="390" align="right" border="0" data-recalc-dims="1" /></a>The situation discussed in this article is as follows: a rich client web application (JavaScript based, could be created with Oracle JET or based on Angular/Vue/React/Ember/…) is embedded in an ADF or WebCenter Portal application. Users are authenticated in that application through a regular login procedure that leverages the OPSS (Oracle Platform Security Service) in WebLogic, authenticating against an LDAP directory or another type of security provider. The embedded rich web application makes calls to REST APIs. These APIs enforce authentication and authorization – to prevent rogue calls. Note: these APIs have to be accessible from wherever the users are working with the ADF or WebCenter Portal application.</p> <p>This article describes how the authenticated HTTP Session context in ADF – where we have the security context with authenticated principal with subjects and roles – can be leveraged to generate a secure token that can be passed to the embedded client web application and subsequently used by that application to make calls to REST APIs that can verify through that token that an authenticated user is making the call. The REST API can also extract relevant information from the token – such as the user’s identity, permissions or entitlements and custom attributes. The token could also be used by the REST API to retrieve additional information about the user and his or her session context.</p> <p>Note: if calls are made to REST APIs that are deployed as part of the enterprise application (same EAR file) that contains the ADF or WebCenter Portal application, then the session cookie mechanism ensures that the REST API handles the request in the same [authenticated]session context. In that case, there is no need for a token exchange.</p> <p>&nbsp;</p> <p>Steps described in this article:</p> <ol> <li>Create a managed session bean that can be called upon to generate the JWT Token</li> <li>Include the token from this session bean in the URL that loads the client web application into the IFrame embedded in the ADF application</li> <li>Store the token in the web client</li> <li>Append the token to REST API calls made from the client application</li> <li>Receive and inspect the token inside the REST API to ensure the authenticated status of the user; extract additional information from the token</li> </ol> <p>As a starting point, we will assume an ADF application for which security has been configured, forcing users accessing the application to login by providing user credentials.</p> <p>The complete application in a working – though somewhat crude &#8211; form with code that absolutely not standards compliant nor production ready can be found on GitHub: <a title="https://github.com/lucasjellema/adf-embedded-js-client-token-rest" href="https://github.com/lucasjellema/adf-embedded-js-client-token-rest">https://github.com/lucasjellema/adf-embedded-js-client-token-rest</a>.</p> <p>&nbsp;</p> <h3>Create a managed session bean that can be called upon to generate the JWT Token</h3> <p>I will use a managed bean to generate the JWT Token, either in session scope (to reuse the token) or in request scope (to generate fresh tokens on demand) .</p> <p>JDeveloper and WebLogic both ship with libraries that support the generation of JWT Tokens. In a Fusion Web Application the correct libraries are present by default. Anyone of these libraries will suffice:</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/11/image-123.png?ssl=1"><img style="margin: 0px auto; float: none; display: block; background-image: none;" title="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/11/image_thumb-116.png?resize=361%2C412&#038;ssl=1" alt="image" width="361" height="412" border="0" data-recalc-dims="1" /></a></p> <p>I create a new class as the Token Generator:</p> <pre class="brush: java; title: ; notranslate"> package nl.amis.portal.view; import java.util.Date; import javax.faces.bean.SessionScoped; import javax.faces.bean.ManagedBean; import oracle.adf.share.ADFContext; import oracle.adf.share.security.SecurityContext; import oracle.security.restsec.jwt.JwtToken; import java.util.HashMap; import java.util.Map; @ManagedBean @SessionScoped public class SessionTokenGenerator { private String token = &quot;;&quot;; private final String secretKey = &quot;SpecialKeyKeepSecret&quot;; public SessionTokenGenerator() { super(); ADFContext adfCtx = ADFContext.getCurrent(); SecurityContext secCntx = adfCtx.getSecurityContext(); String user = secCntx.getUserPrincipal().getName(); String _user = secCntx.getUserName(); try { String jwt = generateJWT(user, &quot;some parameter value - just because we can&quot;, _user, secretKey); this.token = jwt; } catch (Exception e) { } } public String generateJWT(String subject, String extraParam, String extraParam2, String myKey) throws Exception { String result = null; JwtToken jwtToken = new JwtToken(); //Fill in all the parameters- algorithm, issuer, expiry time, other claims etc jwtToken.setAlgorithm(JwtToken.SIGN_ALGORITHM.HS512.toString()); jwtToken.setType(JwtToken.JWT); jwtToken.setClaimParameter(&quot;ExtraParam&quot;, extraParam); jwtToken.setClaimParameter(&quot;ExtraParam2&quot;, extraParam2); long nowMillis = System.currentTimeMillis(); Date now = new Date(nowMillis); jwtToken.setIssueTime(now); // expiry = 5 minutes - only for demo purposes; in real life, several hours - equivalent to HttpSession Timeout in web.xml - seems more realistic jwtToken.setExpiryTime(new Date(nowMillis + 5*60*1000)); jwtToken.setSubject(subject); jwtToken.setIssuer(&quot;ADF_JET_REST_APP&quot;); // Get the private key and sign the token with a secret key or a private key result = jwtToken.signAndSerialize(myKey.getBytes()); return result; } public String getToken() { return token; } } </pre> <h3>Embed the Web Client Application</h3> <p>The ADF Application consists of main page – index.jsf – that contains a region binding a taskflow that in turn contains a page fragment (client-app.jsff) that consists of a panelStretchLayout that contains an inline frame (rendered as an IFrame) that loads the web client application.</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/11/image-124.png?ssl=1"><img style="margin: 0px auto; float: none; display: block; background-image: none;" title="image" src="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/11/image_thumb-117.png?resize=702%2C249&#038;ssl=1" alt="image" width="702" height="249" border="0" data-recalc-dims="1" /></a></p> <p>The JWT token (just a long string) has to be included in the URL that loads the client web application into the IFrame. This is easily done by adding an EL Expression in the URL property:</p> <pre class="brush: xml; title: ; notranslate"> &lt;af:inlineFrame source=&quot;client-web-app/index.xhtml?token=#{sessionTokenGenerator.token}&quot; id=&quot;if1&quot; sizing=&quot;preferred&quot; styleClass=&quot;AFStretchWidth&quot;/&gt; </pre> <p>&nbsp;</p> <h3>Store the token in the web client</h3> <p>When the client application is loaded, the token can be retrieved from the query parameters. An extremely naive implementation uses an onLoad event trigger on the body object to call a function that reads the token from the query parameters on the window.location.href object and stores it in the session storage:</p> <pre class="brush: jscript; title: ; notranslate"> function getQueryParams() { token = getParameterByName('token'); if (token) { document.getElementById('content').innerHTML += '&lt;br&gt;Token was received and saved in the client for future REST calls'; // Save token to sessionStorage sessionStorage.setItem('portalToken', token); } else document.getElementById('content').innerHTML += '&lt;br&gt;Token was NOT received; you will not be able to use this web application in a meaningful way'; } function getParameterByName(name, url) { if (!url) url = window.location.href; var regex = new RegExp(&quot;[?&amp;]&quot; + name + &quot;(=([^&amp;#]*)|&amp;|#|$)&quot;), results = regex.exec(url); if (!results) return null; if (!results[2]) return ''; return decodeURIComponent(results[2].replace(/\+/g, &quot; &quot;)); } </pre> <p>If we wanted to so do, we can parse the token in the client and extract information from it – using a function like this one:</p> <p>&nbsp;</p> <pre class="brush: jscript; title: ; notranslate"> function parseJwt(token) { var base64Url = token.split('.')[1]; var base64 = base64Url.replace('-', '+').replace('_', '/'); return JSON.parse(window.atob(base64)); }; </pre> <p>&nbsp;</p> <h3>Append the token to REST API calls made from the client application</h3> <p>Whenever the client application makes REST API calls, it should include the JWT token in an HTTP Header. Here is example code for making an AJAX style REST API call – with the token included in the Authorization header:</p> <pre class="brush: jscript; title: ; notranslate"> function callServlet() { var portalToken = sessionStorage.getItem('portalToken'); // in this example the REST API runs on the same host and port as the ADF Application; that need not be the case - the following URL is also a good example: // var targetURL = 'http://some.otherhost.com:8123/api/things'; var targetURL = '/ADF_JET_REST-ViewController-context-root/restproxy/rest-api/person'; var xhr = new XMLHttpRequest(); xhr.open('GET', targetURL) xhr.setRequestHeader(&quot;Authorization&quot;, &quot;Bearer &quot; + portalToken); xhr.onload = function () { if (xhr.status === 200) { alert('Response ' + xhr.responseText); } else { alert('Request failed. Returned status of ' + xhr.status); } }; xhr.send(); } </pre> <p>&nbsp;</p> <h3>Receive and inspect the token inside the REST API to ensure the authenticated status of the user</h3> <p>Depending on how the REST API is implemented – for example Java with JAX-RS, Node with Express, Python, PHP, C# – the inspection of the token will take a place in a slightly different way.</p> <p>With JAX-RS based REST APIs running on a Java EE Web Server, one possible approach to inspection of the token is using a ServletFilter. This filter can front the JAX-RS service and stay completely independent of it. By mapping the Servlet Filter to all URL paths on which REST APIs can be accessed, we ensure that these REST APIs can only be accessed by requests that contain valid tokens.</p> <p>A more simplistic, less elegant approach is to just make the inspection of the token an explicit part of the REST API. The Java code required for both approaches is very similar. Here is the code I used in a simple servlet that sits between the incoming REST API request and the actual REST API as a proxy that verifies the token, does the CORS headers and does the routing:</p> <p>&nbsp;</p> <pre class="brush: java; title: ; notranslate"> package nl.amis.portal.view; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintWriter; import java.net.HttpURLConnection; import java.net.URL; import javax.servlet.*; import javax.servlet.annotation.WebServlet; import javax.servlet.http.*; import javax.ws.rs.core.HttpHeaders; import oracle.adf.share.ADFContext; import oracle.adf.share.security.SecurityContext; import java.util.Date; import java.util.Map; import oracle.security.restsec.jwt.JwtException; import oracle.security.restsec.jwt.JwtToken; import oracle.security.restsec.jwt.VerifyException; @WebServlet(name = &quot;RESTProxy&quot;, urlPatterns = { &quot;/restproxy/*&quot; }) public class RESTProxy extends HttpServlet { private static final String CONTENT_TYPE = &quot;application/json; charset=UTF-8&quot;; private final String secretKey = &quot;SpecialKeyKeepSecret&quot;; public void init(ServletConfig config) throws ServletException { super.init(config); } private TokenDetails validateToken(HttpServletRequest request) { TokenDetails td = new TokenDetails(); try { boolean tokenAccepted = false; boolean tokenValid = false; // 1. check if request contains token // Get the HTTP Authorization header from the request String authorizationHeader = request.getHeader(HttpHeaders.AUTHORIZATION); // Extract the token from the HTTP Authorization header String tokenString = authorizationHeader.substring(&quot;Bearer&quot;.length()).trim(); String jwtToken = &quot;&quot;; String issuer = &quot;&quot;; td.setIsTokenPresent(true); try { JwtToken token = new JwtToken(tokenString); // verify whether token was signed with my key boolean result = token.verify(secretKey.getBytes()); if (!result) { td.addMotivation(&quot;Token was not signed with correct key&quot;); } else { td.setIsTokenVerified(true); td.setJwtTokenString(tokenString); tokenAccepted = false; } // Validate the issued and expiry time stamp. if (token.getExpiryTime().after(new Date())) { jwtToken = tokenString; tokenValid = true; td.setIsTokenFresh(true); } else { td.addMotivation(&quot;Token has expired&quot;); } // Get the issuer from the token issuer = token.getIssuer(); // possibly validate/verify the issuer as well td.setIsTokenAccepted(td.isIsTokenPresent() &amp;&amp; td.isIsTokenFresh() &amp;&amp; td.isIsTokenVerified()); return td; } catch (JwtException e) { td.addMotivation(&quot;No valid token was found in request&quot;); } catch (VerifyException e) { td.addMotivation(&quot;Token was not verified (not signed using correct key&quot;); } } catch (Exception e) { td.addMotivation(&quot;No valid token was found in request&quot;); } return td; } private void addCORS(HttpServletResponse response) { response.setHeader(&quot;Access-Control-Allow-Origin&quot;, &quot;*&quot;); response.setHeader(&quot;Access-Control-Allow-Methods&quot;, &quot;POST, GET, OPTIONS, DELETE&quot;); response.setHeader(&quot;Access-Control-Max-Age&quot;, &quot;3600&quot;); response.setHeader(&quot;Access-Control-Allow-Headers&quot;, &quot;x-requested-with&quot;); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { TokenDetails td = validateToken(request); if (!td.isIsTokenAccepted()) { response.setContentType(CONTENT_TYPE); response.setStatus(HttpServletResponse.SC_FORBIDDEN); response.addHeader(&quot;Refusal-Motivation&quot;, td.getMotivation()); addCORS(response); response.getOutputStream().close(); } else { // optionally parse token, extract details for user // get URL path for REST call String pathInfo = request.getPathInfo(); // redirect the API call/ call API and return result URL url = new URL(&quot;http://127.0.0.1:7101/RESTBackend/resources&quot; + pathInfo); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod(&quot;GET&quot;); conn.setRequestProperty(&quot;Accept&quot;, &quot;application/json&quot;); if (conn.getResponseCode() != 200) { throw new RuntimeException(&quot;Failed : HTTP error code : &quot; + conn.getResponseCode()); } BufferedReader br = new BufferedReader(new InputStreamReader((conn.getInputStream()))); response.setContentType(CONTENT_TYPE); // see http://javahonk.com/enable-cors-cross-origin-requests-restful-web-service/ addCORS(response); response.setStatus(conn.getResponseCode()); RESTProxy.copyStream(conn.getInputStream(), response.getOutputStream()); response.getOutputStream().close(); } // token valid so continue } public static void copyStream(InputStream input, OutputStream output) throws IOException { byte[] buffer = new byte[1024]; // Adjust if you want int bytesRead; while ((bytesRead = input.read(buffer)) != -1) { output.write(buffer, 0, bytesRead); } } private class TokenDetails { private String jwtTokenString; private String motivation; private boolean isJSessionEstablished; // Http Session could be reestablished private boolean isTokenVerified; // signed with correct key private boolean isTokenFresh; // not expired yet private boolean isTokenPresent; // is there a token at all private boolean isTokenValid; // can it be parsed private boolean isTokenIssued; // issued by a trusted token issuer private boolean isTokenAccepted = false; // overall conclusion ... plus getters and setters } </pre> <p>&nbsp;</p> <h3>Running the ADF Application with the Embedded Client Web Application</h3> <p>When  accessing the ADF application in the browser, we are prompted with the login dialog:</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/11/image-125.png?ssl=1"><img style="margin: 0px auto; float: none; display: block; background-image: none;" title="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/11/image_thumb-118.png?resize=702%2C257&#038;ssl=1" alt="image" width="702" height="257" border="0" data-recalc-dims="1" /></a></p> <p>After successful authentication, the ADF Web Application renders its first page. This includes the Taskflow that contains the Inline Frame that loads the client web application using a URL that contains the token.</p> <p><a href="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/11/image-126.png?ssl=1"><img style="margin: 0px auto; float: none; display: block; background-image: none;" title="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/11/image_thumb-119.png?resize=702%2C145&#038;ssl=1" alt="image" width="702" height="145" border="0" data-recalc-dims="1" /></a></p> <p>When the link is clicked in the client web application, the AJAX call is made – the call that has the token included in a Authorization Request header. The first time we make the call, the result is shown as returned from the REST API</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/11/image-127.png?ssl=1"><img style="margin: 0px auto; float: none; display: block; background-image: none;" title="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/11/image_thumb-120.png?resize=541%2C239&#038;ssl=1" alt="image" width="541" height="239" border="0" data-recalc-dims="1" /></a></p> <p>However, a second call after more than 5 minutes fails:</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/11/image-128.png?ssl=1"><img style="margin: 0px auto; float: none; display: block; background-image: none;" title="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/11/image_thumb-121.png?resize=541%2C160&#038;ssl=1" alt="image" width="541" height="160" border="0" data-recalc-dims="1" /></a></p> <p>Upon closer inspection of the request, we find the reason: the token has expired:</p> <p><a href="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/11/image-129.png?ssl=1"><img style="margin: 0px auto; float: none; display: block; background-image: none;" title="image" src="https://i2.wp.com/technology.amis.nl/wp-content/uploads/2017/11/image_thumb-122.png?resize=696%2C412&#038;ssl=1" alt="image" width="696" height="412" border="0" data-recalc-dims="1" /></a></p> <p>The token based authentication has done a good job.</p> <p>Similarly, when we try to access the REST API directly – we need to have a valid token or we are unsuccessful:</p> <p><a href="https://i1.wp.com/technology.amis.nl/wp-content/uploads/2017/11/image-130.png?ssl=1"><img style="margin: 0px auto; float: none; display: block; background-image: none;" title="image" src="https://i0.wp.com/technology.amis.nl/wp-content/uploads/2017/11/image_thumb-123.png?resize=702%2C315&#038;ssl=1" alt="image" width="702" height="315" border="0" data-recalc-dims="1" /></a></p> <p>&nbsp;</p> <h3>Inspect token in Node based REST API</h3> <p>REST APIs can be implemented in various technologies. One popular option is Node – using server side JavaScript. Node applications are perfectly capable of doing inspection of JWT tokens – verifying their validity and extracting information from the token. A simple example is shown here – using the NPM module <em>jsonwebtoken</em>:</p> <p>&nbsp;</p> <pre class="brush: jscript; title: ; notranslate"> // Handle REST requests (POST and GET) for departments var express = require('express') //npm install express , bodyParser = require('body-parser') // npm install body-parser , http = require('http') ; var jwt = require('jsonwebtoken'); var PORT = process.env.PORT || 8123; const app = express() .use(bodyParser.urlencoded({ extended: true })) ; const server = http.createServer(app); var allowCrossDomain = function (req, res, next) { res.header('Access-Control-Allow-Origin', '*'); res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS'); res.header('Access-Control-Allow-Headers', 'Content-Type'); res.header('Access-Control-Allow-Credentials', true); res.header(&quot;Access-Control-Allow-Headers&quot;, &quot;Access-Control-Allow-Headers, Origin,Accept, X-Requested-With, Content-Type, Authorization, Access-Control-Request-Method, Access-Control-Request-Headers&quot;); next(); } app.use(allowCrossDomain); server.listen(PORT, function listening() { console.log('Listening on %d', server.address().port); }); app.get('/api/things', function (req, res) { // check header or url parameters or post parameters for token var token = req.body.token || req.query.token || req.headers['x-access-token']; if (req.headers &amp;&amp; req.headers.authorization) { var parts = req.headers.authorization.split(' '); if (parts.length === 2 &amp;&amp; parts[0] === 'Bearer') { // two tokens sent in the request if (token) { error = true; } token = parts[1]; } } var decoded = jwt.decode(token); // get the decoded payload and header var decoded = jwt.decode(token, { complete: true }); var subject = decoded.payload.sub; var issuer = decoded.payload.iss; // verify key var myKey = &quot;SpecialKeyKeepSecret&quot;; var rejectionMotivation; var tokenValid = false; jwt.verify(token, myKey, function (err, decoded) { if (err) { rejectionMotivation = err.name + &quot; - &quot; + err.message; } else { tokenValid = true; } }); if (!tokenValid) { res.status(403); res.header(&quot;Refusal-Motivation&quot;, rejectionMotivation); res.end(); } else { // do the thing the REST API is supposed to do var things = { &quot;collection&quot;: [{ &quot;name&quot;: &quot;bicycle&quot; }, { &quot;name&quot;: &quot;table&quot; }, { &quot;name&quot;: &quot;car&quot; }] } res.status(200); res.header('Content-Type', 'application/json'); res.end(JSON.stringify(things)); } } }); </pre> <p>The post <a rel="nofollow" href="https://technology.amis.nl/2017/11/29/implementing-authentication-for-rest-api-calls-from-jet-applications-embedded-in-adf-or-webcenter-portal-using-json-web-token-jwt/">Implementing Authentication for REST API calls from JET Applications embedded in ADF or WebCenter Portal using JSON Web Token (JWT)</a> appeared first on <a rel="nofollow" href="https://technology.amis.nl">AMIS Oracle and Java Blog</a>.</p> Lucas Jellema https://technology.amis.nl/?p=46990 Wed Nov 29 2017 06:00:54 GMT-0500 (EST) Database Scoped Configurations http://dbakevlar.com/2017/11/database-scoped-configurations/ <div class="pf-content"><p>As most of you know, I&#8217;m working to update all of my SQL Server knowledge, which hasn&#8217;t gone as deep as I would like since SQL Server 2012.</p> <p><a href="http://dbakevlar.com/2017/11/database-scoped-configurations/dive_deep/" rel="attachment wp-att-7455"><img class="alignnone size-full wp-image-7455" src="https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/11/dive_deep.gif?resize=480%2C270" alt="" data-recalc-dims="1" /></a></p> <p>So there are a couple things we&#8217;re going to focus on today, first of which is the top in the list which I&#8217;ve highlighted, Legacy Cardinality Estimation:</p> <p><a href="http://dbakevlar.com/2017/11/database-scoped-configurations/sql2017_1/" rel="attachment wp-att-7456"><img class="alignnone size-full wp-image-7456" src="https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/11/sql2017_1.png?resize=840%2C273" alt="" srcset="https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/11/sql2017_1.png?w=941 941w, https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/11/sql2017_1.png?resize=300%2C98 300w, https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/11/sql2017_1.png?resize=768%2C250 768w" sizes="(max-width: 840px) 100vw, 840px" data-recalc-dims="1" /></a></p> <p>By default, this value is turned off and as the optimizer is essential to database performance and in each database platform, handled differently, it&#8217;s worth starting to disect.  The Database Scoped Configuration settings, which are database specific, and can be accessed via the SSMS, right clicking on the database and left clicking on <strong>Database</strong> <strong>Properties</strong> and on <strong>Options</strong>.</p> <p>The second is to query sys.database_scoped_configurations:</p> <pre>SELECT name, value FROM sys.database_scoped_configurations;</pre> <p>The values from here will be displayed as the numerical values for ON=1 and OFF=0</p> <p><a href="http://dbakevlar.com/2017/11/database-scoped-configurations/sql2017_2/" rel="attachment wp-att-7457"><img class="alignnone wp-image-7457" src="https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/11/sql2017_2.png?resize=280%2C136" alt="" srcset="https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/11/sql2017_2.png?w=574 574w, https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/11/sql2017_2.png?resize=300%2C146 300w" sizes="(max-width: 280px) 100vw, 280px" data-recalc-dims="1" /></a></p> <p>Only the MAXDOP, (Maximum Degree of Parallelism) is a numerical value vs. On/Off.  This is proven after I save my update to the MAX DOP shown at the properties for the database that will immediately change the value of DOP allowed from none to four.  Needless to say, this was just to prove the update and I reverted it to 0 vs. a distinct value.</p> <p><a href="http://dbakevlar.com/2017/11/database-scoped-configurations/sql2017_3/" rel="attachment wp-att-7459"><img class="alignnone wp-image-7459" src="https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/11/sql2017_3.png?resize=298%2C148" alt="" srcset="https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/11/sql2017_3.png?w=581 581w, https://i1.wp.com/dbakevlar.com/wp-content/uploads/2017/11/sql2017_3.png?resize=300%2C149 300w" sizes="(max-width: 298px) 100vw, 298px" data-recalc-dims="1" /></a></p> <p>The Legacy_Cardinality_Estimation is part of a larger feature that controls feature versioning choices for the optimizer in SQL Server.</p> <h4>Legacy Cardinality Estimation</h4> <p>Oracle DBAs have used the CARDINALITY hint for some time and it should be understood that this may appear to be similar, but is actually quite different.  As hinting in TSQL is a bit different than PL/SQL, we can compare similar queries to assist:</p> <h5>TSQL</h5> <pre>SELECT CustomerId, OrderAddedDate FROM OrderTable WHERE OrderAddedDate &gt;= '2016-05-01'; OPTION (USE HINT ('FORCE_LEGACY_CARDINALITY_ESTIMATION')); go</pre> <h5>PL/SQL</h5> <p>Where you might first mistake the CE hint for the following CARDINALITY hint in Oracle:</p> <pre>SELECT /*+ CARDINALITY(ORD,15000) */ ORD.CUSTOMER_ID, ORD.ORDER_DATE FROM ORDERS ORD WHERE ORD.ORDER_DATE &gt;= '2016-05-01';</pre> <p>This would be incorrect and the closest hint in Oracle to SQL Server&#8217;s legacy CE hint would be the optimizer feature hint:</p> <pre class="oac_no_warn" xml:space="preserve">SELECT /*+ optimizer_features_enable('9.2.0.7') */ ORD.CUSTOMER_ID, ORD.ORDER_DATE FROM ORDERS ORD WHERE ORD.ORDER_DATE &gt;= '2016-05-01';</pre> <p class="oac_no_warn">If you&#8217;re wondering why I chose a 9i version to force the optimizer to, keep reading and you&#8217;ll come to understand.</p> <p class="oac_no_warn">To check the compatibility version, as well as setting it per database in SQL Server, we would perform the following:</p> <pre xml:space="preserve">SELECT ServerProperty('ProductVersion');    SELECT d.name, d.compatibility_level FROM sys.databases AS d WHERE d.name = '&lt;Database_name&gt;';</pre> <p>To update the compatibility version to the latest version to match our SQL Server vNext database engine, we&#8217;d run the following command:</p> <pre xml:space="preserve">ALTER DATABASE &lt;yourDatabase&gt; SET COMPATIBILITY_LEVEL = 140;</pre> <p>Let&#8217;s assume we just upgraded our database to 140, (SQL Server 2017) and are experiencing some serious performance issues that didn&#8217;t appear during testing.  We could choose to set the compatibility level to 130, (SQL Server 2016) to temporarily address the performance problem, allowing the optimizer to use previous version features, while we troubleshoot the issue.</p> <pre>ALTER DATABASE &lt;yourDatabase&gt; SET COMPATIBILITY_LEVEL = 130;</pre> <p>Now database engine and compatibility is an odd thing, just like in  Oracle.  To understand the versions that are out there, here&#8217;s a handy reference:</p> <p><a href="http://dbakevlar.com/2017/11/database-scoped-configurations/sqlserver_versions/" rel="attachment wp-att-7463"><img class="alignnone wp-image-7463" src="https://i2.wp.com/dbakevlar.com/wp-content/uploads/2017/11/sqlserver_versions.png?resize=436%2C554" alt="" srcset="https://i2.wp.com/dbakevlar.com/wp-content/uploads/2017/11/sqlserver_versions.png?w=671 671w, https://i2.wp.com/dbakevlar.com/wp-content/uploads/2017/11/sqlserver_versions.png?resize=236%2C300 236w" sizes="(max-width: 436px) 100vw, 436px" data-recalc-dims="1" /></a></p> <p>Now you will notice that their isn&#8217;t a value for SQL Server 7 when setting compatibility.  Even though 70 might be the version value, the ability to set back to it requires a different answer to the fix than you see for newer versions.  First of all, if you&#8217;re still forcing compatibility down to version 7, we need to have a serious talk, but if you need to force compatibility back to version 7, this is where we get into crazy land&#8230; <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p> <pre>ALTER DATABASE SCOPED CONFIGURATION LEGACY_CARDINALITY_ESTIMATION = ON;</pre> <p>This option will then allow you to override the compatibility level value of a given database.  What this means is that you can have a database with:</p> <ul> <li>Product version: 140, (SQL Server 2017)</li> <li>Compatibility version: 120, (SQL Server 2016)</li> <li>and then turn scoped database configuration on for legacy cardinality estimation and use the optimizer compatibility features for 100, (SQL Server 2012)</li> </ul> <p>When performance challenges occur, this can create an incredibly complex situation.  The optimizer is an incredible set of features and it becomes more complex with each release.  New features can impact how previous optimizer features once performed and when scoped database configuration for legacy cardinality estimates are turned on, it can really create a puzzle box for the DBA to diagnose.  The recommendation is turn on the query store, pull an XML trace of the process performance and then view the specific information at deep detail of what the optimizer did during the execution.</p> <p>I believe as many do, fixing something right is a better choice than bringing a performance issue requiring an optimizer value override for more than one version.   If you do have to make this decision as a last resort, do so with the idea that its a temporary solution.  I&#8217;d feel this way if it was Oracle or SQL Server.  I know there was a demand to have this feature by some powerful customer at some point, but we all know it will end up creating more pain than gain in the end.</p> <p>&nbsp;</p> <p>&nbsp;</p> <p>&nbsp;</p> </div><br><br><img src="https://i2.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/ico-tag.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"> Tags:&nbsp;&nbsp;<a href="http://dbakevlar.com/tag/azure/" rel="tag">azure</a>, <a href="http://dbakevlar.com/tag/sql-server/" rel="tag">SQL Server</a><br><br><div style="width:100%"><table align="left" width="100%" cellspacing="0" cellpadding="0" bgcolor="#f1f1f1" border="0px;"> <tbody> <tr bgcolor="#ffffff"><td align="center" width="17%" valign="top"> <span class="sb_title">Del.icio.us</span><br> <a href="http://del.icio.us/post?url=http://dbakevlar.com/2017/11/database-scoped-configurations/&title=Database Scoped Configurations"> <img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/delicious.gif?w=840" border="0" align="absmiddle" data-recalc-dims="1"> </a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">Facebook</span><br> <a href="http://www.facebook.com/share.php?u=http://dbakevlar.com/2017/11/database-scoped-configurations/"><img src="https://i0.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/facebook_icon.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"></a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">TweetThis</span><br> <a href="http://twitthis.com/twit?url=http://dbakevlar.com/2017/11/database-scoped-configurations/&title=Database Scoped Configurations"><img src="https://i2.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tweet.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"></a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">Digg</span><br> <a href="http://digg.com/submit?phase=2&url=http://dbakevlar.com/2017/11/database-scoped-configurations/&title=Database Scoped Configurations"><img src="https://i0.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/digg.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"></a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">StumbleUpon</span><br> <a href="http://www.stumbleupon.com/submit?url=http://dbakevlar.com/2017/11/database-scoped-configurations/&title=Database Scoped Configurations"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/stumble.gif?w=840" border="0" align="absmiddle" data-recalc-dims="1"></a> </td></tr> </tbody></table></div><br><div style="clear:both"></div><div style="background:#EEEEEE; padding:0px 0px 0px 15px; margin:10px 0px 0px 0px;"><div style="padding:5px 0px 5px 0px;"><b>Comments:</b>&nbsp;&nbsp;<a href="http://dbakevlar.com/2017/11/database-scoped-configurations/#comments">1 (One) on this item</a></div><br><div style="clear:both"></div><div style="padding:13px 0px 5px 0px;"><span style="border-bottom:1px dashed #003399;padding-bottom:4px;"><strong>You might be interested in this:</strong></span>&nbsp;&nbsp;<br><ul style="margin:0; padding:0; padding-top:10px; padding-bottom:5px;"><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2016/04/mentoring/" >Mentoring</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2010/01/the-blogger-newbie-quest/" >The Blogger Newbie Quest</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2017/04/indexing-oracle-fragmentation/" >Indexing in Oracle, Fragmentation</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2014/06/installation-of-ash-analytics-with-em12c-rel4/" >Installation of ASH Analytics with EM12c Rel4</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2017/11/kudos-pass-summit-2017/" >Kudos to Pass Summit 2017</a></li></ul></div></div><hr style="color:#EBEBEB" /><small>Copyright © <a href="http://dbakevlar.com">DBA Kevlar</a> [<a href="http://dbakevlar.com/2017/11/database-scoped-configurations/">Database Scoped Configurations</a>], All Right Reserved. 2017.</small><br><p>The post <a rel="nofollow" href="http://dbakevlar.com/2017/11/database-scoped-configurations/">Database Scoped Configurations</a> appeared first on <a rel="nofollow" href="http://dbakevlar.com">DBA Kevlar</a>.</p> dbakevlar http://dbakevlar.com/?p=7454 Tue Nov 28 2017 13:22:46 GMT-0500 (EST) Orlando From the Eyes of a Local http://www.odtug.com/p/bl/et/blogaid=752&source=1 With ODTUG Kscope18 just over 6 months away, we're getting very excited about all the activities and attractions that Orlando has to offer! Here's a list of a few "hot spots" that we encourage you to check out during your stay in Orlando. ODTUG http://www.odtug.com/p/bl/et/blogaid=752&source=1 Tue Nov 28 2017 09:45:44 GMT-0500 (EST) Tech 2017 Agenda https://jonathanlewis.wordpress.com/2017/11/28/tech-2017-agenda/ <p>As usual it&#8217;s hard to pick a personal agenda from the wealth of content available for the UKOUG annual conference, but this is my starting list:</p> <h3>Sunday</h3> <p>13:40 &#8211; 14:25 Roger MacNicol: &#8220;My query plan says Table Access Full: what happens next ?&#8221;</p> <p>14:40 &#8211; 15:30 Gert Poel: &#8220;Smart Database Development with PL/SQL and Oracle REST Data Services&#8221;</p> <p>16:10 &#8211; 17:00 Kellyn Pot&#8217;Vin: &#8220;Oracle vs. SQL Server &#8211; the War of the Indexes&#8221;</p> <p>17:10 &#8211; 18:00 Luiza Koziel: &#8220;How to improve your presentations AK the Tool is Just a Tool&#8230; Learn how to use it for a Good Cause&#8221;</p> <h3>Monday</h3> <p>9:00 &#8211; 9:50  <em><strong>ME!</strong> </em>I launch (one stream of) the conference with &#8220;Index Statistics and Column Groups&#8221;</p> <p>11:35 &#8211; 13:25 Ivica Arsov: &#8220;Parallel Execution with Oracle 12c&#8221; &#8230; there may be some overlap with my 2nd presentation</p> <p>14:25 &#8211; 15:15 <em><strong>ME again!</strong></em> At the CBO round table &#8212; we may answer a few of the more specific questions that came in for the CBO panel.</p> <p>15:25 &#8211; 16:25 Community Keynote &#8211; how could one possibly miss Maria Colgan, Connor McDonald and Chris Saxon &#8230; (maybe with Tim-Tams ? I can live in hope.)</p> <p>16:55 &#8211; 17:45 Michael Salt &#8211; &#8220;An in-memory paradox &#8211; increased I/O&#8221;.  I think I know the answer, but this could teach me another way to do it wrong. (Pity to miss Richard Foote on AWRs, though)</p> <p>17:55 &#8211; 18:45 Franck Pachot &#8211; &#8220;From Transportable Tablespace to Pluggable Databases&#8221;</p> <p>&nbsp;</p> <h3>Tuesday</h3> <p>9:00 &#8211; 9:50 <em><strong>ME yet again!</strong></em> Starting the day with Maria Colgan, Nigel Bayliss, Chris Antognini and Richard Foote on the CBO Panel, with Martin Widlake and Neil Chandler doing the MC bit and making sarky comments.</p> <p>10:00 &#8211; 10:50 Marcin Przepierowski: &#8220;Rman &#8211; from Beginner to Advanced&#8221;, because you&#8217;ve always got to review what you thought you knew about recovery (and backup).  It means I have to miss Bryn Llewellyn and Kamil Stawiarski arguing about how to address performance in PL/SQL</p> <p>11:25 &#8211; 12:15 Lucas Jellema: &#8220;Intro to Docker Containers &amp; the Oracle Platform &#8211; Database, Weblogic and Cloud&#8221;.</p> <p>12:25 &#8211; 13:15 Mark Rittman: &#8220;How Analytics is changing the World (again)&#8221;.</p> <p>14:20 &#8211; 15:05 Stew Ashton: &#8220;Meet your Match: Advanced Row Pattern Matching&#8221;</p> <p>15:40 &#8211; 16:25 Martin Berger: &#8220;Escape from Exadata&#8221;.</p> <p>16:40 &#8211; 17:30 Roger MacNicol: &#8220;Using Oracle Columnar Technologies across the Information Lifecycle&#8221;</p> <h3>Wednesday</h3> <p>9:00 &#8211; 9:45 Simon Pane: &#8220;Modernizing your DBA Scripts and Backups with the Oracle Scheduler&#8221;</p> <p>10:00 &#8211; 10:45 Allan McAleavy: &#8220;Moving to an All Flash Array &#8211; Dude Where&#8217;s my Bottleneck&#8221;</p> <p>11:25 &#8211; 12:15 Jason Arneil: &#8220;An introduction to Sharding&#8221;</p> <p>12:25 &#8211; 13:15 <em><strong>My final session:</strong></em> &#8220;Parallel Execution&#8221; &#8211; if you come to this it&#8217;s probably a good idea to see Ivica Arsov on Monday morning as well</p> <p>14:15 &#8211; 15:05 Jaromir D.B. Nemec: &#8220;Anomaly Detection in Database Workload&#8221;.</p> <p>&nbsp;</p> <p>Of course I may change my mind between now and the start of the event so if you&#8217;re feeling deprived (or relieved) that I&#8217;m not going to be in your audience &#8211; or if you&#8217;re feeling pressured that I am &#8211; never mind, my agenda isn&#8217;t cast in stone and I&#8217;ll probably end up at the wrong sessions anyway because I&#8217;ve been busy talking to someone without keeping an eye on the time.</p> <p>&nbsp;</p> <p>&nbsp;</p><br /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jonathanlewis.wordpress.com/17676/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jonathanlewis.wordpress.com/17676/" /></a> <img alt="" border="0" src="https://pixel.wp.com/b.gif?host=jonathanlewis.wordpress.com&#038;blog=491988&#038;post=17676&#038;subd=jonathanlewis&#038;ref=&#038;feed=1" width="1" height="1" /> Jonathan Lewis http://jonathanlewis.wordpress.com/?p=17676 Tue Nov 28 2017 09:29:31 GMT-0500 (EST) HOW TO CONVERT SCN TO DATE AND DATE INTO SCN http://oracle-help.com/scripts/convert-scn-date-date-scn/ <p></p><pre class="crayon-plain-tag">SQL&gt;select current_scn from v$database; 7705798324 SQL&gt; select timestamp_to_scn(to_timestamp('24/09/2012 14:24:54','DD/MM/YYYY HH24:MI:SS')) as scn from dual; SCN ---------- 7705798324 SQL&gt; SQL&gt; select scn_to_timestamp(7705798324) as timestamp from dual; 24-SEP-12 02.24.52.000000000 PM</pre><p>Thank you for giving your valuable time to read the above information.</p> <p><span class="s1">If you want to be updated with all our articles s</span>end us the Invitation or Follow us:</p> <p><span class="s1"><span class="s2"><strong>Skant Gupta’s</strong> LinkedIn: <a class="jive-link-external-small" href="http://www.linkedin.com/in/skantali/" rel="nofollow"&t;www.linkedin.com/in/skantali/</a></span></span></p> <p class="p4"><span class="s1"><strong>Joel Perez’s</strong> LinkedIn: <a href="http://www.linkedin.com/in/SirDBaaSJoelPerez"><strong>Joel Perez’s Profile</strong></a></span></p> <p><strong>Anuradha’s </strong><span class="s1">LinkedIn: <strong><a href="https://www.linkedin.com/in/dbaanuradhamudgal/">Anuradha’s Profile</a></strong></span></p> <p>LinkedIn Group: <em><strong><a class="js-entity-name entity-name" href="https://www.linkedin.com/groups/12065270" data-app-link="">Oracle Cloud DBAAS</a></strong></em></p> <p>Facebook Page: <em><strong><a href="https://www.facebook.com/oraclehelp">OracleHelp</a></strong></em></p> <p>The post <a rel="nofollow" href="http://oracle-help.com/scripts/convert-scn-date-date-scn/">HOW TO CONVERT SCN TO DATE AND DATE INTO SCN</a> appeared first on <a rel="nofollow" href="http://oracle-help.com">ORACLE-HELP</a>.</p> Skant Gupta http://oracle-help.com/?p=2559 Tue Nov 28 2017 07:41:33 GMT-0500 (EST) Export backup with date and time http://oracle-help.com/scripts/export-backup-date-time/ <p>Data Pump Export (hereinafter referred to as Export for ease of reading) is a utility for unloading data and metadata into a set of operating system files called a dump file set. The dump file set can be imported only by the Data Pump Import utility. The dump file set can be imported on the same system or it can be moved to another system and loaded there.</p> <p>The dump file set<a id="sthref34"></a> is made up of one or more disk files that contain table data, database object metadata, and control information. The files are written in a proprietary, binary format. During an import operation, the Data Pump Import utility uses these files to locate each database object in the dump file set.</p> <p>Export backup in Oracle database the Dump file name will include date and time</p> <p><strong>For Single user</strong></p><pre class="crayon-plain-tag">exp scott/tiger file= scott_bk_`date +%b_%d_%y_%H_%M_%S.`dmp log= scott_bk_`date +%b_%d_%y_%H_%M_%S.`log statistics=none compress=y</pre><p>For full database backup</p><pre class="crayon-plain-tag">exp system/passwd file= full_domdb_bk_`date +%b_%d_%y_%H_%M_%S.`dmp log= full_domdb_bk_`date +%b_%d_%y_%H_%M_%S.`log statistics=none full=y compress=y</pre><p>See example for single user scott</p><pre class="crayon-plain-tag">[oracle@dom backup]$ exp scott/tiger file= scott_bk_`date +%b_%d_%y_%H_%M_%S.`dmp log= scott_bk_`date +%b_%d_%y_%H_%M_%S.`log statistics=none</pre><p></p><pre class="crayon-plain-tag">Export: Release 11.2.0.1.0 - Production on Mon Oct 1 21:46:16 2012 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options Export done in US7ASCII character set and AL16UTF16 NCHAR character set server uses WE8MSWIN1252 character set (possible charset conversion) . exporting pre-schema procedural objects and actions . exporting foreign function library names for user SCOTT . exporting PUBLIC type synonyms . exporting private type synonyms . exporting object type definitions for user SCOTT About to export SCOTT's objects ... . exporting database links . exporting sequence numbers . exporting cluster definitions . about to export SCOTT's tables via Conventional Path ... . . exporting table DEPT 4 rows exported . . exporting table EMP 14 rows exported . . exporting table EMP_MV 6 rows exported . . exporting table REPLICA 3 rows exported . . exporting table SALGRADE 5 rows exported . . exporting table V_USERS 6 rows exported . exporting synonyms . exporting views . exporting stored procedures . exporting operators . exporting referential integrity constraints . exporting triggers . exporting indextypes . exporting bitmap, functional and extensible indexes . exporting posttables actions . exporting materialized views . exporting snapshot logs . exporting job queues . exporting refresh groups and children . exporting dimensions . exporting post-schema procedural objects and actions . exporting statistics Export terminated successfully without warnings.</pre><p></p><pre class="crayon-plain-tag">[oracle@dom backup]$ ls -rlt -rw-r--r-- 1 oracle oinstall 1718 Oct 1 21:46 scott_bk_Oct_01_12_21_46_16.log -rw-r--r-- 1 oracle oinstall 24576 Oct 1 21:46 scott_bk_Oct_01_12_21_46_16.dmp</pre><p>Oracle 12c</p><pre class="crayon-plain-tag">expdp hr/hr directory=backup dumpfile=dbbkpfull_"%date:~7,2%%date:~4,2%%date:~10,4%".dmp logfile=dbbkpfull_"%date:~7,2%%date:~4,2%%date:~10,4%".log</pre><p>file names are</p><pre class="crayon-plain-tag">[oracle@dom backup]$ ls DBBKPFULL_02072017.DMP dbbkpfull_02072017.log</pre><p>Thank you for giving your valuable time to read the above information.</p> <p><span class="s1">If you want to be updated with all our articles s</span>end us the Invitation or Follow us:</p> <p><span class="s1"><span class="s2"><strong>Skant Gupta’s</strong> LinkedIn: <a class="jive-link-external-small" href="http://www.linkedin.com/in/skantali/" rel="nofollow">www.linkedin.com/in/skantali/</a></span></span></p> <p class="p4"><span class="s1"><strong>Joel Perez’s</strong> LinkedIn: <a href="http://www.linkedin.com/in/SirDBaaSJoelPerez"><strong>Joel Perez’s Profile</strong></a></span></p> <p><strong>Anuradha’s </strong><span class="s1">LinkedIn: <strong><a href="https://www.linkedin.com/in/dbaanuradhamudgal/">Anuradha’s Profile</a></strong></span></p> <p>LinkedIn Group: <em><strong><a class="js-entity-name entity-name" href="https://www.linkedin.com/groups/12065270" data-app-link="">Oracle Cloud DBAAS</a></strong></em></p> <p>Facebook Page: <em><strong><a href="https://www.facebook.com/oraclehelp">OracleHelp</a></strong></em></p> <p>The post <a rel="nofollow" href="http://oracle-help.com/scripts/export-backup-date-time/">Export backup with date and time</a> appeared first on <a rel="nofollow" href="http://oracle-help.com">ORACLE-HELP</a>.</p> Skant Gupta http://oracle-help.com/?p=2556 Tue Nov 28 2017 07:37:08 GMT-0500 (EST) Undo Segments are corrupted http://oracle-help.com/oracle-database/undo-segments-corrupted/ <p>Database is shutdown and can’t start it, asking for Undo recovery while dropping Undo tablespace</p> <p>Dropping a Undo tablespace give message</p> <p>The UNDOTBS for our RMAN Catalog database was dropped. Any attempts to switch to a newly created UNDOTBS or removing the old UNDOTBS failed with the following error:</p> <p>ORA-01548: active rollback segment<br /> Or<br /> Undo segment shows status as needs recovery</p> <p><strong>Cause</strong></p> <p>The issue could happen if the datafile on which the undo segments reside is offline and the transaction cannot be rolled backed since the file is offline</p> <p>Or</p> <p>This could also happen if there is any issue in the Undo segment itself</p> <div> <p><strong>Solution</strong></p> </div> <p>Check if the Undo segment status first</p><pre class="crayon-plain-tag">SQL&gt; select segment_name,status,tablespace_name from dba_rollback_segs  where status not in (‘ONLINE’, ‘OFFLINE’) ; SEGMENT_NAME STATUS TABLESPACE_NAME ------------ -------------- ---------------- _SYSSMU3$ NEEDS RECOVERY UNDO01</pre><p>In the above example Undo segment _SYSSMU3$ is in Needs recovery status.<br /> This segment belongs to Undo tablespace UNDO01</p> <p>Check the status of the datafile present in the tablespace UNDO01</p><pre class="crayon-plain-tag">SQL&gt; select status, name, file# from v$datafile where ts# in (Select ts# from v$tablespace where name=’UNDO01′ ); STATUS NAME FILE# ------------ -------------- ---------------- ONLINE     /u01/undo01_01.dbf 56 RECOVER  /u02/undo01_03.dbf 77</pre><p>So clearly one file is in Recover status</p> <p><strong>Option A</strong></p> <p>If the database is in Archive log mode and you have all the required archive log mode you can do the following :-</p> <p>Find if you have all the required Archive logs on disk or If using Rman ensure they exist in the backup</p><pre class="crayon-plain-tag">SQL&gt; Select checkpoint_change# from v$datafile_header where file_id=&lt;file# in Recover status from previous query&gt; ;</pre><p>Now find these changes are present in which Archive log</p><pre class="crayon-plain-tag">SQL&gt; select sequence#,thread#,name from v$archived_log where &lt;checkpoint_change# from query 1&gt; between first_change# and next_change# ;</pre><p>Ensure you have all the archive logs starting from this sequence# till the current sequence# in your database</p> <p><strong>For example</strong></p><pre class="crayon-plain-tag">SQL&gt; select checkpoint_change#,file#,status from v$datafile_header where file#=77; CHECKPOINT_CHANGE# FILE# STATUS ------------ -------------- ---------------- 2103113 4 OFFLINE  SQL&gt;Select sequence#,thread#,name from v$archived_log where 2103113 between first_change# and next_change# ; SEQUENCE# THREAD#  NAME ------------ -------------- ---------------- 96 1 /u01/arch/O1_MF_1_96_6OKHP.Arc</pre><p><strong> If using rman</strong></p> <p>Check if the archive log from this sequence till current sequence is available</p><pre class="crayon-plain-tag">RMAN&gt; list backup of archivelog from sequence 96; RMAN&gt; recover datafile 4; ; RMAN&gt; sql ‘alter database datafile 4 online’ ;</pre><p><strong>if using sqlplus</strong><br /> ————-</p><pre class="crayon-plain-tag">Ensure the archive logs are present on disk SQL&gt; recover datafile 4 ; Type AUTO and hit enter Once recovery is done SQL&gt; alter database datafile 4 online ;</pre><p>If the archive logs have been restored to a different location than the Default archive log destination your database is using then specify the same using set source command in sqlplus</p><pre class="crayon-plain-tag">SQL&gt; set logsource “/u01/arch/newlocation” ; SQL&gt; recover datafile 4 ; Type AUTO and hit enter Once recovery is done SQL&gt; alter database datafile 4 online ;</pre><p><strong> </strong><strong>Option B</strong></p> <p>If your database is in noarchivelog mode than better to open SR with Oracle, if it is test database than you can proceed with below steps</p> <p>If database database oradata folder size is less or manageable to take its backup while database is shutdown.</p> <p>Once you took backup of oradata, now you proced for recovery</p><pre class="crayon-plain-tag">SQL&gt; select segment_name,status,tablespace_name from dba_rollback_segs where status not in (‘ONLINE’, ‘OFFLINE’) ; SEGMENT_NAME STATUS TABLESPACE_NAME ------------ -------------- ---------------- _SYSSMU3$ NEEDS RECOVERY UNDO01</pre><p><strong> </strong>Note: Add the following lines to pfile.</p><pre class="crayon-plain-tag">*.DB_BLOCK_CHECKSUM = FALSE *._DB_ALWAYS_CHECK_SYSTEM_TS = FALSE *.event=”10231 trace name context forever, level 10″ *.event=”10233 trace name context forever, level 10″ *._allow_resetlogs_corruption= true _CORRUPTED_ROLLBACK_SEGMENTS=(‘_SYSSMU3$‘) _offline_rollback_segments=(_SYSSMU3$)</pre><p>Rename spfile.</p> <p>Start database with restrict session.</p><pre class="crayon-plain-tag">SQL&gt;Startup restrict</pre><p>Create undo tablespace UNDOTBS2.</p><pre class="crayon-plain-tag">SQL&gt; Create undo tablespace undotbs2 datafile ‘/u01/oradata/ocrl/unodtbs02.dbf’ size 1500M;</pre><p>Make entry in the pfile</p> <p>Modify the following parameters in pfile and restart the database.</p><pre class="crayon-plain-tag">Undo_management=auto Undo_tablespace=’UNDOTBS2’ SQL&gt; drop rollback segment “_SYSSMU3$”; Rollback segment dropped. SQL&gt; drop tablespace undotbs1; Tablespace dropped. SQL&gt; select name from v$tablespace; NAME —————————— SYSTEM UNDOTBS2 SYSAUX USERS EXAMPLE TEMP</pre><p>6 rows selected.</p> <p>Now the corrupted UNDO tablespace is droped.</p><pre class="crayon-plain-tag">SQL&gt; select * from v$rollname;</pre><p>Now take database export backup and create new database using dbca and import the database.</p> <p>Thank you for giving your valuable time to read the above information.</p> <p><span class="s1">If you want to be updated with all our articles s</span>end us the Invitation or Follow us:</p> <p><span class="s1"><span class="s2"><strong>Skant Gupta’s</strong> LinkedIn: <a class="jive-link-external-small" href="http://www.linkedin.com/in/skantali/" rel="nofollow">www.linkedin.com/in/skantali/</a></span></span></p> <p class="p4"><span class="s1"><strong>Joel Perez’s</strong> LinkedIn: <a href="http://www.linkedin.com/in/SirDBaaSJoelPerez"><strong>Joel Perez’s Profile</strong></a></span></p> <p><strong>Anuradha’s </strong><span class="s1">LinkedIn: <strong><a href="https://www.linkedin.com/in/dbaanuradhamudgal/">Anuradha’s Profile</a></strong></span></p> <p>LinkedIn Group: <em><strong><a class="js-entity-name entity-name" href="https://www.linkedin.com/groups/12065270" data-app-link="">Oracle Cloud DBAAS</a></strong></em></p> <p>Facebook Page: <em><strong><a href="https://www.facebook.com/oraclehelp">OracleHelp</a></strong></em></p> <p>The post <a rel="nofollow" href="http://oracle-help.com/oracle-database/undo-segments-corrupted/">Undo Segments are corrupted</a> appeared first on <a rel="nofollow" href="http://oracle-help.com">ORACLE-HELP</a>.</p> Skant Gupta http://oracle-help.com/?p=2553 Tue Nov 28 2017 07:16:40 GMT-0500 (EST) ARCH wait on SENDREQ http://oracle-help.com/dataguard/arch-wait-sendreq/ <p><strong>PROBLEM: ARCHIVE process get hang on Primary Database</strong></p> <p>The problem has been that the standby hardware have some faulty backpane.<br /> This has caused processes in the standby to go into what is called as “D”<br /> state where the processes gets stuck in a kernel call. So the RFS processes<br /> on the standby are getting hung in the Operating System. This in turn causes the ARCH processes on the primary to hang. These ARCH processes on the primary are in actuality archiving the ORLs to the standby and to the local destination. So when they hang, they are also preventing the archival of the ORLs to the local destination. When enough of these ARCH processes hang, the primary runs out of ORLs and thus the primary itself hangs even though log_archive_local_first is set to true (default).</p> <p><span style="text-decoration: underline;">WORKAROUND:</span></p> <p>Manually transfer archives and apply them to the standby database daily.</p> <p><span style="text-decoration: underline;">RELATED BUGS:</span></p> <p>Bug <a href="https://support.oracle.com/epmos/faces/SearchDocDisplay?_adf.ctrl-state=17yutlhc2g_4&amp;_afrLoop=280660901982412">6113783</a> and bug <a href="https://support.oracle.com/epmos/faces/BugDisplay?_afrLoop=280691963165751&amp;id=6987510&amp;_afrWindowMode=0&amp;_adf.ctrl-state=17yutlhc2g_125">6987510</a></p> <p>Thank you for giving your valuable time to read the above information.</p> <p><span class="s1">If you want to be updated with all our articles s</span>end us the Invitation or Follow us:</p> <p><span class="s1"><span class="s2"><strong>Skant Gupta’s</strong> LinkedIn: <a class="jive-link-external-small" href="http://www.linkedin.com/in/skantali/" rel="nofollow">www.linkedin.com/in/skantali/</a></span></span></p> <p class="p4"><span class="s1"><strong>Joel Perez’s</strong> LinkedIn: <a href="http://www.linkedin.com/in/SirDBaaSJoelPerez"><strong>Joel Perez’s Profile</strong></a></span></p> <p><strong>Anuradha’s </strong><span class="s1">LinkedIn: <strong><a href="https://www.linkedin.com/in/dbaanuradhamudgal/">Anuradha’s Profile</a></strong></span></p> <p>LinkedIn Group: <em><strong><a class="js-entity-name entity-name" href="https://www.linkedin.com/groups/12065270" data-app-link="">Oracle Cloud DBAAS</a></strong></em></p> <p>Facebook Page: <em><strong><a href="https://www.facebook.com/oraclehelp">OracleHelp</a></strong></em></p> <p>The post <a rel="nofollow" href="http://oracle-help.com/dataguard/arch-wait-sendreq/">ARCH wait on SENDREQ</a> appeared first on <a rel="nofollow" href="http://oracle-help.com">ORACLE-HELP</a>.</p> Skant Gupta http://oracle-help.com/?p=2550 Tue Nov 28 2017 06:17:16 GMT-0500 (EST) Oracle 18c: How to load data in Oracle Autonomous Data Warehouse Cloud http://oracle-help.com/articles/oracle-18c-load-data-oracle-autonomous-data-warehouse-cloud/ <p>This article was written by <strong><a href="https://www.linkedin.com/in/skantali/">Skant Gupta </a></strong>and <strong><a href="https://www.linkedin.com/in/sirdbaasjoelperez/">Joel Perez</a> </strong>in <strong><a href="https://community.oracle.com/blogs/Sir.DBaaSJoelPerez/2017/11/01/oracle-18c-data-warehousing-new-features-what-s-news">Oracle OTN.</a></strong></p> <p><span class="s1">Full Index of Oracle Cloud Articles:</span></p> <p><span class="s1"><a class="jive-link-profile-small jiveTT-hover-user" href="https://community.oracle.com/people/Sir.CloudDBaaSjoelperez/content?customTheme=otn&amp;filterID=contentstatus%5Bpublished%5D~objecttype~objecttype%5Bblogpost%5D" data-containerid="-1" data-containertype="-1" data-objectid="834073" data-objecttype="3">Sir.CloudDBaaSjoelperez</a></span></p> <p><span class="s1">If you want to be updated with all our articles s</span>end us the Invitation or Follow us:</p> <p class="p4"><span class="s1">Joel Perez’s LinkedIn: <a class="jive-link-external-small" href="http://www.linkedin.com/in/SirDBaaSJoelPerez" rel="nofollow"><span class="s2">www.linkedin.com/in/SirDBaaSJoelPerez</span></a></span></p> <p class="p4"><span class="s1"><span class="s2">Skant Gupta’s LinkedIn: <a class="jive-link-external-small" href="http://www.linkedin.com/in/skantali/" rel="nofollow">www.linkedin.com/in/skantali/</a></span></span></p> <p><span class="s1">or Join our LinkedIn group: <strong>Oracle Cloud DBaaS</strong></span></p> <p class="p1"><strong><span class="s1">Loading Data into Autonomous Data Warehouse Cloud Database</span></strong></p> <p>&nbsp;</p> <p><em>Data Loading Options</em></p> <ul> <li>Data loading via SQL*Net <ul> <li>Suitable for small volumes of data <ul> <li>SQL*Loader from local filesystem</li> <li>ETL scripts that use DML to insert/update data</li> </ul> </li> </ul> </li> <li>Data loading from Oracle Object Storage <ul> <li>Preferred technique for large volumes of data <ul> <li>Additionally enables data-sharing with other cloud services</li> </ul> </li> </ul> </li> <li>Stage data in Oracle Object Storage, then load into the database using new PL/SQL APIs</li> </ul> <p>&nbsp;</p> <p><strong>Loading Data from Object Stores</strong></p> <ul> <li>Source data from files on object stores for data loading <ul> <li>Oracle Object Store or AWS S3</li> <li>Any supported Oracle-loader file format</li> <li>Roadmap: any Hadoop file format</li> </ul> </li> </ul> <p><em>If you want to read rest to the article, go across this link</em> : <a href="https://community.oracle.com/blogs/Sir.DBaaSJoelPerez/2017/11/20/oracle-18c-how-to-load-data-in-oracle-autonomous-data-warehouse-cloud"><b><i>Oracle 18: Autonomous DataWareHouse</i></b></a></p> <p>If you want to be updated with all our articles send us the Invitation or Follow us:</p> <p class="p4"><strong>Joel Perez’s</strong> LinkedIn: <a class="jive-link-external-small" href="http://www.linkedin.com/in/SirDBaaSJoelPerez" rel="nofollow">www.linkedin.com/in/SirDBaaSJoelPerez</a></p> <p class="p4"><strong>Skant Gupta’s</strong> LinkedIn: <a class="jive-link-external-small" href="http://www.linkedin.com/in/skantali/" rel="nofollow">www.linkedin.com/in/skantali/</a></p> <p>LinkedIn Group: <em><strong><a class="js-entity-name entity-name" href="https://www.linkedin.com/groups/12065270">Oracle Cloud DBAAS</a></strong></em></p> <p>Facebook Page: <em><strong><a href="https://www.facebook.com/oraclehelp">OracleHelp</a></strong></em></p> <p>The post <a rel="nofollow" href="http://oracle-help.com/articles/oracle-18c-load-data-oracle-autonomous-data-warehouse-cloud/">Oracle 18c: How to load data in Oracle Autonomous Data Warehouse Cloud</a> appeared first on <a rel="nofollow" href="http://oracle-help.com">ORACLE-HELP</a>.</p> Skant Gupta http://oracle-help.com/?p=2547 Tue Nov 28 2017 05:36:54 GMT-0500 (EST) Log Buffer #530: A Carnival of the Vanities for DBAs https://blog.pythian.com/log-buffer-530-carnival-vanities-dbas/ <div class="l-submain"><div class="l-submain-h g-html i-cf"><p>This Log Buffer Edition covers Cloud, Oracle, SQL Server, and MySQL.<br /> <span id="more-102852"></span></p> <p><strong>Cloud:</strong></p> <p>New – <a href="https://aws.amazon.com/blogs/aws/new-aws-privatelink-endpoints-kinesis-ec2-systems-manager-and-elb-apis-in-your-vpc/">AWS</a> PrivateLink for AWS Services: Kinesis, Service Catalog, EC2 Systems Manager, Amazon EC2 APIs, and ELB APIs in your VPC</p> <p><a href="https://aws.amazon.com/blogs/opensource/open-source-at-reinvent-2017/">Open</a> Source at re:Invent 2017</p> <p>Announcing General Availability of <a href="https://azure.microsoft.com/en-au/blog/announcing-general-availability-of-azure-reserved-vm-instances-ris/">Azure</a> Reserved VM Instances (RIs)</p> <p><a href="https://azure.microsoft.com/en-au/blog/transforming-your-vmware-environment-with-microsoft-azure/">Transforming</a> your VMware environment with Microsoft Azure</p> <p>New lower prices for GPUs and preemptible Local <a href="https://cloudplatform.googleblog.com/2017/11/new-lower-prices-for-GPUs-and-preemptible-Local-SSDs.html">SSDs</a></p> <p>Introducing <a href="https://cloudplatform.googleblog.com/2017/11/introducing-VRay-GPU-rendering-and-CaraVR-support-on-Zync-Render.html">VRay</a> GPU rendering and CaraVR support on Zync Render</p> <p><a href="http://andrejusb.blogspot.com/2017/11/tensorflow-getting-started-with-docker.html">TensorFlow</a> – Getting Started with Docker Container and Jupyter Notebook</p> <p><strong>Oracle:</strong></p> <p><a href="http://orasql.org/2017/11/24/oracle-issues-after-upgrade-to-12-2/">Oracle</a> issues after upgrade to 12.2</p> <p>Docker-CE: Get Started Tutorial – processes / files / <a href="http://dietrichschroff.blogspot.com.au/2017/11/docker-ce-get-started-tutorial.html">HTTP</a> headers</p> <p>Using a <a href="http://dbaharrison.blogspot.com/2017/11/using-hardware-token-to-log-on-to-linux.html">hardware</a> token to log on to linux</p> <p><a href="https://mdinh.wordpress.com/2017/11/23/crs-2674-start-of-dbfs_mount-failed/">CRS</a>-2674: Start of dbfs_mount failed</p> <p>How Not to Make <a href="http://dbakevlar.com/2017/11/not-make-wit-result-wth/">WIT</a> Result in WTH</p> <p><strong>SQL Server:</strong></p> <p>Databases in <a href="http://www.sqlservercentral.com/articles/Azure+SQL+database/142061/">Azure</a>… Where to begin? Create a Database and log in!</p> <p>DBAs and the ITIL <a href="http://www.sqlservercentral.com/articles/ITIL/163877/">Framework</a>, Part II: Asset Management</p> <p><a href="https://www.databasejournal.com/features/mssql/azure-sql-database-virtual-network-service-endpoints-and-rules.html">Azure</a> SQL Database Virtual Network Service Endpoints and Rules</p> <p>How to Track <a href="https://www.brentozar.com/archive/2017/11/track-sql-server-changes-sp_blitzfirst/">SQL</a> Server Changes with sp_BlitzFirst</p> <p><a href="http://sqlblog.com/blogs/john_paul_cook/archive/2017/11/22/cosmos-db-free-for-one-year-and-other-azure-services-always-free.aspx">Cosmos</a> DB Free for One Year and Other Azure Services Always Free</p> <p><strong>MySQL:</strong></p> <p>Configuring a <a href="https://www.databasejournal.com/features/mysql/configuring-a-mysql-database-on-amazon-rds.htm">MySQL</a> Database on Amazon RDS</p> <p>From <a href="http://lefred.be/content/from-mysql-5-6-partitioning-to-5-7-and-beyond/">MySQL</a> 5.6 partitioning to 5.7 and beyond</p> <p>Further improvements on <a href="https://mysqlserverteam.com/further-improvements-on-information_schema-in-mysql-8-0-3/">INFORMATION_SCHEMA</a> in MySQL 8.0.3</p> <p><a href="https://severalnines.com/blog/clustercontrol_supports_mariadb_10_2">ClusterControl</a> 1.5 &#8211; Announcing MariaDB 10.2 Support</p> <p>Docker Compose and App Deployment with <a href="https://mysqlrelease.com/2017/11/docker-compose-and-app-deployment-with-mysql/">MySQL</a></p> </div></div> Fahd Mirza https://blog.pythian.com/?p=102852 Mon Nov 27 2017 15:09:48 GMT-0500 (EST) Starting the Oracle Data Guard Broker OBSERVER in the BACKGROUND http://oracledba.blogspot.com/2017/11/starting-oracle-data-guard-broker.html <div class="separator" style="clear: both; text-align: center;"><a href="https://3.bp.blogspot.com/-iNTti1-5WOE/WgYEWsvUqvI/AAAAAAAFjfg/DPhqC6I60ow04iiqMmo_tw8dJdH8QTTFQCLcBGAs/s1600/Untitl2ed.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="667" data-original-width="782" height="272" src="https://3.bp.blogspot.com/-iNTti1-5WOE/WgYEWsvUqvI/AAAAAAAFjfg/DPhqC6I60ow04iiqMmo_tw8dJdH8QTTFQCLcBGAs/s320/Untitl2ed.png" width="320" /></a></div><div class="separator" style="clear: both; text-align: center;"></div><br />Prior to Oracle 12.2 we had to find some homemade tricks to run the Observer at the background this way:<br /><blockquote class="tr_bq">$ nohup dgmgrl -silent sys/P@$$w0rd@prmy_db "start observer" &amp;</blockquote>Finally, From Oracle 12.2 the Observer can run in the background using wallet authentication to connect to primary &amp; standby databases and the far sync instance.<br /><br />For configuring the wallet use the steps described in my post: "<a href="https://oracledba.blogspot.com/2017/11/creating-wallet-secure-external.html">Creating a wallet - secure external password store</a>"<br /><br />Starting the observer at the background using the wallet credentials:<br /><blockquote class="tr_bq">DGMGRL&gt; START OBSERVER myobserver IN BACKGROUND FILE IS observer.dat LOGFILE IS observer.log CONNECT IDENTIFIER IS prmy_db<br />Submitted command "START OBSERVER" using connect identifier "prmy_db"&nbsp;</blockquote>You can follow the progress of the observer looking at the logfile:<br /><blockquote class="tr_bq">$ tail observer.log<br />Connected to "prmy_db"<br />Connected as SYSDBA.<br />[W000 11/10 21:14:08.47] FSFO target standby is stndby_db<br />[W000 11/10 21:14:11.45] Observer 'myobserver' started<br />[W000 11/10 21:14:11.45] Observer trace level is set to USER<br />[W000 11/10 21:14:11.45] Try to connect to the primary.<br />[W000 11/10 21:14:11.45] Try to connect to the primary prmy_db.<br />[W000 11/10 21:14:11.46] The standby stndby_db is ready to be a FSFO target<br />[W000 11/10 21:14:13.46] Connection to the primary restored!</blockquote>reference:<br /><a href="https://support.oracle.com/epmos/faces/DocumentDisplay?id=2285158.1">Doc ID 2285158.1</a> Yossi Nixon tag:blogger.com,1999:blog-6061714.post-7874319984950118555 Mon Nov 27 2017 12:00:00 GMT-0500 (EST) Learning Oracle SQL Developer: The Video Hits https://www.thatjeffsmith.com/archive/2017/11/learning-oracle-sql-developer-the-video-hits/ <p>I&#8217;ve got short videos for you, 2-10 minutes. I&#8217;ve got 20 minute videos. And I&#8217;ve got monster, hour long videos.</p> <p>24 in total, covering everything from how to use the PL/SQL debugger, to building REST Services, to just writing better SELECT * queries.</p> <p><iframe src="https://www.youtube.com/embed/5pA4EhFYeeE?list=PL_qNe_aTKkIUUzDEJ7KuvyldBuynyoDb2" width="560" height="315" frameborder="0" allowfullscreen=""></iframe></p> <p>Send me your requests, always happy to build more. I just wish I had a voice made for radio to accompany the face.</p> <p>Just click here to peruse the videos.</p> <div id="attachment_6413" style="width: 533px" class="wp-caption aligncenter"><img src="https://www.thatjeffsmith.com/wp-content/uploads/2017/11/play-list2.png" alt="" width="523" height="269" class="size-full wp-image-6413" /><p class="wp-caption-text">Watch, learn, repeat.</p></div> <!-- Easy AdSense Unfiltered [count: 3 is not less than 3] --> thatjeffsmith https://www.thatjeffsmith.com/?p=6412 Mon Nov 27 2017 08:11:51 GMT-0500 (EST) Oracle Exadata Database Machine and Cloud Service 2017 Certified Implementation Specialist http://oracle-help.com/articles/oracle-exadata-database-machine-cloud-service-2017-certified-implementation-specialist/ <p><span class="s1">Hi Readers</span></p> <p class="p1">Finally I’ve successfully passed <strong>1Z0-338</strong>, <a class="jive-link-external-small" href="https://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=5001&amp;get_params=p_exam_id:1Z0-338" rel="nofollow"><span class="s1"><strong>Oracle Exadata Database Machine and Cloud Service 2017 Implementation Essentials</strong></span></a>. It was almost more than 2 months that I’ve been preparing for this.</p> <p class="p1">The Exam contains 71 questions related to <strong>Exadata</strong> and <strong>Cloud</strong> Services. To earn this certification you need to get 63% marks.</p> <p class="p1">This was the result of the journey: Oracle <strong>Exadata</strong> Database Machine and <strong>Cloud</strong> Service <strong>2017</strong> Certified Implementation Specialist</p> <p class="p1"><a href="https://i2.wp.com/community.oracle.com/servlet/JiveServlet/showImage/38-26777-465103/certi02.jpg?ssl=1"><img class="image-4 jive-image" src="https://i1.wp.com/community.oracle.com/servlet/JiveServlet/downloadImage/38-26777-465103/1158-900/certi02.jpg?resize=980%2C762&#038;ssl=1" alt="certi02.jpg" data-recalc-dims="1" /></a></p> <p class="p1">In this post you will find:</p> <ul> <li><span class="s2"><img src="https://s.w.org/images/core/emoji/2.3/72x72/2663.png" alt="♣" class="wp-smiley" style="height: 1em; max-height: 1em;" /> </span>Path to achieve it</li> <li><span class="s2"><img src="https://s.w.org/images/core/emoji/2.3/72x72/2663.png" alt="♣" class="wp-smiley" style="height: 1em; max-height: 1em;" /> </span>Study Materials</li> <li><span class="s2"><img src="https://s.w.org/images/core/emoji/2.3/72x72/2663.png" alt="♣" class="wp-smiley" style="height: 1em; max-height: 1em;" /> </span>Exam Detail &amp; Score</li> </ul> <p class="p2"><strong>How to Achieve this Certification?</strong></p> <p class="p1">Before appearing to this exam you must have vast knowledge on <strong>Exadata</strong> X-4, X-5 &amp; X-6 and <strong>Oracle Cloud</strong>.</p> <p class="p1">For following the path to develop expertise in Oracle Database Cloud, read here:</p> <p class="p1"><a class="jive-link-blog-small" href="https://community.oracle.com/blogs/Sir.DBaaSJoelPerez/2017/09/08/oracle-cloud-dbaas-how-to-become-ocp-ocm-cloud" data-containerid="8055" data-containertype="37" data-objectid="25951" data-objecttype="38">#7 Oracle Cloud (DBaaS): How to become OCP &amp; OCM Cloud!!</a></p> <p class="p1">Although it is not necessary to have knowledge on <strong>Oracle RAC</strong> but as per my point of view you must hands-on <strong>Oracle ASM </strong>&amp; <strong>RAC</strong> before attending.</p> <p class="p1"><strong>List of exam topics</strong></p> <ul> <li>Oracle Database Software</li> <li>Oracle Exadata Architecture</li> <li>Administration and Configuration</li> <li>Backup and Recovery</li> <li>High Availability</li> <li>Monitoring</li> <li>Software Maintenance</li> <li>Bulk Loading and Migration</li> <li>Resource Management</li> <li>Support</li> <li>Exadata in the Cloud</li> </ul> <p class="p1">For more detail, you can follow the below link.</p> <p class="p2"><span class="s1"><a class="jive-link-external-small" href="https://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=5001&amp;get_params=p_exam_id:1Z0-338" rel="nofollow">https://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=5001&amp;get_params=p_exam_id:1Z0-338</a></span></p> <p class="p1"><strong>How to prepare for exam?</strong></p> <p class="p1">There are 3 ways to study for this exam related to cloud part.</p> <ol class="ol1"> <li><span class="s2">Oracle Exadata Cloud Channel : <span style="color: #0000ff;"><strong> <a style="color: #0000ff;" href="http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=904&amp;get_params=cloudId:384,channelId:24555">Click here for Cloud Channel</a></strong></span></span></li> <li><span class="s2">Official Information &amp; Documentation: <span style="color: #0000ff;"><strong><a style="color: #0000ff;" href="https://docs.oracle.com/en/cloud/paas/exadata-cloud/csexa/index.html">Exadata Cloud Book</a></strong></span></span></li> <li><span class="s4"><span class="s5"><a class="jive-link-external-small" href="http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=900&amp;get_params=cloudId:1149%22%20%5Cl%20%22tabs-1" rel="nofollow">Oracle Learning Subscription</a></span></span></li> </ol> <p class="p1">To study <strong>Exadata</strong> for this exam, We recommend take the below course from Oracle University:</p> <p class="p1"><strong>Exadata Database Machine: 12c Administration Workshop Ed 2</strong></p> <p class="p3"><span class="s1"><a class="jive-link-external-small" href="https://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=609&amp;get_params=dc:D92887,clang:EN" rel="nofollow">https://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=609&amp;get_params=dc:D92887,clang:EN</a></span></p> <p class="p1">For practicing on <strong>Exadata Cloud</strong> services, you need to buy services from Oracle Corporation because  there is NO free trail available for <strong>Oracle Exadata Cloud</strong>.</p> <p class="p3"><span class="s2">For pricing information, please follow the below link</span></p> <p class="p3"><span class="s2"><a class="jive-link-external-small" href="https://cloud.oracle.com/en_US/database/exadata/pricing" rel="nofollow"><span class="s3">https://cloud.oracle.com/en_US/database/exadata/pricing</span></a></span></p> <p class="p1"><strong>How to register the exam?</strong></p> <p class="p1">If you want to enroll exam, please click on below link.</p> <p class="p4"><strong>Exam Number:</strong><span class="s4"> </span>1Z0-338</p> <p class="p4"><strong>Exam Title:</strong><span class="s4"> </span>Oracle Exadata Database Machine and Cloud Service 2017 Implementation Essentials</p> <p class="p3"><span class="s1"><a class="jive-link-external-small" href="https://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=654&amp;get_params=p_id:482" rel="nofollow">https://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=654&amp;get_params=p_id:482</a></span></p> <p class="p1">Below are the Exam Details related to score.</p> <p class="p1"><strong>Special Thanks</strong></p> <p class="p2"><a href="http://www.linkedin.com/in/SirDBaaSJoelPerez"><strong>Joel Perez</strong></a> is an <strong>Oracle OCM</strong> and <strong>ACED</strong> who gave an opportunity to write him and motivating me to learn new things.<span class="Apple-converted-space">  </span>I’m very thankful to him as this was the kick off for my studies.</p> <p>Thank you for giving your valuable time to read the above information.</p> <p><span class="s1">If you want to be updated with all our articles s</span>end us the Invitation or Follow us:</p> <p><span class="s1"><span class="s2"><strong>Skant Gupta’s</strong> LinkedIn: <a class="jive-link-external-small" href="http://www.linkedin.com/in/skantali/" rel="nofollow">www.linkedin.com/in/skantali/</a></span></span></p> <p class="p4"><span class="s1"><strong>Joel Perez’s</strong> LinkedIn: <a href="http://www.linkedin.com/in/SirDBaaSJoelPerez"><strong>Joel Perez’s Profile</strong></a></span></p> <p><strong>Anuradha’s </strong><span class="s1">LinkedIn: <strong><a href="https://www.linkedin.com/in/dbaanuradhamudgal/">Anuradha’s Profile</a></strong></span></p> <p>LinkedIn Group: <em><strong><a class="js-entity-name entity-name" href="https://www.linkedin.com/groups/12065270" data-app-link="">Oracle Cloud DBAAS</a></strong></em></p> <p>Facebook Page: <em><strong><a href="https://www.facebook.com/oraclehelp">OracleHelp</a></strong></em></p> <p>The post <a rel="nofollow" href="http://oracle-help.com/articles/oracle-exadata-database-machine-cloud-service-2017-certified-implementation-specialist/">Oracle Exadata Database Machine and Cloud Service 2017 Certified Implementation Specialist</a> appeared first on <a rel="nofollow" href="http://oracle-help.com">ORACLE-HELP</a>.</p> Skant Gupta http://oracle-help.com/?p=2540 Mon Nov 27 2017 06:45:46 GMT-0500 (EST) Oracle 12c on Fedora 27 https://oracle-base.com/blog/2017/11/27/oracle-12c-on-fedora-27/ <p><img class="size-full wp-image-6126 alignleft" src="https://oracle-base.com/blog/wp-content/uploads/2016/06/fedora.jpg" alt="" width="119" height="117" />As always, I have to start with a warning.</p> <ul> <li><a href="https://oracle-base.com/articles/linux/do-not-install-oracle-on-fedora-before-reading-this">Do not install Oracle on Fedora before reading this!</a></li> </ul> <p>With that out of the way&#8230;</p> <p>Fedora 27 has been out for a couple of weeks now, but I&#8217;ve not really been able to do anything with it because I couldn&#8217;t get it installed on VirtualBox. I finally managed to get the installation to work, provided I used the Live DVD when I was running VirtualBox on an Oracle Linux 7 host. That means I was finally able to have a play with 12cR2 on Fedora 27.</p> <ul> <li><a href="https://oracle-base.com/articles/linux/fedora-27-installation">Fedora 27 (F27) Installation</a></li> <li><a href="https://oracle-base.com/articles/12c/oracle-db-12cr2-installation-on-fedora-27">Oracle Database 12c Release 2 (12.2) Installation On Fedora 27 (F27)</a></li> </ul> <p>It&#8217;s pretty much the same as the installation on Fedora 27.</p> <p>So now you know how to do it, please don’t! <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p> <p>Cheers</p> <p>Tim…</p> <p>&nbsp;</p> <hr style="border-top:black solid 1px" /><a href="https://oracle-base.com/blog/2017/11/27/oracle-12c-on-fedora-27/">Oracle 12c on Fedora 27</a> was first posted on November 27, 2017 at 11:41 am.<br />©2012 "<a href="http://www.oracle-base.com/blog">The ORACLE-BASE Blog</a>". Use of this feed is for personal non-commercial use only. If you are not reading this article in your feed reader, then the site is guilty of copyright infringement.<br /> Tim... https://oracle-base.com/blog/?p=7741 Mon Nov 27 2017 05:41:49 GMT-0500 (EST) Read the Trace file from SQL Plus http://oracle-help.com/oracle-database/read-trace-file-sql-plus/ <h1>Find trace file in Oracle</h1> <p>The following script returns the path to the trace file that the current session writes. It returns the path whether or not tracing is enabled.</p><pre class="crayon-plain-tag">SQL&gt; SELECT s.sid, 2 s.serial#, 3 pa.value || '\' || LOWER(SYS_CONTEXT('userenv','instance_name')) || 4 '_ora_' || p.spid || '.trc' AS trace_file 5 FROM v$session s, 6 v$process p, 7 v$parameter pa 8 WHERE pa.name = 'user_dump_dest' 9 AND s.paddr = p.addr 10 AND s.audsid = SYS_CONTEXT('USERENV', 'SESSIONID') 11 / SID SERIAL# TRACE_FILE ------- --------- ------------------------------------------------------------ 147 2101 D:\ORACLE\PRODUCT\10.2.0\ADMIN\ORCLE\UDUMP\orcl_ora_1000.trc</pre><p>Check the value for user_dump_dest</p><pre class="crayon-plain-tag">NAME TYPE VALUE --------------- ------- -------------------------------------------- user_dump_dest string D:\ORACLE\PRODUCT\10.2.0\ADMIN\ORCLE\UDUMP</pre><p>Create a directory</p><pre class="crayon-plain-tag">SQL&gt; CREATE DIRECTORY udump_dest AS 'D:\ORACLE\PRODUCT\10.2.0\ADMIN\ORCLE\UDUMP'; Directory created.</pre><p>Create a function</p><pre class="crayon-plain-tag">SQL&gt; CREATE OR REPLACE FUNCTION get_tracefile (file_name VARCHAR2) 2 RETURN VARCHAR2 3 IS 4 dest_loc CLOB; 5 src_loc BFILE; 6 ret VARCHAR2 (4000); 7 BEGIN 8 src_loc := BFILENAME ('UDUMP_DEST', file_name); 9 DBMS_LOB.OPEN (src_loc, DBMS_LOB.lob_readonly); 10 DBMS_LOB.createtemporary (dest_loc, TRUE); 11 DBMS_LOB.loadfromfile (dest_loc, src_loc, 4000); 12 ret := DBMS_LOB.SUBSTR (dest_loc, 4000); 13 DBMS_LOB.CLOSE (src_loc); 14 RETURN ret; 15 END; 16 / Function created.</pre><p>Now just the select the trace file name.</p><pre class="crayon-plain-tag">SQL&gt; SELECT get_tracefile (‘orcl_ora_1000.trc’) FROM DUAL; GET_TRACEFILE(‘ORCL_ORA_1000.TRC’)——————————————————————————–Dump file d:\oracle\product\10.2.0\admin\orcle\udump\orcl_ora_1000.trcFri Dec 10 22:54:36 2010ORACLE V10.2.0.1.0 – Production vsnsta=0vsnsql=14 vsnxtr=3Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 – ProductionWith the Partitioning, OLAP and Data Mining optionsWindows XP Version V5.1 Service Pack 3CPU : 1 – type 586, 1 Physical CoresProcess Affinity : 0x00000000Memory (Avail/Total): Ph:269M/959M, Ph+PgF:1265M/2314M, VA:1606M/2047MInstance name: orcl Redo thread mounted by this instance: 1 Oracle process number: 20 Windows thread id: 1000, image: ORACLE.EXE (SHAD)………………….</pre><p>Thank you for giving your valuable time to read the above information.</p> <p><span class="s1">If you want to be updated with all our articles s</span>end us the Invitation or Follow us:</p> <p><span class="s1"><span class="s2"><strong>Skant Gupta’s</strong> LinkedIn: <a class="jive-link-external-small" href="http://www.linkedin.com/in/skantali/" rel="nofollow">www.linkedin.com/in/skantali/</a></span></span></p> <p class="p4"><span class="s1"><strong>Joel Perez’s</strong> LinkedIn: <a href="http://www.linkedin.com/in/SirDBaaSJoelPerez"><strong>Joel Perez’s Profile</strong></a></span></p> <p><strong>Anuradha’s </strong><span class="s1">LinkedIn: <strong><a href="https://www.linkedin.com/in/dbaanuradhamudgal/">Anuradha’s Profile</a></strong></span></p> <p>LinkedIn Group: <em><strong><a class="js-entity-name entity-name" href="https://www.linkedin.com/groups/12065270" data-app-link="">Oracle Cloud DBAAS</a></strong></em></p> <p>Facebook Page: <em><strong><a href="https://www.facebook.com/oraclehelp">OracleHelp</a></strong></em></p> <p>The post <a rel="nofollow" href="http://oracle-help.com/oracle-database/read-trace-file-sql-plus/">Read the Trace file from SQL Plus</a> appeared first on <a rel="nofollow" href="http://oracle-help.com">ORACLE-HELP</a>.</p> Skant Gupta http://oracle-help.com/?p=2537 Sat Nov 25 2017 09:41:53 GMT-0500 (EST) Oracle Fixed Views http://oracle-help.com/oracle-database/oracle-fixed-views/ <p><strong>Oracle</strong> maintains a set of virtual tables that record current database activity. These tables are called dynamic performance tables.</p> <p>Why the term “<strong>Fixed”</strong>?</p> <p>Because They are fixed ..One cannot perform any <strong>DML</strong> , <strong>DDL</strong> or any operation other than “<strong>SELECT</strong>“,that&#8217;s why these views/Tables are known as <strong>Fixed.</strong></p><pre class="crayon-plain-tag">sql&gt; alter table x$ksmsp add sriram varchar2(30); alter table x$ksmsp add sriram varchar2(30) * ERROR at line 1: ORA-02030: can only select from fixed tables/views.</pre><p>Oracle maintains some dynamic performance views which are dynamically created based on the “X$” tables.</p> <p>Those are basically start with ‘V$’ and ‘GV$’ with one extra column “Instance_id”.</p><pre class="crayon-plain-tag">sql&gt; desc v$fixed_table Name Null? Type ----------------------------------------- -------- ---------------------------- NAME VARCHAR2(30) OBJECT_ID NUMBER TYPE VARCHAR2(5) TABLE_NUM NUMBER sql&gt; desc v$fixed_view_definition Name Null? Type ----------------------------------------- -------- ---------------------------- VIEW_NAME VARCHAR2(30) VIEW_DEFINITION VARCHAR2(4000)</pre><p>We can query of these views, to get more Info on these views</p><pre class="crayon-plain-tag">sql&gt; select * from V$FIXED_VIEW_DEFINITION where view_name='V$SESSION'; VIEW_NAME VIEW_DEFINITION ------------------------------ -------------------------------------------------- V$SESSION select SADDR , SID , SERIAL# , AUDSID , PADDR , U SER# , USERNAME , COMMAND , OWNERID, TADDR , LOCKW AIT , STATUS , SERVER , SCHEMA# , SCHEMANAME ,OSUS ER , PROCESS , MACHINE , TERMINAL , PROGRAM , TYPE , SQL_ADDRESS , SQL_HASH_VALUE, SQL_ID, SQL_CHILD _NUMBER , PREV_SQL_ADDR , PREV_HASH_VALUE , PREV_S QL_ID, PREV_CHILD_NUMBER , MODULE , MODULE_HASH , ACTION , ACTION_HASH , CLIENT_INFO , FIXED_TABLE_S EQUENCE , ROW_WAIT_OBJ# , ROW_WAIT_FILE# , ROW_WAI T_BLOCK# , ROW_WAIT_ROW# , LOGON_TIME , LAST_CALL_ ET , PDML_ENABLED , FAILOVER_TYPE , FAILOVER_METHO D , FAILED_OVER, RESOURCE_CONSUMER_GROUP, PDML_STA TUS, PDDL_STATUS, PQ_STATUS, CURRENT_QUEUE_DURATIO N, CLIENT_IDENTIFIER, BLOCKING_SESSION_STATUS, BLO CKING_INSTANCE,BLOCKING_SESSION,SEQ#, EVENT#,EVENT ,P1TEXT,P1,P1RAW,P2TEXT,P2,P2RAW, P3TEXT,P3,P3RAW, WAIT_CLASS_ID, WAIT_CLASS#,WAIT_CLASS,WAIT_TIME, S ECONDS_IN_WAIT,STATE,SERVICE_NAME, SQL_TRACE, SQL_ TRACE_WAITS, SQL_TRACE_BINDS from GV$SESSION where inst_id = USERENV('Instance') 1 row selected. sql&gt; select * from V$FIXED_VIEW_DEFINITION where view_name='V$FIXED_VIEW_DEFINITION'; VIEW_NAME VIEW_DEFINITION ------------------------------ -------------------------------------------------- V$FIXED_VIEW_DEFINITION select VIEW_NAME , VIEW_DEFINITION from GV$FIXED_ VIEW_DEFINITION where inst_id = USERENV('Instance' ) 1 row selected. ind&gt; select * from V$FIXED_VIEW_DEFINITION 2 where view_name='GV$FIXED_VIEW_DEFINITION';</pre><p><strong>Conclusion</strong>:</p> <p>These are permanent tables/<span class="skimlinks-unlinked">views.The</span> <strong>X$</strong> tables are generated when ever you instance started.<br /> These tables are accessible to the <strong>SYS</strong> User only.These &#8216;<strong>X$</strong>&#8216; are not even modifiable By the Super User &#8216;<strong>SYS</strong>&#8216;.</p> <p>Thank you for giving your valuable time to read the above information.</p> <p><span class="s1">If you want to be updated with all our articles s</span>end us the Invitation or Follow us:</p> <p><span class="s1"><span class="s2"><strong>Skant Gupta’s</strong> LinkedIn: <a class="jive-link-external-small" href="http://www.linkedin.com/in/skantali/" rel="nofollow">www.linkedin.com/in/skantali/</a></span></span></p> <p class="p4"><span class="s1"><strong>Joel Perez’s</strong> LinkedIn: <a href="http://www.linkedin.com/in/SirDBaaSJoelPerez"><strong>Joel Perez’s Profile</strong></a></span></p> <p><strong>Anuradha’s </strong><span class="s1">LinkedIn: <strong><a href="https://www.linkedin.com/in/dbaanuradhamudgal/">Anuradha’s Profile</a></strong></span></p> <p>LinkedIn Group: <em><strong><a class="js-entity-name entity-name" href="https://www.linkedin.com/groups/12065270" data-app-link="">Oracle Cloud DBAAS</a></strong></em></p> <p>Facebook Page: <em><strong><a href="https://www.facebook.com/oraclehelp">OracleHelp</a></strong></em></p> <p>The post <a rel="nofollow" href="http://oracle-help.com/oracle-database/oracle-fixed-views/">Oracle Fixed Views</a> appeared first on <a rel="nofollow" href="http://oracle-help.com">ORACLE-HELP</a>.</p> Skant Gupta http://oracle-help.com/?p=2533 Sat Nov 25 2017 09:29:15 GMT-0500 (EST) ORA-00059:maximum number of DB_FILES exceeded http://oracle-help.com/oracle-database/ora-00059maximum-number-db_files-exceeded/ <p>By default in every <strong>Oracle</strong> <strong>Database</strong>, you can have up to <strong>200</strong> total data files (.<strong>DBF</strong> files) in each Oracle Database instance as indicated by the value of the parameter “<strong>db_files</strong>” (you can check the value by running “show parameter <strong>db_files</strong>” in your database. If you need to create more data files than what the db_files parameter will allow, you will need to increase the value of db_files. If this is not done, you will receive the following error when you either create a new data file for an existing <strong>tablespace</strong> or create a new <strong>tablespace</strong>:</p> <p><strong>Symptom:</strong></p><pre class="crayon-plain-tag">create tablespace data_tbs38 datafile "+DATA' size 100M; * ERROR at line 1: ORA-00059: maximum number of DB_FILES exceeded</pre><p><strong>Solution:</strong></p> <p>Increase <strong>db_files</strong> initialization parameter and <strong>bounce</strong> the database. Increase this parameter will increase the PGA consumption for every server process.</p><pre class="crayon-plain-tag">SQL&gt; alter system set db_files=500 scope=spfile sid='*'; System altered.</pre><p>Thank you for giving your valuable time to read the above information.</p> <p><span class="s1">If you want to be updated with all our articles s</span>end us the Invitation or Follow us:</p> <p><span class="s1"><span class="s2"><strong>Skant Gupta’s</strong> LinkedIn: <a class="jive-link-external-small" href="http://www.linkedin.com/in/skantali/" rel="nofollow">www.linkedin.com/in/skantali/</a></span></span></p> <p class="p4"><span class="s1"><strong>Joel Perez’s</strong> LinkedIn: <a href="http://www.linkedin.com/in/SirDBaaSJoelPerez"><strong>Joel Perez’s Profile</strong></a></span></p> <p><strong>Anuradha’s </strong><span class="s1">LinkedIn: <strong><a href="https://www.linkedin.com/in/dbaanuradhamudgal/">Anuradha’s Profile</a></strong></span></p> <p>LinkedIn Group: <em><strong><a class="js-entity-name entity-name" href="https://www.linkedin.com/groups/12065270" data-app-link="">Oracle Cloud DBAAS</a></strong></em></p> <p>Facebook Page: <em><strong><a href="https://www.facebook.com/oraclehelp">OracleHelp</a></strong></em></p> <p>The post <a rel="nofollow" href="http://oracle-help.com/oracle-database/ora-00059maximum-number-db_files-exceeded/">ORA-00059:maximum number of DB_FILES exceeded</a> appeare first on <a rel="nofollow" href="http://oracle-help.com">ORACLE-HELP</a>.</p> Skant Gupta http://oracle-help.com/?p=2529 Sat Nov 25 2017 09:19:29 GMT-0500 (EST) Oracle Database Gateway for MySQL http://oracle-help.com/oracle-database/oracle-database-gateway-mysql/ <p>An organization have lot of choices to choose from the <strong>RDBMS</strong> world. <strong>Oracle Database, Microsoft SQL Server, IBM DB2,PostgreSQL, MySQL</strong> are few of them. Most of the organizations out there do have a mix of all these which are used to store their data and in course of time it is inevitable that they would want to transfer data from ‘this database’ to ‘that database’. Oracle, the uncrowned king of this <strong>RDBMS</strong> world call this “<strong>Heterogeneous Connectivity</strong>” and have incorporated this facility into their database and this is installed by default.</p> <p><strong>The steps are:</strong></p> <ul> <li><strong><em><a href="http://oracle-help.com/oracle-database/installation-oracle-database-gateway/"><span style="color: #000000"><span style="text-decoration: underline">Install Oracle Transparent Gateway for MySQL</span></span></a></em></strong></li> <li>Create the ODBC data source</li> <li>Configure the gateway initialization parameter file</li> <li>Configure the listener</li> <li>Configure the Oracle database tnsnames.ora</li> <li>Creating DB link from Oracle database to MySQL Server</li> </ul> <p><strong>Step 1 :</strong></p> <p>Create System <strong>DSN</strong> for <strong>MySQL</strong>:</p> <p>Go to <strong>Control Panel</strong> &gt; <strong>Administrative Tools</strong> &gt; <strong>ODBC Data Sources</strong></p> <p><a href="https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/11/my1.jpg"><img data-attachment-id="2521" data-permalink="http://oracle-help.com/oracle-database/oracle-database-gateway-mysql/attachment/my1/" data-orig-file="https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/11/my1.jpg?fit=864%2C618" data-orig-size="864,618" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="my1" data-image-description="" data-medium-file="https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/11/my1.jpg?fit=300%2C215" data-large-file="https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/11/my1.jpg?fit=864%2C618" src="https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/11/my1.jpg?resize=864%2C618" class="alignnone wp-image-2521" alt="" srcset="https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/11/my1.jpg?w=864 864w, https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/11/my1.jpg?resize=300%2C215 300w, https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/11/my1.jpg?resize=768%2C549 768w, https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/11/my1.jpg?resize=60%2C43 60w, https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/11/my1.jpg?resize=150%2C107 150w" sizes="(max-width: 864px) 100vw, 864px" data-recalc-dims="1" /></a><br /> Select <b>MySQL </b>odbc driver and Click on <strong>Add</strong> Button</p> <p><a href="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/11/my2.jpg"><img data-attachment-id="2522" data-permalink="http://oracle-help.com/oracle-database/oracle-database-gateway-mysql/attachment/my2/" data-orig-file="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/11/my2.jpg?fit=864%2C640" data-orig-size="864,640" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="my2" data-image-description="" data-medium-file="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/11/my2.jpg?fit=300%2C222" data-large-file="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/11/my2.jpg?fit=864%2C640" src="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/11/my2.jpg?resize=864%2C640" class="alignnone wp-image-2522" alt="" srcset="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/11/my2.jpg?w=864 864w, https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/11/my2.jpg?resize=300%2C222 300w, https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/11/my2.jpg?resize=768%2C569 768w, https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/11/my2.jpg?resize=60%2C44 60w, https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/11/my2.jpg?resize=150%2C111 150w" sizes="(max-width: 864px) 100vw, 864px" data-recalc-dims="1" /></a><br /> Click On <strong>Finish</strong></p> <p>Add <strong>Data Source Name</strong> and <strong>MySQL</strong> server <strong>credentials</strong> :</p> <p><a href="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/11/my3.jpg"><img data-attachment-id="2523" data-permalink="http://oracle-help.com/oracle-database/oracle-database-gateway-mysql/attachment/my3/" data-orig-file="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/11/my3.jpg?fit=864%2C612" data-orig-size="864,612" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="my3" data-image-description="" data-medium-file="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/11/my3.jpg?fit=300%2C213" data-large-file="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/11/my3.jpg?fit=864%2C612" src="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/11/my3.jpg?resize=864%2C612" class="alignnone wp-image-2523" alt="" srcset="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/11/my3.jpg?w=864 864w, https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/11/my3.jpg?resize=300%2C213 300w, https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/11/my3.jpg?resize=768%2C544 768w, https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/11/my3.jpg?resize=60%2C43 60w, https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/11/my3.jpg?resize=150%2C106 150w" sizes="(max-width: 864px) 100vw, 864px" data-recalc-dims="1" /></a><br /> Click <strong>OnTest</strong> Button :</p> <p><a href="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/11/my4.jpg"><img data-attachment-id="2524" data-permalink="http://oracle-help.com/oracle-database/oracle-database-gateway-mysql/attachment/my4/" data-orig-file="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/11/my4.jpg?fit=864%2C498" data-orig-size="864,498" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="my4" data-image-description="" data-medium-file="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/11/my4.jpg?fit=300%2C173" data-large-file="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/11/my4.jpg?fit=864%2C498" src="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/11/my4.jpg?resize=864%2C498" class="alignnone wp-image-2524" alt="" srcset="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/11/my4.jpg?w=864 864w, https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/11/my4.jpg?resize=300%2C173 300w, https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/11/my4.jpg?resize=768%2C443 768w, https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/11/my4.jpg?resize=60%2C35 60w, https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/11/my4.jpg?resize=150%2C86 150w" sizes="(max-width: 864px) 100vw, 864px" data-recalc-dims="1" /></a><br /> <strong>Step 2 :</strong><br /> Now go to<strong> cd $ORACLE_HOME\hs\admin\</strong><br /> Update following lines to <strong>initdg4odbc.ora</strong> file :</p><pre class="crayon-plain-tag"># This is a sample agent init file that contains the HS parameters that are</pre><p></p><pre class="crayon-plain-tag"># needed for the Database Gateway for ODBC</pre><p></p><pre class="crayon-plain-tag"># HS init parameters</pre><p></p><pre class="crayon-plain-tag">HS_FDS_CONNECT_INFO = demo  #dsn name we have recently created</pre><p></p><pre class="crayon-plain-tag">HS_FDS_TRACE_LEVEL = OFF</pre><p></p><pre class="crayon-plain-tag">HS_FDS_SUPPORT_STATISTICS = FALSE</pre><p></p><pre class="crayon-plain-tag">#HS_LANGUAGE=AMERICAN_AMERICA.WE8ISO8859P15</pre><p></p><pre class="crayon-plain-tag">#HS_FDS_TIMESTAMP_MAPPING=DATE</pre><p></p><pre class="crayon-plain-tag"># Environment variables required for the non-Oracle system</pre><p></p><pre class="crayon-plain-tag">#set &lt;envvar&gt;=&lt;value&gt;</pre><p></p><pre class="crayon-plain-tag"># ODBCINI: full path of odbc.ini</pre><p></p><pre class="crayon-plain-tag">set ODBCINI =C:\Windows\ODBC.ini</pre><p><strong>Step 3 :</strong><br /> Add following lines to <strong>listener.ora</strong> file :</p><pre class="crayon-plain-tag">SID_LIST_LISTENER =</pre><p></p><pre class="crayon-plain-tag">(SID_LIST =</pre><p></p><pre class="crayon-plain-tag">(SID_DESC =</pre><p></p><pre class="crayon-plain-tag">(SID_NAME = CLRExtProc)</pre><p></p><pre class="crayon-plain-tag">(ORACLE_HOME = D:\oracle\product\11.2.0\dbhome_1)</pre><p></p><pre class="crayon-plain-tag">(PROGRAM = extproc)</pre><p></p><pre class="crayon-plain-tag">(ENVS = "EXTPROC_DLLS=ONLY:D:\oracle\product\11.2.0\dbhome_1\bin\oraclr11.dll")</pre><p></p><pre class="crayon-plain-tag">)</pre><p></p><pre class="crayon-plain-tag">(SID_DESC =</pre><p></p><pre class="crayon-plain-tag">(SID_NAME = dg4odbc)</pre><p></p><pre class="crayon-plain-tag">(ORACLE_HOME=D:\oracle\product\11.2.0\dbhome_1)</pre><p></p><pre class="crayon-plain-tag">(PROGRAM = dg4odbc)</pre><p></p><pre class="crayon-plain-tag">)</pre><p></p><pre class="crayon-plain-tag">)</pre><p></p><pre class="crayon-plain-tag">LISTENER =</pre><p></p><pre class="crayon-plain-tag">(DESCRIPTION_LIST =</pre><p></p><pre class="crayon-plain-tag">(DESCRIPTION =</pre><p></p><pre class="crayon-plain-tag">(ADDRESS = (PROTOCOL = TCP)(HOST = admin-PC)(PORT = 1521))</pre><p></p><pre class="crayon-plain-tag">(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))</pre><p></p><pre class="crayon-plain-tag">)</pre><p></p><pre class="crayon-plain-tag">)</pre><p></p><pre class="crayon-plain-tag">ADR_BASE_LISTENER = D:\oracle</pre><p><strong>Step 4</strong> : <strong>Restart</strong> listener</p><pre class="crayon-plain-tag">C:\Users\Administrator&gt;LSNRCTL RELOAD</pre><p></p><pre class="crayon-plain-tag">LSNRCTL for 32-bit Windows: Version 11.2.0.4.0 - Production on 06-NOV-2017 17:40:09</pre><p></p><pre class="crayon-plain-tag">Copyright (c) 1991, 2013, Oracle. All rights reserved.</pre><p></p><pre class="crayon-plain-tag">Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=Admin-PC)(PORT=1521)))</pre><p></p><pre class="crayon-plain-tag">The command completed successfully</pre><p><strong>Step 5</strong> :Check listener <strong>status</strong></p><pre class="crayon-plain-tag">C:\Users\Administrator&gt;LSNRCTL STATUS</pre><p></p><pre class="crayon-plain-tag">LSNRCTL for 32-bit Windows: Version 11.2.0.4.0 - Production on 06-NOV-2017 17:40:13</pre><p></p><pre class="crayon-plain-tag">Copyright (c) 1991, 2013, Oracle. All rights reserved.</pre><p></p><pre class="crayon-plain-tag">Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=Admin-PC)(PORT=1521)))</pre><p></p><pre class="crayon-plain-tag">STATUS of the LISTENER</pre><p></p><pre class="crayon-plain-tag">------------------------</pre><p></p><pre class="crayon-plain-tag">Alias LISTENER</pre><p></p><pre class="crayon-plain-tag">Version TNSLSNR for 32-bit Windows: Version 11.2.0.4.0 - Production</pre><p></p><pre class="crayon-plain-tag">Start Date 06-NOV-2017 10:02:01 Uptime 0 days 7 hr. 38 min. 13 sec</pre><p></p><pre class="crayon-plain-tag">Trace Level off</pre><p></p><pre class="crayon-plain-tag">Security ON: Local OS Authentication SNMP OFF</pre><p></p><pre class="crayon-plain-tag">Listener Parameter File D:\oracle\Administrator\product\11.2.0\dbhome_1\network\admin\listener.ora</pre><p></p><pre class="crayon-plain-tag">Listener Log File D:\oracle\Administrator\diag\tnslsnr\Admin-PC\listener\alert\log.xml</pre><p></p><pre class="crayon-plain-tag">Listening Endpoints Summary...</pre><p></p><pre class="crayon-plain-tag">(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=Admin-PC)(PORT=1521)))</pre><p></p><pre class="crayon-plain-tag">(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))</pre><p></p><pre class="crayon-plain-tag">Services Summary...</pre><p></p><pre class="crayon-plain-tag">Service "CLRExtProc" has 1 instance(s).</pre><p></p><pre class="crayon-plain-tag">Instance "CLRExtProc", status UNKNOWN, has 2 handler(s) for this service...</pre><p></p><pre class="crayon-plain-tag">Service "dg4odbc" has 1 instance(s).</pre><p></p><pre class="crayon-plain-tag">Instance "dg4odbc", status UNKNOWN, has 1 handler(s) for this service...</pre><p></p><pre class="crayon-plain-tag">Service "test" has 1 instance(s).</pre><p></p><pre class="crayon-plain-tag">Instance "test", status READY, has 1 handler(s) for this service...</pre><p></p><pre class="crayon-plain-tag">Service "testXDB" has 1 instance(s).</pre><p>Append following lines to <strong>TNSNAMES.ora</strong> file :</p><pre class="crayon-plain-tag">dg4odbc =</pre><p></p><pre class="crayon-plain-tag">(DESCRIPTION =</pre><p></p><pre class="crayon-plain-tag">(ADDRESS = (PROTOCOL = TCP) (HOST =localhost)(PORT = 1521) )</pre><p></p><pre class="crayon-plain-tag">(CONNECT_DATA =(SID = dg4odbc) )</pre><p></p><pre class="crayon-plain-tag">(HS = OK)</pre><p></p><pre class="crayon-plain-tag">)</pre><p>Check <strong>tnsping</strong> :</p><pre class="crayon-plain-tag">[oracle@cbsdb01 admin]$ tnsping dg4odbc</pre><p></p><pre class="crayon-plain-tag">TNS Ping Utility for Linux: Version 12.2.0.1.0 - Production on 04-NOV-2017 16:52:17</pre><p></p><pre class="crayon-plain-tag">Copyright (c) 1997, 2016, Oracle. All rights reserved.</pre><p></p><pre class="crayon-plain-tag">Used parameter files:</pre><p></p><pre class="crayon-plain-tag">Used TNSNAMES adapter to resolve the alias</pre><p></p><pre class="crayon-plain-tag">Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = tcp)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SID = dg4odbc)) (HS = OK))</pre><p></p><pre class="crayon-plain-tag">OK (10 msec)</pre><p></p><pre class="crayon-plain-tag">[oracle@cbsdb01 admin]$</pre><p>Create a <strong>Database link</strong> using above mentioned <strong>tnsname</strong> entry and <strong>MySQL</strong> Credential :</p><pre class="crayon-plain-tag">SQL&gt; CREATE DATABASE LINK Mysql1 CONNECT TO "root" IDENTIFIED BY "redhat" USING 'dg4odbc';</pre><p></p><pre class="crayon-plain-tag">Database link created.</pre><p>Now <strong>fetch</strong> data using <strong>DatabaseLink</strong> :</p><pre class="crayon-plain-tag">SQL&gt; select count(*) from address@mysql1;</pre><p></p><pre class="crayon-plain-tag">COUNT(*)</pre><p></p><pre class="crayon-plain-tag">----------</pre><p></p><pre class="crayon-plain-tag">20000</pre><p></p><pre class="crayon-plain-tag">SQL&gt;</pre><p>Thank you for giving your valuable time to read the above information.</p> <p><span class="s1">If you want to be updated with all our articles s</span>end us the Invitation or Follow us:</p> <p><span class="s1"><span class="s2"><strong>Skant Gupta’s</strong></span></span><span class="s1"><span class="s2"> LinkedIn: </span></span><span class="s1"><span class="s2"><a class="jive-link-external-small" href="http://www.linkedin.com/in/skantali/" rel="nofollow">www.linkedin.com/in/skantali/</a></span></span></p> <p class="p4"><span class="s1"><strong>Joel Perez’s</strong></span><span class="s1"> LinkedIn: </span><span class="s1"><strong><a href="http://www.linkedin.com/in/SirDBaaSJoelPerez">Joel Perez’s Profile</a></strong></span></p> <p><strong>Anuradha’s </strong><span class="s1">LinkedIn: </span><span class="s1"><strong><a href="https://www.linkedin.com/in/dbaanuradhamudgal/">Anuradha&#8217;s Profile</a></strong></span></p> <p>LinkedIn Group: <strong><em><a class="js-entity-name entity-name" href="https://www.linkedin.com/groups/12065270" data-app-link="">Oracle Cloud DBAAS</a></em></strong>Facebook Page: <strong><em><a href="https://www.facebook.com/oraclehelp">OracleHelp</a></em></strong></p> <p>The post <a rel="nofollow" href="http://oracle-help.com/oracle-database/oracle-database-gateway-mysql/">Oracle Database Gateway for MySQL</a> appeared first on <a rel="nofollow" href="http://oracle-help.com">ORACLE-HELP</a>.</p> Skant Gupta http://oracle-help.com/?p=2518 Sat Nov 25 2017 09:12:05 GMT-0500 (EST) VirtualBox 5.2.2 https://oracle-base.com/blog/2017/11/25/virtualbox-5-2-2/ <p><a href="https://www.virtualbox.org/"><img class="size-full wp-image-4959 alignleft" src="https://oracle-base.com/blog/wp-content/uploads/2015/05/virtualbox.jpg" alt="" width="129" height="145" /></a><a href="https://www.virtualbox.org/">VirtualBox</a> 5.2.2 has been released.</p> <p>The <a href="https://www.virtualbox.org/wiki/Downloads">downloads</a> and <a href="https://www.virtualbox.org/wiki/Changelog#2">changelog</a> are in the usual places.</p> <p>I&#8217;ve done the installation on my Windows 7 PC at work, macOS High Sierra and Oracle Linux 7 and all worked fine.</p> <p>For some reason the automatic download of the extension pack failed on all platforms. I just downloaded it manually and installed it and it was OK.</p> <p>I was hoping this would solve the problem I have with Fedora 27. I can&#8217;t complete an install (even with 3D acceleration turned off) on macOS or Windows 7 because I get this.</p> <p><img class="alignnone wp-image-7734" src="https://oracle-base.com/blog/wp-content/uploads/2017/11/fedora17-fail.png" alt="" width="600" height="231" /></p> <p>The new version of VirtualBox reacts the same as the previous one, so back to the drawing board with that. <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p> <p>The only way I can get Fedora 27 installed is to do it on a OL7 host using the Workstation Live DVD. The live DVD works on the other hosts too, but they won&#8217;t complete an install using it, or any other spin&#8230;</p> <p>Everything else is happy though, so we are all good. <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p> <p>Cheers</p> <p>Tim&#8230;</p> <hr style="border-top:black solid 1px" /><a href="https://oracle-base.com/blog/2017/11/25/virtualbox-5-2-2/">VirtualBox 5.2.2</a> was first posted on November 25, 2017 at 2:52 pm.<br />©2012 "<a href="http://www.oracle-base.com/blog">The ORACLE-BASE Blog</a>". Use of this feed is for personal non-commercial use only. If you are not reading this article in your feed reader, then the site is guilty of copyright infringement.<br /> Tim... https://oracle-base.com/blog/?p=7732 Sat Nov 25 2017 08:52:40 GMT-0500 (EST) Enable DDL Replication In Goldengate http://oracle-help.com/goldengate/enable-ddl-replication-goldengate/ <p>In this below tutorial, we will enable DDL replication for a table, which is already part of goldengate replication and currently, only DML transactions are getting replicated.</p> <p><a href="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/11/1-22.jpg"><img data-attachment-id="2515" data-permalink="http://oracle-help.com/goldengate/enable-ddl-replication-goldengate/attachment/1-48/" data-orig-file="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/11/1-22.jpg?fit=225%2C225" data-orig-size="225,225" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="1" data-image-description="" data-medium-file="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/11/1-22.jpg?fit=225%2C225" data-large-file="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/11/1-22.jpg?fit=225%2C225" class="alignnone wp-image-2515" src="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/11/1-22.jpg?resize=322%2C323" alt="" srcset="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/11/1-22.jpg?w=225 225w, https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/11/1-22.jpg?resize=150%2C150 150w, https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/11/1-22.jpg?resize=60%2C60 60w" sizes="(max-width: 322px) 100vw, 322px" data-recalc-dims="1" /></a></p> <p>TABLE_NAME = APPLIANCE.CLASSTAB1</p> <p>To enable DDL replication, We need to run few SQL scripts(provided under $GG_HOME)  on the source database. and update the extract parameter file.</p> <h4>1. Run role_setup.sql where extract is running [ SOURCE ]</h4> <p>conn / as sysdba</p> <p>cd $GG_HOME</p> <p>sqlplus / as sysdba</p> <p>SQL&gt; @role_setup.sql</p> <p>GGS Role setup script</p> <p>This script will drop and recreate the role GGS_GGSUSER_ROLE<br /> To use a different role name, quit this script and then edit the params.sql script to change the gg_role parameter to the preferred name. (Do not run the script.)</p> <p>You will be prompted for the name of a schema for the GoldenGate database objects.<br /> NOTE: The schema must be created prior to running this script.<br /> NOTE: Stop all DDL replication before starting this installation.</p> <p>Enter GoldenGate schema name: GATE_USER<br /> Wrote file role_setup_set.txt</p> <p>PL/SQL procedure successfully completed.</p> <h4>2. Grant the role to GATE_USER.[SOURCE]</h4> <p>SQL&gt; GRANT GGS_GGSUSER_ROLE TO GATE_USER;</p> <p>Grant succeeded.</p> <h4>3.Run the marker script:[SOURCE]</h4> <p>SQL&gt; @marker_setup.sql</p> <p>Marker setup script</p> <p>You will be prompted for the name of a schema for the Oracle GoldenGate database objects.<br /> NOTE: The schema must be created prior to running this script.<br /> NOTE: Stop all DDL replication before starting this installation.</p> <p>Enter Oracle GoldenGate schema name:GATE_USER</p> <p>Marker setup table script complete, running verification script&#8230;<br /> Please enter the name of a schema for the GoldenGate database objects:<br /> Setting schema name to GATE_USER</p> <p>MARKER TABLE<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br /> OK</p> <p>MARKER SEQUENCE<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br /> OK</p> <p>Script complete.</p> <h4>4. Run ddl_setup.sql script [ SOURCE ]</h4> <p>@ddl_setup.sql</p> <p>SQL&gt; @ddl_setup.sql</p> <p>Oracle GoldenGate DDL Replication setup script</p> <p>Verifying that current user has privileges to install DDL Replication&#8230;</p> <p>You will be prompted for the name of a schema for the Oracle GoldenGate database objects.<br /> NOTE: For an Oracle 10g source, the system recycle bin must be disabled. For Oracle 11g and later, it can be enabled.<br /> NOTE: The schema must be created prior to running this script.<br /> NOTE: Stop all DDL replication before starting this installation.</p> <p>Enter Oracle GoldenGate schema name:GATE_USER</p> <p>Working, please wait &#8230;<br /> Spooling to file ddl_setup_spool.txt</p> <p>Checking for sessions that are holding locks on Oracle Golden Gate metadata tables &#8230;</p> <p>Check complete.</p> <p>Using GATE_USER as an Oracle GoldenGate schema name.</p> <p>Working, please wait &#8230;</p> <p>DDL replication setup script colete, running verification script&#8230;<br /> Please enter the name of a schema for the GoldenGate database objects:<br /> Setting schema name to GATE_USER</p> <p>CLEAR_TRACE STATUS:</p> <p>Line/pos Error<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br /> No errors No errors</p> <p>CREATE_TRACE STATUS:</p> <p>Line/pos Error<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br /> No errors No errors</p> <p>TRACE_PUT_LINE STATUS:</p> <p>Line/pos Error<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br /> No errors No errors</p> <p>INITIAL_SETUP STATUS:</p> <p>Line/pos Error<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br /> No errors No errors</p> <p>DDLVERSIONSPECIFIC PACKAGE STATUS:</p> <p>Line/pos Error<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br /> No errors No errors</p> <p>DDLREPLICATION PACKAGE STATUS:</p> <p>Line/pos Error<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br /> No errors No errors</p> <p>DDLREPLICATION PACKAGE BODY STATUS:</p> <p>Line/pos Error<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br /> No errors No errors</p> <p>DDL IGNORE TABLE<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br /> OK</p> <p>DDL IGNORE LOG TABLE<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br /> OK</p> <p>DDLAUX PACKAGE STATUS:</p> <p>Line/pos Error<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br /> No errors No errors</p> <p>DDLAUX PACKAGE BODY STATUS:</p> <p>Line/pos Error<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br /> No errors No errors</p> <p>SYS.DDLCTXINFO PACKAGE STATUS:</p> <p>Line/pos Error<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br /> No errors No errors</p> <p>SYS.DDLCTXINFO PACKAGE BODY STATUS:</p> <p>Line/pos Error<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br /> No errors No errors</p> <p>DDL HISTORY TABLE<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br /> OK</p> <p>DDL HISTORY TABLE(1)<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br /> OK</p> <p>DDL DUMP TABLES<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br /> OK</p> <p>DDL DUMP COLUMNS<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br /> OK</p> <p>DDL DUMP LOG GROUPS<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br /> OK</p> <p>DDL DUMP PARTITIONS<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br /> OK</p> <p>DDL DUMP PRIMARY KEYS<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br /> OK</p> <p>DDL SEQUENCE<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br /> OK</p> <p>GGS_TEMP_COLS<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br /> OK</p> <p>GGS_TEMP_UK<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br /> OK</p> <p>DDL TRIGGER CODE STATUS:</p> <p>Line/pos Error<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br /> No errors No errors</p> <p>DDL TRIGGER INSTALL STATUS<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br /> OK</p> <p>DDL TRIGGER RUNNING STATUS<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br /> ENABLED</p> <p>STAYMETADATA IN TRIGGER<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br /> OFF</p> <p>DDL TRIGGER SQL TRACING<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br /> 0</p> <p>DDL TRIGGER TRACE LEVEL<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br /> NONE</p> <p>LOCATION OF DDL TRACE FILE<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br /> /oracle/app/oracle/product/12.1.0.2/dbhome_1/rdbms/log/ggs_ddl_trace.log</p> <p>Analyzing installation status&#8230;</p> <p>VERSION OF DDL REPLICATION<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br /> OGGCORE_12.2.0.1.0_PLATFORMS_151211.1401</p> <p>STATUS OF DDL REPLICATION<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br /> SUCCESSFUL installation of DDL Replication software components</p> <p>Script complete.</p> <h4>5. Update the extract parameter file to include DDL</h4> <p>We need to add the command <em><strong>DDL INCLUDE MAPPED OBJNAME &lt;SCHEMA_NAME&gt;.&lt;TABLE_NAME&gt;</strong></em></p> <p>It will look as below</p> <p>ggsci&gt; edit params ext1</p> <p>EXTRACT EXT1<br /> SETENV (ORACLE_SID=&#8221;SRCDB&#8221;)<br /> SETENV (ORACLE_HOME = &#8220;/oracle/app/oracle/product/12.1.0/dbhome_1&#8221;)<br /> SETENV (NLS_LANG = &#8220;AMERICAN_AMERICA.AL32UTF8&#8221;)<br /> userid ggate, PASSWORD ggate123<br /> FETCHOPTIONS FETCHPKUPDATECOLS, USESNAPSHOT, USELATESTVERSION<br /> DBOPTIONS ALLOWUNUSEDCOLUMN<br /> DISCARDFILE /ggate/app/oracle/product/12.2.1.0.3/TST/EXT1.dsc, APPEND, MEGABYTES 100<br /> EXTTRAIL /ggate/app/oracle/product/12.2.1.0.3/TST/E5<br /> DDL INCLUDE MAPPED OBJNAME APPLIANCE.CLASSTAB1<br /> TABLE APPLIANCE.CLASSTAB1;</p> <p>No changes required to extract pump and replicat parameter files.</p> <h4>6. Restart the extract [ SOURCE]</h4> <p>gggsci&gt; stop ext1</p> <p>ggsci&gt; start ext1</p> <p>GGSCI&gt; info all</p> <p>Program Status Group Lag at Chkpt Time Since Chkpt</p> <p>MANAGER RUNNING<br /> EXTRACT RUNNING EXT1 00:00:00 00:00:03<br /> EXTRACT RUNNING EXT1P 00:00:00 00:00:01</p> <p>Now DDL replication is enabled. Do some DDL changes on source.</p> <p>&#8212; DDL change on source</p> <p>SQL&gt; alter table appliance.classtab1 add ( SCHOOL varchar2(20));</p> <p>Table altered.</p> <p>SQL&gt; desc appliance.classtab1<br /> Name Null? Type<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br /> SR NUMBER<br /> CLASS VARCHAR2(20)<br /> SCHOOL VARCHAR2(20)</p> <p>&#8212; Check the status of extract:</p> <p>GGSCI () 18&gt; stats EXT1</p> <p>Sending STATS request to EXTRACT EXT1 &#8230;</p> <p>Start of Statistics at 2017-07-25 10:50:03.</p> <p>DDL replication statistics (for all trails):</p> <p>*** Total statistics since extract started ***<br /> Operations 1.00<br /> Mapped operations 1.00 &#8212;- &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; DDL CHANGE CAPTURES BY EXTRACT.<br /> Unmapped operations 0.00<br /> Other operations 0.00<br /> Excluded operations 0.00</p> <p>Output to /GGATE_USER/TRAILFILE/S2:</p> <p>&#8212; Check the table in target db( replicate side)</p> <p>SQL&gt; desc appliance.classtab1<br /> Name Null? Type<br /> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br /> SR NUMBER<br /> CLASS VARCHAR2(20)<br /> SCHOOL VARCHAR2(20)</p> <p>The column has been added to target database also.</p> <p>&nbsp;</p> <p>The post <a rel="nofollow" href="http://oracle-help.com/goldengate/enable-ddl-replication-goldengate/">Enable DDL Replication In Goldengate</a> appeared first on <a rel="nofollow" href="http://oracle-help.com">ORACLE-HELP</a>.</p> Anuradha Mudgal http://oracle-help.com/?p=2513 Sat Nov 25 2017 01:59:22 GMT-0500 (EST) Obey Command In Goldengate http://oracle-help.com/goldengate/obey-command-goldengate/ <p>Like we execute .sql file against SQL, we can write multiple golden gate commands inside a .oby file and execute it against GGSCI prompt using <strong>OBEY</strong> command. Use OBEY to process a file that contains a list of Oracle GoldenGate commands. OBEY is useful for executing commands that are frequently used in sequence.</p> <p><a href="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/11/9-6.jpg"><img data-attachment-id="2510" data-permalink="http://oracle-help.com/goldengate/obey-command-goldengate/attachment/9-17/" data-orig-file="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/11/9-6.jpg?fit=225%2C225" data-orig-size="225,225" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="9" data-image-description="" data-medium-file="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/11/9-6.jpg?fit=225%2C225" data-large-file="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/11/9-6.jpg?fit=225%2C225" class="alignnone wp-image-2510" src="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/11/9-6.jpg?resize=386%2C387" alt="" srcset="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/11/9-6.jpg?w=225 225w, https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/11/9-6.jpg?resize=150%2C150 150w, https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/11/9-6.jpg?resize=60%2C60 60w" sizes="(max-width: 386px) 100vw, 386px" data-recalc-dims="1" /></a></p> <h3>EXAMPLE:</h3> <p>In the below example, we will add supplemental login(add trandata) for multiple tables using obey the command.</p> <p><strong>1. Create a text file and put goldengate commands.</strong></p> <p>vi addtran.oby</p> <p>dblogin USERID ggate, PASSWORD ggate123<br /> add trandata dbaclass.TEST3<br /> add trandata dbaclass.TEST4</p> <p><strong>2. execute obey command from GGSCI</strong></p> <p><em><strong>SYNTAX</strong> </em>– obey &lt; text_file_name.oby&gt;</p> <p><strong><em>ggsci&gt; obey addtran.oby</em></strong></p> <p>./ggsci</p> <p>GGSCI &gt; obey addtran.oby</p> <p>GGSCI &gt; dblogin USERID ggate, PASSWORD ggate123</p> <p>Successfully logged into the database.</p> <p>GGSCI &gt; add trandata dbaclass.TEST3</p> <p>2017-07-17 11:24:29 WARNING OGG-06439 No unique key is defined for table TEST3.</p> <p>Logging of supplemental redo data enabled for table DBACLASS.TEST3.<br /> TRANDATA for scheduling columns has been added on table &#8216;DBACLASS.TEST3&#8217;.<br /> TRANDATA for instantiation CSN has been added on table &#8216;DBACLASS.TEST3&#8217;.</p> <p>GGSCI 4&gt; add trandata dbaclass.TEST4</p> <p>2017-07-17 11:24:33 WARNING OGG-06439 No unique key is defined for table TEST4.</p> <p>Logging of supplemental redo data enabled for table DBACLASS.TEST4.<br /> TRANDATA for scheduling columns has been added on table &#8216;DBACLASS.TEST4&#8217;.<br /> TRANDATA for instantiation CSN has been added on table &#8216;DBACLASS.TEST4&#8217;.</p> <p>We can see, it executed all the commands mentioned inside the text file.</p> <h3>NESTED OBEY:</h3> <p>Can we put one obey file inside another obey file.?? Well, this nested obey is controlled by the keyword ALLOWNESTED.</p> <h4>NOALLOWNESTED:</h4> <p>This is the default setting. Any attempt to run nested obey file will throw below error.</p> <p><strong><em>ERROR: Nested OBEY scripts not allowed. Use ALLOWNESTED to allow nested scripts.</em></strong></p> <h4>ALLOWNESTED:</h4> <p>This parameter Enables the use of nested OBEY files. i.e we can use one obey file inside another obey file.</p> <h4></h4> <p>Let’s create two obey files:</p> <p>&#8212; obey file 1</p> <p>cat infotran1.oby</p> <p>dblogin USERID ggate, PASSWORD ggate123<br /> info trandata dbaclass.TEST3</p> <p>&#8212; obey file 2<br /> cat infotran2.oby</p> <p>dblogin USERID ggate, PASSWORD ggate123<br /> info trandata dbaclass.TEST4</p> <p>Let’s try with the default one(NOALLOWNESTED)</p> <p>Here I have created two obey files and put them in another obey file</p> <p>cat infotran.oby</p> <p>obey infotran1.oby<br /> obey infotran2.oby</p> <p><strong>Execute the obey file</strong></p> <p>GGSCI &gt; obey infotran1.oby</p> <p>ERROR: Nested OBEY scripts not allowed. Use ALLOWNESTED to allow nested scripts.</p> <p>As expected it is throwing error,</p> <p><strong>Now let’s use ALLOWNESTED parameter:</strong></p> <div id="crayon-5a1910c9c4230169971456" class="crayon-syntax crayon-theme-github crayon-font-monaco crayon-os-pc print-yes notranslate"> <div class="crayon-plain-wrap"> cat infotran.oby</p> <p>ALLOWNESTED<br /> obey infotran1.oby<br /> obey infotran2.oby<br /> Execute the obey file:</p></div> <div>GGSCI &gt; obey infotran.oby</p> <p>GGSCI &gt; ALLOWNESTED</p> <p>Nested OBEY scripts allowed.</p> <p>GGSCI &gt; obey infotran1.oby</p> <p>**** Halting script [infotran.oby], starting script [infotran1.oby]&#8230;</p> <p>GGSCI &gt; dblogin USERID ggate, PASSWORD ggate123</p> <p>Successfully logged into the database.</p> <p>GGSCI &gt; info trandatadbaclass.TEST3</p> <p>Logging of supplemental redo log data is enabled for table DBACLASS.TEST3.</p> <p>Columns supplementally logged for table DBACLASS.TEST3: CREATED, DATA_OBJECT_ID, EDITION_NAME, GENERATED, LAST_DDL_TIME, NAMESPACE, OBJECT_ID, OBJECT_NAME, OBJECT_TYPE, OWNER, SECONDARY, STATUS, SU<br /> BOBJECT_NAME, TEMPORARY, TIMESTAMP.</p> <p>Prepared CSN for table DBACLASS.TEST3: 11733401025760<br /> GGSCI 6&gt;</p> <p>GGSCI 6&gt; **** Terminating script [infotran1.oby], resuming script [infotran.oby]&#8230;</p> <p>GGSCI 6&gt; obey infotran2.oby</p> <p>**** Halting script [infotran.oby], starting script [infotran2.oby]&#8230;</p> <p>GGSCI &gt; dblogin USERID ggate, PASSWORD ggate123</p> <p>Successfully logged into a database.</p> <p>GGSCI &gt; info trandatadbaclass.TEST4</p> <p>Logging of supplemental redo log data is enabled for table DBACLASS.TEST4.</p> <p>Columns supplementally logged for table DBACLASS.TEST4: CREATED, DATA_OBJECT_ID, EDITION_NAME, GENERATED, LAST_DDL_TIME, NAMESPACE, OBJECT_ID, OBJECT_NAME, OBJECT_TYPE, OWNER, SECONDARY, STATUS, SU<br /> BOBJECT_NAME, TEMPORARY, TIMESTAMP.</p> <p>Prepared CSN for table DBACLASS.TEST4: 11733401025806<br /> GGSCI &gt;</p> <p>GGSCI &gt; **** Terminating script [infotran2.oby], resuming script [infotran.oby]&#8230;</p></div> </div> <div>With ALLOWNESTED, obey file executed successfully. The maximum number of nested levels is 16.</div> <p>The post <a rel="nofollow" href="http://oracle-help.com/goldengate/obey-command-goldengate/">Obey Command In Goldengate</a> appeared first on <a rel="nofollow" href="http://oracle-help.com">ORACLE-HELP</a>.</p> Anuradha Mudgal http://oracle-help.com/?p=2508 Sat Nov 25 2017 01:51:12 GMT-0500 (EST) OGG-01028 Partial Record At Sequence Extract Abended http://oracle-help.com/goldengate/ogg-01028-partial-record-sequence-extract-abended/ <p>This post is about the error we face in golden gate. Here we have the condition when we face this issue, symptoms, cause, and solution of the error.</p> <p><a href="https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/11/8.png"><img data-attachment-id="2505" data-permalink="http://oracle-help.com/goldengate/ogg-01028-partial-record-sequence-extract-abended/attachment/8-20/" data-orig-file="https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/11/8.png?fit=318%2C159" data-orig-size="318,159" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="8" data-image-description="" data-medium-file="https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/11/8.png?fit=300%2C150" data-large-file="https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/11/8.png?fit=318%2C159" class="alignnone wp-image-2505" src="https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/11/8.png?resize=526%2C265" alt="" srcset="https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/11/8.png?resize=300%2C150 300w, https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/11/8.png?resize=60%2C30 60w, https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/11/8.png?resize=150%2C75 150w, https://i1.wp.com/oracle-help.com/wp-content/uploads/2017/11/8.png?w=318 318w" sizes="(max-width: 526px) 100vw, 526px" data-recalc-dims="1" /></a></p> <p><strong>Applies to:</strong><br /> Oracle GoldenGate – Version: 11.1.1.1.0 and later [Release: 11.1.1 and later ]<br /> Information in this document applies to any platform.</p> <p><strong>Symptoms</strong><br /> Extract abends with below error:</p> <p>ERROR OGG-01028 Record position (SeqNo: 336, RBA: 1040, SCN: 0.40418944 (40418944)) is beyond end of recovery (SeqNo: 335, RBA: 9016952, SCN: 0.40255602 (40255602), Timestamp: 2011-06-21 10:57:03.000000).</p> <p><strong>Cause</strong><br /> The extract may have hit a bug which can occur while processing a 0-length record while the extract is enabled for Bounded Recovery.</p> <p>&nbsp;</p> <p><strong>SOLUTION:</strong></p> <p>There are two methods to fix it.</p> <p>1. Restart the extract ( most of the time restart fix the issue)<br /> 2. If a restart is not helping, then add the below parameter in extract and restart.</p> <p>As a workaround, please use the below extract parameter and start the extract which will turn off the Bounded recovery. When BR is off, the Extract will do a normal recovery, so it needs all the archive logs file starting from recovery checkpoint of the extract.</p> <p>BR BROFF</p> <p>The only time BR is used is upon restart of extract, and only if there were any long running transactions that were persisted. If all of the transactions in the workload are of short duration (less than the BR interval default of 4 hrs), then even upon restart, standard recovery is active instead of bounded recovery.</p> <p>And regarding transactions, we are only concerned with ones that modify data. There may, of course, be batch jobs which run and take a long time, so these could fall into the long duration category that&#8217;s mentioned above, but even in this case, as long as the redo logs/archive logs are available for standard recovery, the restart time should not be much longer with SR (standard recovery) than BR.</p> <p>Once the extract has passed by the problematic RBA, this parameter can be removed.The permanent fix is planned for OGG v11.2.1.</p> <p>The post <a rel="nofollow" href="http://oracle-help.com/goldengate/ogg-01028-partial-record-sequence-extract-abended/">OGG-01028 Partial Record At Sequence Extract Abended</a> appeared first on <a rel="nofollow" href="http://oracle-help.com">ORACLE-HELP</a>.</p> Anuradha Mudgal http://oracle-help.com/?p=2503 Sat Nov 25 2017 01:42:09 GMT-0500 (EST) Defgen Utility In Oracle Goldengate http://oracle-help.com/goldengate/defgen-utility-oracle-goldengate/ <p>Let&#8217;s have look at the Defgen Utility In Oracle Goldengate.  If the source and target table structures are different from source has then we need to use definition file in replicate file.</p> <p><a href="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/11/2-20.jpg"><img data-attachment-id="2501" data-permalink="http://oracle-help.com/goldengate/defgen-utility-oracle-goldengate/attachment/2-43/" data-orig-file="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/11/2-20.jpg?fit=294%2C171" data-orig-size="294,171" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="2" data-image-description="" data-medium-file="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/11/2-20.jpg?fit=294%2C171" data-large-file="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/11/2-20.jpg?fit=294%2C171" class="alignnone wp-image-2501" src="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/11/2-20.jpg?resize=643%2C375" alt="" srcset="https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/11/2-20.jpg?w=294 294w, https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/11/2-20.jpg?resize=60%2C35 60w, https://i0.wp.com/oracle-help.com/wp-content/uploads/2017/11/2-20.jpg?resize=150%2C87 150w" sizes="(max-width: 643px) 100vw, 643px" data-recalc-dims="1" /></a></p> <h4>Example:</h4> <p>Here we will generate definition file of a table DBACLASS.EMPLOYEE from the source database and use it in target db.</p> <p>&nbsp;</p> <p><strong>1. Create defgen parameter file</strong></p> <p>ggsci&gt;edit params defgen<br /> defsfile /u01/ggate/dirsql/dbaclass_def.sql<br /> userid ggatebss, password ggatebss#123<br /> TABLE DBACLASS.EMPLOYEE;</p> <p>This will create the parameter file in $GG_HOME/dirprm<br /> ls -ltr /u01/ggate/dirprm/defgen.prm</p> <p><strong>2. Now execute the param file( to generate the defgen file)</strong></p> <p><em>./defgen paramfile /u01/ggate/dirprm/defgen.prm</em></p> <p>./defgen paramfile /u01/ggate/dirprm/defgen.prm</p> <p>***********************************************************************<br /> Oracle GoldenGate Table Definition Generator for Oracle<br /> Version 11.2.1.0.3 14400833 OGGCORE_11.2.1.0.3_PLATFORMS_120823.1258<br /> Linux, x64, 64bit (optimized), Oracle 11g on Aug 23 2012 16:58:29</p> <p>Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.</p> <p>Starting at 2016-12-20 14:52:05<br /> ***********************************************************************</p> <p>Operating System Version:<br /> Linux<br /> Version #1 SMP Tue Sep 16 01:56:35 EDT 2014, Release 2.6.32-504.el6.x86_64<br /> Node: b23e2bay16<br /> Machine: x86_64<br /> soft limit hard limit<br /> Address Space Size: unlimited unlimited<br /> Heap Size: unlimited unlimited<br /> File Size: unlimited unlimited<br /> CPU Time: unlimited unlimited</p> <p>Process id: 29614</p> <p>***********************************************************************<br /> ** Running with the following parameters **<br /> ***********************************************************************<br /> defsfile /u01/ggate/dirsql//dbaclass_def.sql<br /> userid ggatebss, password ************<br /> TABLE DBACLASS.EMPLOYEE;<br /> Retrieving definition for DBACLASS.EMPLOYEE</p> <p>Definitions generated for 1 tables in /u01/ggate/dirsql/dbaclass_def.sql<br /> Now copy the file dbaclass_def.sql to the target server(where replicate is running.</p> <p><strong>4.  Stop the replication and Update the extract file with sourcedef parameter as below</strong></p> <p><em>SOURCEDEFS /ggatebss/app/ggate/product/11.2.1.0.3/ggate_1/myobjects3.sql</em></p> <p>REPLICAT BLTLR<br /> USERID ggatebss, PASSWORD ggatebss<br /> DBOPTIONS SUPPRESSTRIGGERS,DEFERREFCONST<br /> SOURCEDEFS /ggatebss/app/ggate/product/11.2.1.0.3/ggate_1/myobjects3.sql<br /> DISCARDFILE /ggatebss/install/datacapture_bsst/discardbltlr,append,megabytes 1000<br /> MAP DBACLASS.EMPLOYEE, TARGET DBACLASS.EMPLOYEE</p> <p>Now you can start your replicate.</p> <p>&nbsp;</p> <p>&nbsp;</p> <p><strong>NOTE</strong> – If your source and target database versions are different. i.e source db is of 12c and target db is of 11g, then use format command in the defgen file. i.e the file will look as below. <strong>format release &lt; target </strong>db<strong> release version&gt; </strong></p> <p>ggsci&gt;edit params defgen<br /> defsfile /u01/ggate/dirsql/dbaclass_def.sql ,format release 11.2<br /> userid ggatebss, password ggatebss#123<br /> TABLE DBACLASS.EMPLOYEE;</p> <p>&nbsp;</p> <p>The post <a rel="nofollow" href="http://oracle-help.com/goldengate/defgen-utility-oracle-goldengate/">Defgen Utility In Oracle Goldengate</a> appeared first on <a rel="nofollow" href="http://oracle-help.com">ORACLE-HELP</a>.</p> Anuradha Mudgal http://oracle-help.com/?p=2499 Fri Nov 24 2017 12:38:29 GMT-0500 (EST) ERROR: No Checkpoint Table Specified For ADD REPLICAT http://oracle-help.com/goldengate/error-no-checkpoint-table-specified-add-replicat/ <p>We are going to learn about the solution which is used solve error we use While adding the replicate, you may get the below error.</p> <p>GGSCI (sec75-2) 2&gt; add replicate LOYTSTR, exttrail /ggatebss/oradata/RBM12C/R4</p> <p>ERROR: No checkpoint table specified for ADD REPLICAT.</p> <h4>Solution:</h4> <p>&nbsp;</p> <p>Checkpoint table needs to be created on the replication side.</p> <p><strong>1. Login to ggsci with dblogin</strong></p> <p>GGSCI (sec75-2) 4&gt; dblogin USERID TEST_GGATE, PASSWORD TEST_GGATE</p> <p>Successfully logged into the database.</p> <p><strong>2. Add checkpoint table</strong></p> <p>GGSCI (sec75-2 as TEST_GGATE@TESTPROD1) 5&gt; add checkpointtable TEST_ggate.TESTcheckpoint</p> <p>Successfully created checkpoint table TEST_ggate.TESTcheckpoint.</p> <p><strong>3. Restart the manager</strong></p> <p>GGSCI (sec75-2 as TEST_GGATE@TESTPROD1) 9&gt; stop mgr</p> <p>Manager process is required by other GGS processes.</p> <p>Are you sure you want to stop it (y/n)?y</p> <p>Sending STOP request to MANAGER …</p> <p>Request processed.</p> <p>Manager stopped.</p> <p>GGSCI (sec75-2 as TEST_GGATE@TESTPROD1) 10&gt; start mgr</p> <p>Manager started.</p> <p><strong>4. Now add the replicate by login to ggsci</strong></p> <p>GGSCI (sec75-2) 4&gt; dblogin USERID TEST_GGATE, PASSWORD TEST_GGATE</p> <p>Successfully logged into the database.</p> <p>GGSCI (sec75-2 as TEST_GGATE@TESTPROD</p> <p>The post <a rel="nofollow" href="http://oracle-help.com/goldengate/error-no-checkpoint-table-specified-add-replicat/">ERROR: No Checkpoint Table Specified For ADD REPLICAT</a> appeared first on <a rel="nofollow" href="http://oracle-help.com">ORACLE-HELP</a>.</p> Anuradha Mudgal http://oracle-help.com/?p=2496 Fri Nov 24 2017 11:10:43 GMT-0500 (EST) OGG-00665 OCI Error Describe For Query http://oracle-help.com/oracle-12c/ogg-00665-oci-error-describe-query/ <h4>In this post, we are going to have look at OGG-00665 OCI Error Describe For Query. Following steps mention about the steps which we use to solve OGG-00665.</h4> <p><a href="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/11/4.png"><img data-attachment-id="2494" data-permalink="http://oracle-help.com/oracle-12c/ogg-00665-oci-error-describe-query/attachment/4-28/" data-orig-file="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/11/4.png?fit=300%2C168" data-orig-size="300,168" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="4" data-image-description="" data-medium-file="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/11/4.png?fit=300%2C168" data-large-file="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/11/4.png?fit=300%2C168" class="alignnone wp-image-2494" src="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/11/4.png?resize=445%2C249" alt="" srcset="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/11/4.png?w=300 300w, https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/11/4.png?resize=60%2C34 60w, https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/11/4.png?resize=150%2C84 150w" sizes="(max-width: 445px) 100vw, 445px" data-recalc-dims="1" /></a></p> <h4><strong>Problem:   </strong></h4> <p>In goldengate version 12, while starting the extract,it may abend with below error.</p> <p><strong>2016-04-11 12:31:10  ERROR   OGG-00665  OCI Error describe for query (status = 942-ORA-00942: table or view does not exist), S</strong>QL&lt;SELECT MOD(t.property, POWER(2, 64)) as property,   opq.flags   FROM</p> <p>sys.tab$ t, sys.opqtype$ opq   WHERE t.obj# = 4214597 and t.obj#=opq.obj# (+) &gt;.</p> <p>&nbsp;</p> <p>It clearly indicated that ggate user is unable to read the dictionary tables.</p> <h4><strong>Solution:</strong></h4> <p><strong>Grant select on dictionary table to the ggate user in the source database.</strong></p> <p>SQL&gt; grant select any dictionary to ggate;</p> <p>grant succeeded.</p> <p>&nbsp;</p> <p><strong>Now start the extract.</strong></p> <p>ggsci&gt; start extract EXT1</p> <p>&nbsp;</p> <p>The post <a rel="nofollow" href="http://oracle-help.com/oracle-12c/ogg-00665-oci-error-describe-query/">OGG-00665 OCI Error Describe For Query</a> appeared first on <a rel="nofollow" href="http://oracle-help.com">ORACLE-HELP</a>.</p> Anuradha Mudgal http://oracle-help.com/?p=2492 Fri Nov 24 2017 11:03:06 GMT-0500 (EST) OGG-01031 There Is A Problem In Network Communication http://oracle-help.com/articles/ogg-01031-problem-network-communication/ <p>While starting the data pump in golden gate version 12.2.0, you may get an error. We are going to learn the steps which are used to solve this issue.</p> <p><a href="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/11/oracle-logo.gif"><img data-attachment-id="2490" data-permalink="http://oracle-help.com/articles/ogg-01031-problem-network-communication/attachment/oracle-logo-2/" data-orig-file="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/11/oracle-logo.gif?fit=150%2C150" data-orig-size="150,150" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="oracle-logo" data-image-description="" data-medium-file="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/11/oracle-logo.gif?fit=150%2C150" data-large-file="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/11/oracle-logo.gif?fit=150%2C150" class="alignnone wp-image-2490" src="https://i2.wp.com/oracle-help.com/wp-content/uploads/2017/11/oracle-logo.gif?resize=445%2C451" alt="" data-recalc-dims="1" /></a></p> <p>&nbsp;</p> <p>2016-04-14 15:14:39  <strong>ERROR   OGG-01031  There is a problem in network communication, a remote file problem</strong>, encryption keys for target and source do not match (if using ENCRYPT) or an unknown error</p> <p>. (Reply received is Output file /ggatebss/oradata/remotedata_ULA/T1000000 is not in any allowed output directories.).</p> <p>&nbsp;</p> <p>2016-04-14 15:14:39  ERROR   OGG-01668  PROCESS ABENDING.</p> <p>&nbsp;</p> <h5>Solution:</h5> <p>&nbsp;</p> <p>This error will come in goldengate version 12.2, as new parameter <strong>ALLOWOUTPUTDIR  </strong>has been introduced, which need to be added in ./GLOBALS file on target.</p> <p>&nbsp;</p> <p>syntax – ALLOWOUTPUTDIR   [ path of the remote trail location]</p> <p><strong>1. stop the manager and the replicates</strong></p> <p>ggsci&gt; stop mgr</p> <p>ggsci&gt; stop *</p> <p>&nbsp;</p> <p><strong>2.  edit the ./GLOBAL</strong></p> <p>ALLOWOUTPUTDIR /ggatebss/oradata/</p> <p>&nbsp;</p> <p><strong>3. stat mgr and replicates</strong></p> <p>ggsci&gt; start mgr</p> <p>ggsci&gt; start *</p> <p>&nbsp;</p> <p>&nbsp;</p> <p>The post <a rel="nofollow" href="http://oracle-help.com/articles/ogg-01031-problem-network-communication/">OGG-01031 There Is A Problem In Network Communication</a> appeared first on <a rel="nofollow" href="http://oracle-help.com">ORACLE-HELP</a>.</p> Anuradha Mudgal http://oracle-help.com/?p=2488 Fri Nov 24 2017 10:54:13 GMT-0500 (EST) When to use Amazon Athena https://blog.pythian.com/use-amazon-athena/ <div class="l-submain"><div class="l-submain-h g-html i-cf"><p>Amazon Athena enables you to access data present in flat files stored in S3 (Simple Storage Service) as if it were in a table in the database. And you don&#8217;t have to set up a server or any other software to accomplish this.</p> <p>Another glowing example of being &#8216;<a href="https://en.wikipedia.org/wiki/Serverless_computing">Serverless</a>.&#8217;</p> <p><span id="more-102845"></span></p> <p>So if a telecommunication has hundreds of thousands or more call detail record files in CSV or Apache Parquet or any other supported format, it can just be uploaded to S3 bucket, and then by using <a href="https://aws.amazon.com/athena/">AWS Athena</a>, that CDR data can be queried using well known ANSI SQL.</p> <p>Ease of use, performance, and cost savings are a few of the benefits of AWS Athena service. True to the Cloud promise, with Athena you are charged for what you actually do; i.e. you are only charged for the queries. You are charged $5 per terabyte scanned by your queries. Beyond S3 there are no additional storage costs.</p> <p>So if you have huge amount of formatted data in files and all you want to do is to query that data using familiar ANSI SQL then AWS Athena is the way to go. Beware that Athena is not for enterprise reporting and business intelligence. For that purpose we have AWS Redshift. Athena is also not for running highly distributed processing frameworks such as Hadoop. For that purpose we have AWS EMR. Athena is more suitable for running interactive queries on your supported formatted data in S3.</p> <p>Remember to keep reading the AWS Athena documentation as it will keep improving, lifting limitations, and changing like everything else in the cloud.</p> </div></div> Fahd Mirza https://blog.pythian.com/?p=102845 Thu Nov 23 2017 16:03:05 GMT-0500 (EST) Taking Pivotal Cloud Foundry Small Footprint for a test drive http://feedproxy.google.com/~r/blogspot/PEqWE/~3/Z-4YxTRrynE/taking-pivotal-cloud-foundry-small.html Pivotal Cloud Foundry (PCF) now has a small footprint edition. It features a deployment configuration with as few as 6 VMs. Review the documentation for download and installation instructions as follows<br /><br /><!--?xml version="1.0" encoding="UTF-8" standalone="no"?--> <a href="http://docs.pivotal.io/pivotalcf/1-12/customizing/small-footprint.html">http://docs.pivotal.io/pivotalcf/1-12/customizing/small-footprint.html</a><br /><br />There was also a Pivotal blog post on this as follows:<br /><br /><a href="https://content.pivotal.io/blog/big-things-come-in-small-packages-getting-started-with-pivotal-cloud-foundry-small-footprint">https://content.pivotal.io/blog/big-things-come-in-small-packages-getting-started-with-pivotal-cloud-foundry-small-footprint</a><br /><br />As you can see from this image it's considerably smaller control plane that's obvious.<br /><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-ZYhyPrhJ0cw/WhZA1LZPoHI/AAAAAAAAA_8/MzK7y6eqN5A92ir-xKecUkKg5qjDMrJPwCLcBGAs/s1600/Screen%2BShot%2B2017-11-23%2Bat%2B2.27.00%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1424" data-original-width="1226" height="320" src="https://2.bp.blogspot.com/-ZYhyPrhJ0cw/WhZA1LZPoHI/AAAAAAAAA_8/MzK7y6eqN5A92ir-xKecUkKg5qjDMrJPwCLcBGAs/s320/Screen%2BShot%2B2017-11-23%2Bat%2B2.27.00%2BPM.png" width="275" /></a></div><br /><br />It is important to understand what the limitations of such an install are as per the docs link below.<br /><br /><!--?xml version="1.0" encoding="UTF-8" standalone="no"?--> <a href="http://docs.pivotal.io/pivotalcf/1-12/customizing/small-footprint.html#limits">http://docs.pivotal.io/pivotalcf/1-12/customizing/small-footprint.html#limits</a><br /><br />Installing the small footprint looks identical from the Operations Manager UI in fact it's still labelled ERT and from the home page of Operations Manager UI your wouldn't even know you had the small footprint<br /><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://4.bp.blogspot.com/-JY8rRvjPQXw/WhZBqufNNDI/AAAAAAAABAE/hEWIXPFKusAV--kKXBykF2PKd3uRtm5GgCLcBGAs/s1600/Screen%2BShot%2B2017-11-23%2Bat%2B1.40.44%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="426" data-original-width="1600" height="85" src="https://4.bp.blogspot.com/-JY8rRvjPQXw/WhZBqufNNDI/AAAAAAAABAE/hEWIXPFKusAV--kKXBykF2PKd3uRtm5GgCLcBGAs/s320/Screen%2BShot%2B2017-11-23%2Bat%2B1.40.44%2BPM.png" width="320" /></a></div><br /><br />If you dig a bit further and click on the "ERT tile" and then select "Resource Config" left hand link you will then clearly know it's the Small Footprint PCF install.<br /><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://4.bp.blogspot.com/-eBXT42Hl3ac/WhZCT6rDQTI/AAAAAAAABAM/ZmpE-IBqkiIoSMxaei9LkeUxwZFTXXvKwCLcBGAs/s1600/Screen%2BShot%2B2017-11-23%2Bat%2B2.35.27%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="556" data-original-width="1600" height="111" src="https://4.bp.blogspot.com/-eBXT42Hl3ac/WhZCT6rDQTI/AAAAAAAABAM/ZmpE-IBqkiIoSMxaei9LkeUxwZFTXXvKwCLcBGAs/s320/Screen%2BShot%2B2017-11-23%2Bat%2B2.35.27%2BPM.png" width="320" /></a></div><br />I choose to use internal MySQL database and if I didn't then it could be scaled back even more then the default 7 VM's I ended up with.<br /><br />Lastly I was very curious to find out what jobs are placed on which service VM's. Here is what it looked like for me when I logged into bosh director and run some bosh CLI commands<br /><pre class="brush: xml"> <br />ubuntu@ip-10-0-0-241:~$ bosh2 -e aws vms --column=Instance --column="Process State" --column=AZ --column="VM Type"<br />Using environment '10.0.16.5' as user 'director' (bosh.*.read, openid, bosh.*.admin, bosh.read, bosh.admin)<br /><br />Task 73. Done<br /><br />Deployment 'cf-a96683b17697c86b8c90'<br /><br />Instance Process State AZ VM Type<br />backup-prepare/16356c40-1f20-42f0-8f2e-de45549be797 running ap-southeast-2a t2.micro<br />blobstore/b6e22107-018b-425d-8fe4-ab47eeaf2c75 running ap-southeast-2a m4.large<br />compute/5439f18f-c842-40a2-b6f3-faf6b6848716 running ap-southeast-2a r4.xlarge<br />control/68979d93-d12b-4d87-b110-d3d41a48b261 running ap-southeast-2a r4.xlarge<br />database/a3efedaa-4df6-48f5-9f20-61cf3d9f3c1b running ap-southeast-2a r4.large<br />mysql_monitor/d40ef638-d2d0-488e-b937-99a7f5b5b334 running ap-southeast-2a t2.micro<br />router/f9573547-c5a1-43d4-be02-38a1d9e9c73e running ap-southeast-2a t2.micro<br /><br />7 vms<br /><br />Succeeded<br /></pre><pre class="brush: xml"> <br />ubuntu@ip-10-0-0-241:~$ bosh2 -e aws instances --ps --column=Instance --column=Process<br />Using environment '10.0.16.5' as user 'director' (bosh.*.read, openid, bosh.*.admin, bosh.read, bosh.admin)<br /><br />Task 68. Done<br /><br />Deployment 'cf-a96683b17697c86b8c90'<br /><br />Instance Process<br />autoscaling-register-broker/9feaef45-994e-472c-8ca3-f0c39467dd6b -<br />autoscaling/184df31d-a64c-49e0-8b6b-27eafdb31ca0 -<br />backup-prepare/16356c40-1f20-42f0-8f2e-de45549be797 -<br />~ service-backup<br />blobstore/b6e22107-018b-425d-8fe4-ab47eeaf2c75 -<br />~ blobstore_nginx<br />~ blobstore_url_signer<br />~ consul_agent<br />~ metron_agent<br />~ route_registrar<br />bootstrap/0dc22a1f-a1ee-4a03-85c6-fed08f37c44a -<br />compute/5439f18f-c842-40a2-b6f3-faf6b6848716 -<br />~ consul_agent<br />~ garden<br />~ iptables-logger<br />~ metron_agent<br />~ netmon<br />~ nfsv3driver<br />~ rep<br />~ route_emitter<br />~ silk-daemon<br />~ vxlan-policy-agent<br />control/68979d93-d12b-4d87-b110-d3d41a48b261 -<br />~ adapter<br />~ auctioneer<br />~ bbs<br />~ cc_uploader<br />~ cloud_controller_clock<br />~ cloud_controller_ng<br />~ cloud_controller_worker_1<br />~ cloud_controller_worker_local_1<br />~ cloud_controller_worker_local_2<br />~ consul_agent<br />~ doppler<br />~ file_server<br />~ locket<br />~ loggregator_trafficcontroller<br />~ metron_agent<br />~ nginx_cc<br />~ policy-server<br />~ reverse_log_proxy<br />~ route_registrar<br />~ routing-api<br />~ scheduler<br />~ silk-controller<br />~ ssh_proxy<br />~ statsd_injector<br />~ syslog_drain_binder<br />~ tps_watcher<br />~ uaa<br />database/a3efedaa-4df6-48f5-9f20-61cf3d9f3c1b -<br />~ cluster_health_logger<br />~ consul_agent<br />~ galera-healthcheck<br />~ gra-log-purger-executable<br />~ mariadb_ctrl<br />~ metron_agent<br />~ mysql-diag-agent<br />~ mysql-metrics<br />~ nats<br />~ route_registrar<br />~ streaming-mysql-backup-tool<br />~ switchboard<br />mysql-rejoin-unsafe/01a0aec3-b103-4c09-bc69-cabc61c513cc -<br />mysql_monitor/d40ef638-d2d0-488e-b937-99a7f5b5b334 -<br />~ replication-canary<br />nfsbrokerpush/829f0292-59ab-4824-8b0b-c4af4bddbce0 -<br />notifications-ui/50972440-36cd-499d-ad7c-eef4df7e604b -<br />notifications/968d625e-af63-4e2f-a59c-f6b789ef1cff -<br />push-apps-manager/3d9760d7-6f09-453c-a052-32604b6a3235 -<br />push-pivotal-account/5a8782ad-82eb-4469-8242-f0873bc4a587 -<br />push-usage-service/9b781db1-171b-4abe-92f4-7445fd3d487f -<br />router/f9573547-c5a1-43d4-be02-38a1d9e9c73e -<br />~ consul_agent<br />~ gorouter<br />~ metron_agent<br />smoke-tests/a8e2ff97-bae1-4594-90fc-ec8c430fd620 -<br /><br />77 instances<br /><br />Succeeded<br /></pre><br />Now, with Small Footprint, you have yet another way to bring PCF to your organization!<div class="blogger-post-footer">http://feeds.feedburner.com/TheBlasFromPas</div><img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/Z-4YxTRrynE" height="1" width="1" alt=""/> Pas Apicella tag:blogger.com,1999:blog-6527688743456205256.post-8912615117715977206 Wed Nov 22 2017 22:55:00 GMT-0500 (EST) How Not to Make WIT Result in WTH http://dbakevlar.com/2017/11/not-make-wit-result-wth/ <div class="pf-content"><p><span style="font-size: 12pt;">The support of Women in Technology at Oracle is a fine line and a careful argument. I receive between 20-30 communications in any week on the topic and I think the challenge as I speak to people is the importance of education over persecution. I’m at DOAG, (Deutschland Oracle User Group) conference this week and it’s common for someone to ask to speak to me on the topic of WIT. These valuable conversations have lead to deep reflection of what it means to offer support and how we can improve diversity in the Oracle community….then again, it may just be the jet lag talking… <img src="https://s.w.org/images/core/emoji/2.3/72x72/1f60a.png" alt="😊" class="wp-smiley" style="height: 1em; max-height: 1em;" /></span></p> <p><a href="http://dbakevlar.com/2017/11/not-make-wit-result-wth/img_0477/" rel="attachment wp-att-7427"><img class="alignnone size-full wp-image-7427" src="https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/11IMG_0477.jpg?resize=316%2C159" alt="" srcset="https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/11/IMG_0477.jpg?w=316 316w, https://i0.wp.com/dbakevlar.com/wp-content/uploads/2017/11/IMG_0477.jpg?resize=300%2C151 300w" sizes="(max-width: 316px) 100vw, 316px" data-recalc-dims="1" /></a></p> <p><span style="font-size: 12pt;">Moving the needle forward in educating people on the small details that create the “death by a thousand pin pricks” that consistently cost us women in technology and impact women’s contributions to the community/industry often consists of very different answers than one would expect. I think its easy to look for a silver bullet. One of those bullets is the WIT luncheon and the idea that you will solve the real problems by just serving some food. The truth is, these events should simply be a celebration of women in tech, not thought of as a resolution for cultural bias that continues to haunt us.</span></p> <h4><span style="font-size: 12pt;">100% Contribution</span></h4> <p><span style="font-size: 12pt;">When any community doesn’t receive the full productivity of 50% or more of it’s contributors, there is going to be a cost and the technical industry feels this pain regularly. The only way to resolve it is to find solutions that require the full technical contribution of everyone involved.</span><br /> <span style="font-size: 12pt;"> To demonstrate how assumptions/perceptions can lead us down a rabbit hole, I’m going to focus on two scenarios that I believe are excellent examples from the Oracle community on how two situations can appear to be similar and are actually very different:</span><br /> <span style="font-size: 12pt;"> <strong>Scenario One</strong> has a conference with a group of women who are hired to escort and ensure the attendees are entertained at the event. The event location has a culture where women aren’t often technical and being a highly patriarchal society, the women spend significant time dancing late into the night, with none of these women onsite to attend technical sessions or to present. There are consistent whispered conversations about the inappropriateness of the women at the event, along with some public jokes that highlight how inappropriate the women are at a professional event, but also serve to alienate those offended by this cultural dinosaur further.</span><br /> <span style="font-size: 12pt;"> <strong>Scenario Two</strong> has a conference, contains a number of women speakers and all of the speakers are escorted to and from the stage by two women who are representing the essence of Oracle- the Greek representation- Oracle is female, her job is to facilitate knowledge. There are some attendees who are only viewing these women as escorts to the speakers and questioned why was this a viable in the modern age of technical conferences. Is this not a cultural dinosaur like <strong>Scenario One</strong>?</span><br /> <span style="font-size: 12pt;"> What is the difference between these two events?</span></p> <blockquote><p><span style="font-size: 12pt;">Respect.</span></p></blockquote> <p><span style="font-size: 12pt;">Its essential that before we react, we discuss and understand each perspective and what is experienced by those organizing as well as attending. There is an importance on accepting cultural differences, but also know that those who step out of the crowd to initiate change have a hope for a better future.  We often accept culture and may still understand the demands that are on the organizers to have a successful event, but know they’ve made concessions to the majority.</span><br /> <span style="font-size: 12pt;"> The most important part of the conversation is the discussion. Learning from everyone involved and to continue to have a goal of education over persecution should be the highest priority for everyone.</span></p> <h4><span style="font-size: 12pt;">The Difference</span></h4> <p><span style="font-size: 12pt;">In <strong>Scenario One</strong>, the women aren’t there contributing to the technical aspect of the event. They are only there based on their physical appearance and there is an expectation of little contribution outside of this where the women are concerned. I’ve presented at this event and it was an overall cultural scenario. I was uncomfortable when I walked around the venue and it was the same experience no matter if I was in the presence of attendees or guests of the venue outside of the event. This also  lets one know that it’s overall culture and not isolated to the event.</span><br /> <span style="font-size: 12pt;"> In <strong>Scenario Two</strong>, the speakers were escorted to the podium by two women, but there is an important and unknown reason behind why women were the ones escorting all the speakers.  It wasn&#8217;t that there weren&#8217;t women speakers or attendees, but historical relevance. Only women were recognized as true  “Oracles” and it was a sign of respect back to the origins of the “Oracle” mythology.</span></p> <h4><span style="font-size: 12pt;">Beginning of the Fix</span></h4> <p><span style="font-size: 12pt;">What can be done to initiate change for the future?</span><br /> <span style="font-size: 12pt;"> 1. Create a Code of Conduct. An event should adopt and expectation of how those representing the event and in attendance are to conduct themselves. If you want to grow and be part of the larger world, then the event has to grow beyond the local culture. The code of conduct should be present on the back of badges, the registration and event site. Setting an expectation of the level of respect to all involved at the event serves both those that are subject to less respect and helps those that might violate this to grow.</span><br /> <span style="font-size: 12pt;"> 2. Invite women to submit abstracts and to attend. Men and women are raised differently and due to this, women often underestimate their value to an event, both in contributions and attendance. Let them know that they are wanted at the event. It doesn’t mean having a quota, but do have a goal of a certain percentage of women speakers with a goal to increase that yearly. You will find the more women that speak, are interviewed and are SEEN, the more women that will attend. Offer mentorship to new speakers, get more women involved and find women who can lead mentoring efforts going forward. If we can’t see it, we can’t be it.</span><br /> <span style="font-size: 12pt;"> 3. Educate- If you have a situation that can be misunderstood and isn’t a cultural or bias limitation, publish it to the event site. Market why you do what you do so others can champion your cause. If you are a white dude and want to say there isn’t anything wrong with having “eye candy” at an event, sorry, but you <strong>are</strong> part of the problem. If you’re a woman saying that its alright when someone says its not a problem to have women contributing to a technical conference with their physical appearance and not their technical contributions, you’re also part of the problem. We should all be part of the solution and that doesn’t mean persecution, but realize, if you limit how women contribute at an event, enlightened folks will contribute their time elsewhere and the event will suffer in the end.</span></p> </div><br><br><img src="https://i2.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/ico-tag.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"> Tags:&nbsp;&nbsp;<a href="http://dbakevlar.com/tag/wit/" rel="tag">WIT</a>, <a href="http://dbakevlar.com/tag/women-in-tech/" rel="tag">Women in Tech</a><br><br><div style="width:100%"><table align="left" width="100%" cellspacing="0" cellpadding="0" bgcolor="#f1f1f1" border="0px;"> <tbody> <tr bgcolor="#ffffff"><td align="center" width="17%" valign="top"> <span class="sb_title">Del.icio.us</span><br> <a href="http://del.icio.us/post?url=http://dbakevlar.com/2017/11/not-make-wit-result-wth/&title=How Not to Make WIT Result in WTH"> <img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/delicious.gif?w=840" border="0" align="absmiddle" data-recalc-dims="1"> </a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">Facebook</span><br> <a href="http://www.facebook.com/share.php?u=http://dbakevlar.com/2017/11/not-make-wit-result-wth/"><img src="https://i0.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/facebook_icon.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"></a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">TweetThis</span><br> <a href="http://twitthis.com/twit?url=http://dbakevlar.com/2017/11/not-make-wit-result-wth/&title=How Not to Make WIT Result in WTH"><img src="https://i2.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tweet.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"></a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">Digg</span><br> <a href="http://digg.com/submit?phase=2&url=http://dbakevlar.com/2017/11/not-make-wit-result-wth/&title=How Not to Make WIT Result in WTH"><img src="https://i0.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/digg.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"></a> </td><td align="center" width="17%" valign="top"> <span class="sb_title">StumbleUpon</span><br> <a href="http://www.stumbleupon.com/submit?url=http://dbakevlar.com/2017/11/not-make-wit-result-wth/&title=How Not to Make WIT Result in WTH"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/stumble.gif?w=840" border="0" align="absmiddle" data-recalc-dims="1"></a> </td></tr> </tbody></table></div><br><div style="clear:both"></div><div style="background:#EEEEEE; padding:0px 0px 0px 15px; margin:10px 0px 0px 0px;"><div style="padding:5px 0px 5px 0px;"><b>Comments:</b>&nbsp;&nbsp;<a href="http://dbakevlar.com/2017/11/not-make-wit-result-wth/#respond">0 (Zero), Be the first to leave a reply!</a></div><br><div style="clear:both"></div><div style="padding:13px 0px 5px 0px;"><span style="border-bottom:1px dashed #003399;padding-bottom:4px;"><strong>You might be interested in this:</strong></span>&nbsp;&nbsp;<br><ul style="margin:0; padding:0; padding-top:10px; padding-bottom:5px;"><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2014/06/awr-warehouse-in-em12c-rel-4/" >AWR Warehouse in EM12c Rel. 4</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2017/10/driving-for-change-women-in-oracle-technology/" >Driving for Change- Women of Oracle</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2017/08/archaic-data-transfer-dba-rant/" >Archaic Data Transfer- A DBA Rant</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2015/10/it-analytics-global-database-performance/" >IT Analytics- Global Database Performance</a></li><li style="list-style-type: none;"><img src="https://i1.wp.com/dbakevlar.com/wp-content/plugins/readers-from-rss-2-blog/wpsmartapps-lic/images/tick.png?w=840" border="0" align="absmiddle" data-recalc-dims="1"> &nbsp;<a href="http://dbakevlar.com/2016/02/importance-of-network-to-the-cloud/" >Importance of Network to the Cloud</a></li></ul></div></div><hr style="color:#EBEBEB" /><small>Copyright © <a href="http://dbakevlar.com">DBA Kevlar</a> [<a href="http://dbakevlar.com/2017/11/not-make-wit-result-wth/">How Not to Make WIT Result in WTH</a>], All Right Reserved. 2017.</small><br><p>The post <a rel="nofollow" href="http://dbakevlar.com/2017/11/not-make-wit-result-wth/">How Not to Make WIT Result in WTH</a> appeared first on <a rel="nofollow" href="http://dbakevlar.com">DBA Kevlar</a>.</p> dbakevlar http://dbakevlar.com/?p=7422 Wed Nov 22 2017 10:50:53 GMT-0500 (EST) Cosmos DB Geo-replication – SQL On The Edge Episode 14 https://blog.pythian.com/cosmos-db-geo-replication-sql-edge-episode-14/ <div class="l-submain"><div class="l-submain-h g-html i-cf"><p>As Microsoft Azure&#8217;s NoSQL service offering, Cosmos DB has received a lot of investment and development effort. Microsoft considers Cosmos as a &#8220;ring zero&#8221; service, which means that it is available by default from all regions as soon as they open for public usage. Considering its global availability, it only makes sense that the Cosmos team considered geo-replication capabilities from the very beginning and it wasn&#8217;t just something added on to the service after the fact.</p> <p><strong>What is geo-replication?</strong><br /> Geo-replication is the process of keeping multiple copies of a database synchronized over large geographical distances. This is not high availability where we usually have copies of the database in the same data center or independent data centers that are close to each other. With geo-replication, we can have one copy of the database in the East coast of the USA replicating another copy in the West coast across the entire country. We can even replicate from the East coast of the USA all the way to the Tokyo Azure region if we want!</p> <p>Geo-replication therefore can be thought of as mainly a disaster recovery feature but it also opens up other interesting scenarios:</p> <ul> <li>Reducing read latency: you can place read copies of the database close to users locations.</li> <li>Graceful DR Degradation: if you have multiple geo-replicated regions you can set priorities to failover first to a region close to your main user base, then another a bit further and so on.</li> <li>Data Sovereignty: Cosmos DB offers geo-fencing by allowing the user to specify the failover regions. For example, if your data is not allowed to leave Canada, then you can setup your database to only permit failover between Canada Central and Canada East. This way, even in the event of a disaster, you know that you are compliant with your regulatory requirements.</li> </ul> <p><strong>Cosmos DB Implementation</strong><br /> On Cosmos DB, geo-replication has been designed in a way that makes it trivial to activate and start using. You can go through the Azure Portal or through the Azure PowerShell, pick any region around the world where Cosmos DB is running and start the geo-replication process. On the portal you can also select the order of preference for failover and do a manual failover if you want to run a test.</p> <p><strong>Application Configuration</strong><br /> To implement the read-only queries capability in your application, Microsoft has added support for this feature in all the Cosmos SDK libraries. The only thing that is necessary, is providing the global endpoint for your database (which you can get from the portal) and then the regions where you want to read the data from in order of preference.</p> <p>Note that this setting is not the same as failover. If your database does a failover (manual or automatic) but you don&#8217;t specify the read preferences, your application will still connect to your failover region to continue doing read-write operations.</p> <p>Here&#8217;s an example of setting the read region preferences in C#:</p> <pre lang="csharp">// create a connection policy object ConnectionPolicy connectionPolicy = new ConnectionPolicy(); //set the proper regions connectionPolicy.PreferredLocations.Add(LocationNames.CanadaCentral); // first preference connectionPolicy.PreferredLocations.Add(LocationNames.CanadaEast); // second preference // initialize connection with your endpoint, your access key and the policy object we just created DocumentClient docClient = new DocumentClient( https://mycosmosdb.documents.azure.com:443/, "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", connectionPolicy); // test the connection await docClient.OpenAsync(); </pre> <p><strong>Demo</strong><br /> Now that we have a good understanding of Cosmos DB&#8217;s geo-replication, let&#8217;s check out a demo of setting up the geo-replication on the Azure Portal and test the impact of using a closer read-only copy of the database for lower latency queries. Let&#8217;s check it out!</p> <p><iframe src="https://www.youtube.com/embed/iEok-q7KeHU" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p> </div></div> Warner Chaves https://blog.pythian.com/?p=102794 Wed Nov 22 2017 09:19:11 GMT-0500 (EST) OT: Reading List https://www.thatjeffsmith.com/archive/2017/11/ot-reading-list/ <p>I needed to publish a blog post this week, but instead of writing new content, I thought I&#8217;d share with you things I&#8217;ve written in other places.</p> <p>In no particular order:</p> <ul> <li><a href="https://medium.com/oracledevs/i-installed-oracle-sql-developer-now-what-71230b9c9303" rel="noopener" target="_blank">I Installed SQL Developer, Now What?</a> &#8211; Medium</li> <li><a href="http://viewer.zmags.com/publication/65666be2#/65666be2/10" rel="noopener" target="_blank">REST for the DB Professional &#8211; What&#8217;s in it for you?</a> &#8211; UKOUG Scene</li> <li><a href="http://www.oracle.com/technetwork/issue-archive/2017/17-mar/o27sqldev-3616183.html">Automatic REST</a> &#8211; Oracle Magazine</li> <li><a href="https://www.quora.com/Are-Oracles-database-tools-as-good-as-Toad/answer/Jeff-Smith-4" rel="noopener" target="_blank">Are Oracle&#8217;s Database Tools as good as Toad?</a> &#8211; Quora</li> <li><a href="https://www.linkedin.com/pulse/online-advocacy-making-me-grouch-jeff-smith/" rel="noopener" target="_blank">Is Online Advocacy Making me a Grouch?</a> &#8211; LinkedIn</li> </ul> <p>We&#8217;re on a short week here in the US, so I&#8217;ll be mostly missing from the InnerWebs until next week. </p> <p>I hope it goes without saying, but I am truly thankful for all you folks and your support.</p> <p>Cheers!</p> <!-- Easy AdSense Unfiltered [count: 3 is not less than 3] --> thatjeffsmith https://www.thatjeffsmith.com/?p=6410 Wed Nov 22 2017 09:03:15 GMT-0500 (EST) Query Flat Files in S3 with Amazon Athena http://www.fahdmirza.com/2017/11/query-flat-files-in-s3-with-amazon.html <div dir="ltr" style="text-align: left;" trbidi="on">Amazon Athena enables you to access data present in flat files stored in S3 (Simple Storage Service) as if it were in a table in the database. That and you don't have to set up any server or any other software to accomplish that.<br /><br />That's another glowing example of being '<a href="https://en.wikipedia.org/wiki/Serverless_computing">Serverless</a>.'<br /><br /><a name='more'></a><br />So if a telecommunication has hundreds of thousands or more call detail record file in CSV or Apache Parquet or any other supported format, it can just be uploaded to S3 bucket, and then by using <a href="https://aws.amazon.com/athena/">AWS Athena</a>, that CDR data can be queried using well known ANSI SQL.<br /><br />Ease of use, performance, and cost savings are few of the benefits of AWS Athena service. True to the Cloud promise, with Athena you are charged for what you actually do; i.e. you are only charged for the queries. You are charged $5 per terabyte scanned by your queries. Beyond S3 there are no additional storage costs.<br /><br />So if you have huge amount of formatted data in files and all you want to do is to query that data using familiar ANSI SQL then AWS Athena is the way to go. Beware that Athena is not for enterprise reporting and business intelligence. For that purpose we have AWS Redshift. Athena is also not for running highly distributed processing frameworks such as Hadoop. For that purpose we have AWS EMR. Athena is more suitable for running interactive queries on your supported formatted data in S3.<br /><br />Remember to keep reading the AWS Athena documentation as it will keep improving, lifting limitations, and changing like everything else in the cloud.</div> Fahd Mirza tag:blogger.com,1999:blog-3496259157130184660.post-4262960143577808287 Tue Nov 21 2017 22:01:00 GMT-0500 (EST) A Test of Common Sense https://oracle-base.com/blog/2017/11/21/a-test-of-common-sense/ <p>Imagine you are a couple of window cleaners and you are presented with a glass fronted building like this.</p> <p><img class="alignnone wp-image-7727" src="https://oracle-base.com/blog/wp-content/uploads/2017/11/window-cleaning.png" alt="" width="462" height="305" /></p> <p>The two doors are electric and will automatically open if anyone, including yourself, approaches them from the inside or outside. Whilst answering the question below, keep in mind this is lunch time, which happens to be the busiest time of the day for people entering and leaving this building.</p> <p>Which of the following approaches would you choose? (pick only one)</p> <ol> <li>Lock one of the doors. Clean the glass above the locked door. When the water has stopped flooding down unlock the door. Lock the second door. Clean the glass above the locked door. When the water has stopped flooding down unlock the door.</li> <li>Lock both doors. Clean all the glass. When the water has stopped flooding down unlock both doors.</li> <li>Come back another time when there aren&#8217;t hordes of people trying to get through the doors, and clean the glass using the method outlined in (1), or maybe even (2).</li> <li>Leave both doors unlocked. Clean the glass above both doors so water is flooding down both of them at the same time. Since you are each standing in front of the doors, they keep opening and some of the water runs into the building.</li> </ol> <p>I think you can guess which one I witnessed today. I truly worry for the future of the human race!</p> <p>Cheers</p> <p>Tim&#8230;</p> <hr style="border-top:black solid 1px" /><a href="https://oracle-base.com/blog/2017/11/21/a-test-of-common-sense/">A Test of Common Sense</a> was first posted on November 21, 2017 at 10:55 pm.<br />©2012 "<a href="http://www.oracle-base.com/blog">The ORACLE-BASE Blog</a>". Use of this feed is for personal non-commercial use only. If you are not reading this article in your feed reader, then the site is guilty of copyright infringement.<br /> Tim... https://oracle-base.com/blog/?p=7726 Tue Nov 21 2017 16:55:15 GMT-0500 (EST) ASM – (ACFS commands for multiple environments) http://oracle-help.com/oracle-12c/asm-acfs-commands-multiple-environments/ <p><strong>Overview of ACFS:- </strong>Oracle ACFS is designed as a general-purpose, single-node and cluster-wide file system that delivers support for customer file system application data maintained outside of Oracle Database. Users and applications can access and manage Oracle ACFS using native operating system file system application programming interfaces (APIs) and command-line interface (CLI) tools. Users can also manage Oracle ACFS with Oracle Enterprise Manager. Oracle ACFS is designed as a multi-node, shared file system model that delivers coherent, cached, direct storage paths to Oracle ACFS file data from each cluster member.</p> <p>Oracle ACFS files systems are typically configured for clusterwide access. File systems, files, and directories are visible and accessible from all cluster members and can be referenced by users and applications using the same path names from any cluster member. This design enables simplified application deployments across cluster members and facilitates both multiple instance cluster applications and high availability (HA) failover of unmodified single-node applications.</p> <p><strong>ACFS commands for multiple environments</strong></p> <ul style="list-style-type: disc"> <li>acfabg   :- It helps in debugs an Oracle ACFS file system.</li> <li>acfsutil info : &#8211; We can use to display new ACFS  file and files system features and information.</li> <li>acgs plugin(disable|enable|info) :- It manages the the ACFS plug-in infrastructure.</li> <li>acfsutil snap :- Create and delete ACFS plug-in-infrastructure.</li> <li>acfsutil registry : &#8211; Register an ACFS file system with the ACFS mount registry.</li> <li>acfsutil rmfs :- Resize an ACFS file system.</li> <li>acfsutil size :- Resize an ACFS file system.</li> <li>acfsutil snap convert|create|delete|info : &#8211; It manages snapshots.</li> <li>acfsutil tune :- it helps to view or modifies ACFS tune-ables.</li> <li>advmutil cononical:- Displays the canonical name of an Oracle ADVM volume.</li> <li>advmutil tune:- Modifies or displays Oracle ADVM parameters.</li> <li>advmutil volinfo:- Displays information about Oracle ADVM volumes.</li> </ul> <p>The post <a rel="nofollow" href="http://oracle-help.com/oracle-12c/asm-acfs-commands-multiple-environments/">ASM &#8211; (ACFS commands for multiple environments)</a> appeared first on <a rel="nofollow" href="http://oracle-help.com">ORACLE-HELP</a>.</p> Anuradha Mudgal http://oracle-help.com/?p=2477 Tue Nov 21 2017 11:16:57 GMT-0500 (EST) MongoDB Europe 2017 Recap https://blog.pythian.com/mongodb-europe-2017-recap/ <div class="l-submain"><div class="l-submain-h g-html i-cf"><p><span style="font-weight: 400;">It’s November, time for MongoDB Europe event. For the second consecutive year, London hosted all the MongoDB experts to share what is new and exciting about the </span><a href="https://db-engines.com/en/ranking"><span style="font-weight: 400;">most popular</span></a><span style="font-weight: 400;"> NoSQL database in the world. After I missed the event last year, I did not want to miss now. I was very excited to explore the new features, technologies and methodologies with the experts, to learn how to deploy mission-critical applications at scale. But also to connect with the fastest growing database community. As a person that comes with a background from the Operators and Architects perspective, I was more interested in attending sessions where best practices around performance, scale, and healthy maintenance of a MongoDB cluster are discussed. But if you were coming as a Developer, there were many sessions with insight into building applications with MongoDB, from the fundamentals to advanced application design techniques.</span></p> <div id="attachment_102825" style="max-width: 1025px" class="wp-caption aligncenter"><img class=" wp-image-102825" src="https://blog.pythian.com/wp-content/uploads/IMAG0649.jpg" alt="MongoDB Europe 2017" width="1015" height="574" srcset="https://blog.pythian.com/wp-content/uploads/IMAG0649.jpg 2688w, https://blog.pythian.com/wp-content/uploads/IMAG0649-300x170.jpg 300w, https://blog.pythian.com/wp-content/uploads/IMAG0649-360x204.jpg 360w, https://blog.pythian.com/wp-content/uploads/IMAG0649-465x263.jpg 465w, https://blog.pythian.com/wp-content/uploads/IMAG0649-350x198.jpg 350w" sizes="(max-width: 1015px) 100vw, 1015px" /><p class="wp-caption-text">MongoDB Europe 2017</p></div> <p><span style="font-weight: 400;">The Organizers did a great job. Every attendee was guided through the registration process, breakfast served in the morning, table tennis matches in between the sessions, hangouts with sponsors, lunch in the afternoon and a November Fest beer round at the end. What more can you expect from a one day conference?</span></p> <p><span style="font-weight: 400;">To top it off, the presentations were also amazing. </span><span style="font-weight: 400;">The conference kicked off with the keynote session, held by MongoDB CTO, Eliot Horowitz and lots of information on new updates. </span>Some of the most exciting features for MongoDB 3.6. covered during the conference were:</p> <ul> <li style="font-weight: 400;"><b>Fully Expressive Array Updates </b><span style="font-weight: 400;"> &#8211; the one that the MongoDB user community is most excited about, enables developers to perform complex array manipulations against matching elements of an array, including elements embedded in nested arrays, all in a single update operation.</span></li> <li style="font-weight: 400;"><b>Schema Validation</b><span style="font-weight: 400;"> &#8211; with the JSON Schema standard lets you precisely control document structures, choose the level of validation you require, and decide how exceptions are handled. Combine the agility and flexibility that comes from MongoDB’s dynamic schema with strict data governance enforced across entire collections. While this was introduced in MongoDB 3.2, in the new version there will be new operator $jsonSchema.</span></li> <li style="font-weight: 400;"><b>Retryable Writes</b><span style="font-weight: 400;"> &#8211; This feature moves the complexity of handling temporary system failures from the application to the database. Developers no longer need to implement custom, client-side code &#8212; the MongoDB driver can automatically retry writes in the event of failure, while the MongoDB server enforces exactly-once processing semantics.</span></li> <li style="font-weight: 400;"><b>Security</b><span style="font-weight: 400;"> &#8211; MongoDB 3.6 will, by default, reject all network connections to the database unless explicitly configured to allow them by an administrator. Combined with the new IP Whitelisting feature, administrators can configure MongoDB to only accept external connections from approved IP addresses or CIDR ranges that have been explicitly added to the whitelist.</span></li> <li style="font-weight: 400;"><b>Change streams</b><span style="font-weight: 400;"> &#8211; Change streams enable developers to build reactive, real-time, web, mobile, and IoT apps that can view, filter, and act on data changes as they occur in the database. Change Streams enable seamless data movement across distributed databases, making it simple to stream data changes and trigger actions wherever they are needed.</span></li> <li style="font-weight: 400;"><b>More Expressive Query Language and Aggregation Pipeline</b><span style="font-weight: 400;"> &#8211; New aggregation operators and the ability to use aggregation expressions within the query language enable richer queries with less client-side code.</span></li> <li style="font-weight: 400;"><b>MongoDB Charts</b><span style="font-weight: 400;"> &#8211; MongoDB is working on it’s own solution for BI, MongoDB charts. This looked amazing during the presentation, it’s not yet released, but you can analyize your data with few clicks, drag and drop on the X,Y axis.</span></li> <li style="font-weight: 400;"><b>MongoDB Atlas</b><span style="font-weight: 400;"> -The adoption of MongoDB atlas is extremely high. Moving your deployment from on-premise to MongoDB Atlas is very easy and it takes few clicks in the dashboard. The developers are really excited about this and I’ll share my thoughts on this at the end. </span></li> <li style="font-weight: 400;"><b>MongoDB Stitch</b><span style="font-weight: 400;"> &#8211; backend as a service, to reduce the development time. This should save time to developers that don’t want to build complex API for the backend. It’s already integrated with MongoDB Atlas DBaaS.  </span></li> </ul> <p><span style="font-weight: 400;">After the keynotes session ended, there were 4 shards where we could attend the next sessions. What was different from last year, was that there was shard N for more advanced sessions for those who want deeper dive into MongoDB. </span></p> <p><span style="font-weight: 400;">I could not wait to start my first session in shard N, Storage improvements in MongoDB 3.6.</span></p> <p><span style="font-weight: 400;">Initially the session was scheduled for 45 minutes, but it was extended to 90 because of the huge interest from the audience. During the first part of the session we learned about the improvements made to the wiredTiger storage engine to support scaling to millions of collections. As there are many deployments having hundreds of thousands of collections designed in the mmapv1 era when there were collections level locking, this gives the option for migrating to WiredTiger storage engine and use of benefits like compression and document level locking. In the second part of the session, the discussion was about distributed transactions like including multi-document transactions, point-in-time reads, and the choice of snapshot or read-committed isolation. Eventually MongoDB might be a fully ACID compliant database. Really exciting news!</span></p> <p><span style="font-weight: 400;">During the conference, every attendee had the opportunity to chat with a MongoDB expert, the engineers that built MongoDB. I did not miss that opportunity and had an exciting 20 minute discussion on MongoDB sharding, memory usage and indexing techniques. If you ever attend a MongoDB conference, I definitely recommend you book an ‘Ask the Expert’ session. </span></p> <p><span style="font-weight: 400;">The next exciting session called &#8216;It’s 10pm, do you know where your writes are?&#8217; covered the three new features introduced in MongoDB 3.6: retriable writes, a cluster-wide killOp command, and zombie cursor cleanup. These features share a common base, idea called ‘logical session’. This is a very exciting feature, especially for a sharded cluster setup if you want to kill long running query, now you have the option with killOp.</span></p> <p><span style="font-weight: 400;">The last session I attended was ‘Illustrating Durability and Elections via Sneakernet’ in shard N. After the linearizable reads feature that was added to MongoDB 3.4 MongoDB 3.6 introduces additional consistency controls: “Causal Consistency” and “Consistent Reads”. </span></p> <p><span style="font-weight: 400;">The conference ended with a November Fest beer round.</span></p> <p><b>Final thoughts</b></p> <p><span style="font-weight: 400;">This was a very successful conference and I enjoyed having the time to interact with the community. In between the sessions I spent some time speaking with the attendees and asking them about their experience with MongoDB. Mainly they were all starting to evaluate MongoDB and its features. The majority were working as developers. I’m not surprised that MongoDB Atlas and MongoDB Stitch are becoming more popular. The developers don’t want to worry about database management, setup and configuration, software patching, monitoring, backups or operating distributed cluster. They need someone else do the job while they can focus on building the application. This opens up the floor for those of us that work in the operations department.</span></p> </div></div> Igor Donchovski https://blog.pythian.com/?p=102824 Tue Nov 21 2017 10:49:31 GMT-0500 (EST) The importance of Oracle database related kernel parameters (aio-max-nr) (with bonus track) https://blog.pythian.com/importance-oracle-database-related-kernel-parameters-aio-max-nr-bonus-track/ <div class="l-submain"><div class="l-submain-h g-html i-cf"><p>We tend to configure a server following Oracle best practices for the kernel parameters, but what once was a server of a couple instances, soon becomes a huge and heavy environment with four, six or ten instances running on it and more applications connected that use more and more connections. It&#8217;s important to review these parameters to ensure they still fit with our needs as systems evolve with time.</p> <p>We will see now how even the simplest task can trigger a situation where a limit on a kernel parameter is hit and a server restart may be required.</p> <h3>The story</h3> <p>This was a small task that involved clearing a schema in one database and re-populating it with an empty skeleton from a different one. Piece of cake, clean up the target schema, export the metadata of the source and import into the target. The end&#8230; or not.</p> <p>Everything went well until the moment came when we had to export the metadata from the source database. Like any good modern DBA, our tool of choice for this is Data Pump so a nice parameter file is created, everything is in place, schema is very small, this should be quick&#8230;</p> <pre lang="sql">ORA-39126: Worker unexpected fatal error in KUPW$WORKER.FETCH_XML_OBJECTS [OBJECT_GRANT:"SOME OBJECT"]  ORA-27090: Unable to reserve kernel resources for asynchronous disk I/O </pre> <p>Interesting error message, let&#8217;s take a look into My Oracle Support a.k.a. MOS:</p> <p style="padding-left: 30px;">&#8220;<em>ORA-27090 &#8211; Unable to Reserve Kernel Resources for Asynchronous Disk I/O (Doc ID 579108.1)&#8221; </em></p> <p>The note says that the error message should appear in the alert log.</p> <p>Is it there? Fun fact, no, there is no such error message in the database I am trying to export the metadata from, but it appears on the target database, the one which has just been cleared.<br /> So the note says that the &#8220;aio-max-nr&#8221; kernel limit is too low. We haven&#8217;t seen this ORA-27090 before until the Data Pump was attempted, it may well have been the &#8220;straw that broke the camel&#8217;s back&#8221;.</p> <p>There is also a nice bug &#8220;<em>Bug 24425998 ORA-27090: &#8216;Unable to reserve kernel resources for asynchronous disk I/O&#8217; Error in Alert Log</em>&#8221; fixed in 18.1, my first one, but doesn&#8217;t seem to be the case that a query is triggering the issue.</p> <p>So we have the problem with the Data Pump, the error in the alert log and a, supposedly, low value of &#8220;aio-max-nr&#8221;.</p> <h3>What is this &#8220;aio-max-nr&#8221; kernel parameter and why do I care?</h3> <p>According to Linux documentation:</p> <pre style="font-size: small; padding-left: 30px;">aio-nr &amp; aio-max-nr: aio-nr is the running total of the number of events specified on the io_setup system call for all currently active aio contexts. If aio-nr reaches aio-max-nr then io_setup will fail with EAGAIN. Note that raising aio-max-nr does not result in the pre-allocation or re-sizing of any kernel data structures. </pre> <p>OK but, what are these AIO and how to they matter to my Oracle database?</p> <p>Basically, what matters is that AIOs are used by an Oracle database to avoid the overhead of asking the OS to do the IO and access directly to disk, without having to wait for the IO to finish (you get it: asynchronous). This is the default behaviour when ASM is in use so this parameter takes even more precedence in a RAC environment like the one we are talking here.</p> <p>Let&#8217;s have a look at the current value in our system:</p> <pre lang="bash">[oracle@racnode1 ~]$ sysctl -a | grep aio fs.aio-max-nr = 1048576 fs.aio-nr = 1048451 </pre> <p>And from the documentation for a 12.1 installation:<br /> <a href="https://docs.oracle.com/database/121/LTDQI/toc.htm#BHCCADGD"> https://docs.oracle.com/database/121/LTDQI/toc.htm#BHCCADGD</a></p> <pre style="font-size: small; padding-left: 30px;">aio-max-nr 1048576 Note: This value limits concurrent outstanding requests and should be set to avoid I/O subsystem I/O subsystem failures.</pre> <h4><strong>But wait, what with our current value? why is it not big enough?</strong></h4> <p><strong>Our current value matches the documentation, what&#8217;s wrong with it?</strong></p> <p>Back to the docs we notice the following:</p> <pre style="font-size: small; padding-left: 30px;">The kernel parameter and shell limit values in this section are <strong>minimum values only.</strong> For production database systems, Oracle recommends that you tune these values to optimize the performance of the system. Refer to your operating system documentation for more information about tuning kernel parameters.</pre> <p>Aha! Oracle only provides minimum values that must be adjusted to the real system.</p> <p>Back to MOS we find the following note: &#8220;<em>What value should kernel parameter AIO-MAX-NR be set to?</em> (Doc ID 2229798.1)&#8221;. This note includes a formula to calculate the correct value for the <em>aio-max-nr</em> kernel parameter. Due to licensing issues I can&#8217;t post the formula here, we should not post MOS content publicly, etc. so let&#8217;s just say that the correct value for our environment, with 8 instances + ASM + MGMTDB running on this node is 8196096, way bigger than the original one.</p> <p>This is a value calculated on the fly, with all the instances running, lots of connections established and people working on the system, so it should be quite accurate.</p> <p>Of course, when we are deploying a new system we don&#8217;t have everything in place, so I&#8217;d recommend to review the mentioned MOS note (2229798.1) and use your estimations to set a value high enough. This value is calculated according to the number of instances and the number of processes per instance so, the higher these figures, the higher the parameter.</p> <p>Obviously there is caveat, we cannot simply set a value close to infinite because we are limited by the kernel memory. About this, we have an extreme case in one of Marc Fielding&#8217;s post <a href="https://blog.pythian.com/troubleshooting-ora-27090-async-io-errors/">here</a> showing a very high value being set even higher, so there is plenty of room to set the parameter as big as we may need.<br /> In any case, based on my experience and given the little information I&#8217;ve found on the Internet about this very same issue, the default recommended value should be enough for most of the systems running out there.</p> <p>So, being a kernel parameter we have been lucky and applied the change during an already requested maintenance window that included a server reboot. Once the parameter got changed, we were able to export the metadata and complete the task. Well, actually we would, but we had done it already using good old EXP/IMP tool.</p> <p><strong>Finally the bonus track</strong>: the server load came down from 12 to around 5.5 after the reboot. Is this due to the change in the kernel parameter or just the reboot that cleared some hanging database sessions? (This is a development environment so lots of stuff is going on with little control beyond the infrastructure changes we do). We don&#8217;t have evidence for one thing or the other so we will leave it here.</p> <p>So, have you encountered a similar situation? How common is the task of reviewing the system configuration to ensure it still fits our needs?</p> </div></div> Jose Rodriguez https://blog.pythian.com/?p=102800 Tue Nov 21 2017 10:37:57 GMT-0500 (EST)