sql >> Databáze >  >> RDS >> Oracle

Způsob, jak zkontrolovat, že Oracle dokončil sql

Zde je toho hodně k vysvětlení, ale propojím jednu ze svých předchozích odpovědí na podobný problém – kroky jsou ve skutečnosti stejné, protože se liší pouze databázová služba a pozadí.

1) První věc je, že musíte poskytnout bash skript, který počká, dokud služba neodpoví přes http. V databázích se to obvykle stává, když je DB připravena k použití a všechny inicializace jsou hotové.

skript wait-for-it.sh napsaný vishnubobem v jeho čekání repo @ github.

2) Druhá věc, musíte ten skript dostat do každého kontejneru, který vyžaduje vaši DB.

3) Za třetí, určíte entrypoint ve vašem souboru pro psaní, který spustí čekající skript před skutečným command spuštění vaší služby se spustí.

příklad vstupního bodu (jako odkaz na odpověď, na kterou odkazuji)

docker-entrypoint.sh:

#!/bin/bash
set -e
sh -c './wait-for-it.sh oracle:3306 -t 30'
exec "[email protected]"

Všechny tyto kroky jsou podrobně vysvětleny zde ve scénáři 2, uvědomte si odkaz na mou další odpověď uvnitř odpovědi, na kterou zde poukazuji. Tento problém je velmi častým problémem pro začátečníky a vyžaduje poměrně hodně vysvětlení, takže to sem nemohu celé zveřejnit.

poznámka zde týkající se depends_on což si můžete myslet, že je nativním řešením tohoto problému od dockeru – jak uvádí docs, čeká se pouze na spuštění kontejneru, ve skutečnosti nedokončí své interní úlohy – docker si není vědom toho, kolik toho je třeba udělat.




  1. Jaký je rozdíl mezi VARCHAR a NVARCHAR na SQL serveru - SQL Server / T-SQL výukový program, část 32

  2. Jak rozdělím oddělený řetězec na serveru SQL bez vytvoření funkce?

  3. 2013 MVP Summit :Rychlý přehled a nahlédnutí vpřed

  4. Oracle:exportujte tabulku s objekty BLOB do souboru .sql, který lze znovu importovat