Oracle

Oracle Change ManagementOracle Change Management

Oracle'ın en sinsi tarafı, betiğin yarısının geri alınamaz olmasıdır. DDL çalıştığı anda bekleyen değişiklikleri de kalıcı yapar. Ürün bu tuzağı kaydetmeden önce yakalar. The nastiest thing about Oracle is that half a script can become irreversible. The moment a DDL statement runs, it also commits whatever was pending. The product catches that trap before the request is even saved.

AtomiklikAtomicity

Örtülü COMMIT sorunuThe implicit commit problem

Sorun nedirWhat the problem is

Oracle'da DDL, GRANT, REVOKE ve TRUNCATE gibi ifadeler kendilerinden önceki bekleyen değişiklikleri örtülü olarak kalıcı yapar. Bir betikte önce veri güncellemesi, sonra tablo değişikliği varsa, ikincisi hata verse bile birincisi geri alınamaz.In Oracle, statements such as DDL, GRANT, REVOKE and TRUNCATE implicitly commit whatever was pending before them. If a script updates data and then alters a table, the update cannot be rolled back even when the alter fails.

Ürün ne yapıyorWhat the product does

İki ayrı kural bu dizilimi ayrıştırma sırasında tespit eder: veri değişikliğinden sonra örtülü COMMIT üreten bir ifade gelmesi ve aynı betikte DDL ile DML'in karışması. Bunlar talep kaydedilmeden önce uyarı üretir.Two separate rules detect this ordering during parsing: a statement that causes an implicit commit appearing after a data change, and DDL mixed with DML in the same script. Both surface before the request is saved.

Kısmi başarı bir durumdur, kaza değil. Oracle tarafında bir çalıştırma yarıda kalabilir. Ürün bunu ayrı bir durum olarak tanır: çalıştırma sırasında düşen bir talep için geri alma betiği üretilmesine ve çalıştırılmasına izin verilir, çünkü geri alınacak kısmi bir değişiklik gerçekten vardır. Partial success is a state, not an accident. On Oracle an execution can stop halfway. The product treats that as its own state: for a request that failed during execution, generating and running a rollback script is allowed, because there really is a partial change to undo.

Oracle tarafında ne yapılıyorWhat happens on the Oracle side

AST tabanlı ayrıştırmaAST based parsing

Oracle betikleri bir dilbilgisi çözümleyicisiyle sözdizimi ağacına dönüştürülür. Kurallar bu ağaç üzerinde çalışır; anonim bloklar, paket gövdeleri ve iç içe yapılar doğru sınıflandırılır.Oracle scripts are turned into a syntax tree by a grammar analyser. Rules run on that tree, so anonymous blocks, package bodies and nested structures are classified correctly.

Geri alma üretimiRollback generation

Ürün betikten geri alma betiği üretebilir. Oracle tarafında üretilen betik tekrar çalıştırılabilir olacak şekilde kurgulanır ve tamamı çalıştırılır; kısmi atlama yapılmaz.The product can generate a rollback script. On Oracle the generated script is written to be safely repeatable and is run in full; no partial skipping is applied.

Sunucu bazlı bayraklarPer server flags

Bir sunucu için geri alma betiği zorunlu tutulabilir ve otomatik geri alma üretimi açılabilir. Bu ayarlar sunucu tanımında durur, kurum genelinde tek bir kurala mahkum değildir.A rollback script can be made mandatory for a server, and automatic rollback generation can be enabled. These settings live on the server definition rather than a single organisation wide rule.

Ortak kural setiShared rule set

Kritik nesne koruması, WHERE içermeyen veri değişikliği, yetki değişikliği ve isimlendirme kuralları Oracle'da da aynı kural setinden gelir. Bir kuralın hangi veritabanı tiplerinde geçerli olduğu tanımlıdır.Critical object protection, data changes without a WHERE clause, permission changes and naming rules come from the same rule set on Oracle too. Each rule declares which database types it applies to.

Kapsam notuScope note

Oracle bu üründe yönetilen hedef veritabanı olarak desteklenir: betikler Oracle dilbilgisiyle çözümlenir, Oracle sunucularında çalıştırılır ve nesne tanımları oradan okunur.

Oracle is supported here as a managed target database: scripts are parsed with Oracle grammar, executed on Oracle servers and object definitions are read from them.

Ürünün kendi kayıtlarını tuttuğu veritabanı ise SQL Server üzerinde çalışır. Yani Oracle ortamlarınızı yönetmek için SQL Server tarafında küçük bir kayıt veritabanına ihtiyaç duyulur.

The database where the product keeps its own records runs on SQL Server. In other words, managing your Oracle estate requires a small record database on the SQL Server side.

EkranlarScreens

Talep listesi ekranı: durum, risk bandı ve hedef sunucular
Talep listesiRequest list Durum, band ve hedef sunucular bir arada. Status, band and target servers together.
Sunucu yönetimi ekranı: veritabanı tipi, ortam ve geri alma bayrakları
Sunucu tanımıServer definition Veritabanı tipi ve geri alma bayrakları burada. Database type and rollback flags live here.
Değişiklik talebi ekranı: betik ve atomiklik uyarıları
Betik ve uyarılarScript and warnings Atomiklik uyarıları kayıttan önce görünür. Atomicity warnings appear before the save.